f322e3f
Name:		gromacs
32e9477
Version:	4.0.5
32e9477
Release:	1%{?dist}
32e9477
Summary:	Fast, Free and Flexible Molecular Dynamics
f322e3f
Group:		Applications/Engineering
f322e3f
License:	GPLv2+
f322e3f
URL:		http://www.gromacs.org
32e9477
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
f322e3f
Source0:	ftp://ftp.gromacs.org/pub/gromacs/gromacs-%{version}.tar.gz
32e9477
Source1:	ftp://ftp.gromacs.org/pub/manual/manual-4.0.pdf
f322e3f
Source2:	gromacs-template-makefile-single
f322e3f
Source3:	gromacs-template-makefile-double
f322e3f
Source4:	gromacs-template-makefile-mpi-single
f322e3f
Source5:	gromacs-template-makefile-mpi-double
f322e3f
Source6:	gromacs-README.fedora
f322e3f
f322e3f
# Add shebangs to scripts
f322e3f
Patch0:		gromacs-GMXRC.patch
32e9477
# Patch gmxdemo for new filenames
32e9477
Patch1:		gromacs-gmxdemo.patch
32e9477
# Patch configure for the library suffix
32e9477
Patch2:		gromacs-configure.patch
f322e3f
32e9477
Requires:	gromacs-common = %{version}-%{release}
f322e3f
f322e3f
BuildRequires:	fftw-devel
f322e3f
BuildRequires:	gsl-devel
f322e3f
BuildRequires:	libxml2-devel
f322e3f
BuildRequires:	openmpi-devel
f322e3f
f322e3f
%if 0%{?rhel} == 4
f322e3f
BuildRequires:	blas
f322e3f
BuildRequires:	lapack
f322e3f
BuildRequires:	xorg-x11-devel
f322e3f
%else
f322e3f
BuildRequires:	blas-devel
f322e3f
BuildRequires:	lapack-devel
f322e3f
BuildRequires:	libX11-devel
f322e3f
%endif
f322e3f
f322e3f
# Check for mpi-selector or environment-modules
f322e3f
32e9477
%global selector 0
32e9477
%global modules 0
f322e3f
f322e3f
%if 0%{?fedora} > 9
32e9477
%global modules 1
f322e3f
%endif
f322e3f
f322e3f
%if 0%{?rhel} == 4
32e9477
%global selector 1
f322e3f
%endif
f322e3f
f322e3f
%if 0%{?rhel} == 5
32e9477
%global selector 1
f322e3f
%endif
f322e3f
f322e3f
%if %modules == 1
f322e3f
BuildRequires:	environment-modules
f322e3f
%endif
f322e3f
f322e3f
%if %selector == 1
f322e3f
BuildRequires:	mpi-selector
f322e3f
%endif
f322e3f
f322e3f
f322e3f
%description
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
f322e3f
f322e3f
This package provides single and double precision binaries.
f322e3f
The documentation is in the package gromacs-common.
f322e3f
32e9477
N.B. All binaries have names starting with g_, for example mdrun has been
32e9477
renamed to g_mdrun.
32e9477
32e9477
32e9477
%package debug
32e9477
Summary:	GROMACS debugging binaries without assembly loops
32e9477
Group:		Applications/Engineering
32e9477
Requires:	gromacs-common = %{version}-%{release}
32e9477
32e9477
%description debug
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package provides debugging versions of single and
32e9477
double precision binaries, compiled without assembly loops.
32e9477
The documentation is in the package gromacs-common.
32e9477
You do not want this package for production purposes.
32e9477
32e9477
N.B. All binaries have names starting with g_, for example mdrun has been
32e9477
renamed to g_mdrun.
32e9477
f322e3f
f322e3f
%package libs
f322e3f
Summary:	GROMACS libraries
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	gromacs-common = %{version}-%{release}
f322e3f
f322e3f
%description libs
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package provides runtime libraries needed for the single and double
32e9477
precision binaries.
32e9477
32e9477
32e9477
%package debug-libs
32e9477
Summary:	GROMACS libraries without assembly loops for debugging
32e9477
Group:		Applications/Engineering
32e9477
Requires:	gromacs-common = %{version}-%{release}
32e9477
32e9477
%description debug-libs
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package provides runtime libraries needed for the debugging versions of
32e9477
the single and double precision binaries.
f322e3f
f322e3f
f322e3f
f322e3f
%package mpi
f322e3f
Summary:	GROMACS MPI binaries
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	gromacs-common = %{version}-%{release}
f322e3f
f322e3f
%description mpi
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package provides MPI single precision and double precision binaries.
32e9477
32e9477
32e9477
%package debug-mpi
32e9477
Summary:	GROMACS debugging MPI binaries without assembly loops
32e9477
Group:		Applications/Engineering
32e9477
Requires:	gromacs-common = %{version}-%{release}
32e9477
32e9477
%description debug-mpi
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package provides debugging versions of MPI single precision and double
f322e3f
precision binaries.
f322e3f
f322e3f
32e9477
f322e3f
%package common
f322e3f
Summary:	GROMACS shared data and documentation
f322e3f
Group:		Applications/Engineering
f322e3f
f322e3f
%description common
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
f322e3f
32e9477
This package includes architecture independent data and documentation.
f322e3f
f322e3f
f322e3f
%package devel
f322e3f
Summary:	GROMACS header files and development libraries
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	gromacs-common = %{version}-%{release}
f322e3f
Requires:	gromacs-libs = %{version}-%{release}
f322e3f
f322e3f
%description devel
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package contains header files and development libraries for the GROMACS
32e9477
molecular dynamics software. You need it if you want to write your own analysis
32e9477
programs.
32e9477
32e9477
32e9477
32e9477
%package debug-devel
32e9477
Summary:	GROMACS debugging header files and development libraries
32e9477
Group:		Applications/Engineering
32e9477
Requires:	gromacs-common = %{version}-%{release}
32e9477
Requires:	gromacs-devel = %{version}-%{release}
32e9477
Requires:	gromacs-debug-libs = %{version}-%{release}
32e9477
32e9477
%description debug-devel
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package contains header files and development libraries for the debugging
32e9477
version of the GROMACS molecular dynamics software.
f322e3f
f322e3f
f322e3f
f322e3f
%package mpi-devel
f322e3f
Summary:	GROMACS MPI development libraries
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	gromacs-mpi-libs = %{version}-%{release}
32e9477
Requires:	gromacs-devel = %{version}-%{release}
4d7ea8b
# Need to have this so that yum doesn't install LAM instead
4d7ea8b
Requires:	openmpi
f322e3f
f322e3f
%description mpi-devel
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
f322e3f
f322e3f
This package contains development libraries for GROMACS MPI.
f322e3f
You need it if you want to write your own analysis programs.
f322e3f
f322e3f
32e9477
%package debug-mpi-devel
32e9477
Summary:	GROMACS debugging MPI development libraries
32e9477
Group:		Applications/Engineering
32e9477
Requires:	gromacs-debug-mpi-libs = %{version}-%{release}
32e9477
Requires:	gromacs-debug-devel = %{version}-%{release}
32e9477
# Need to have this so that yum doesn't install LAM instead
32e9477
Requires:	openmpi
32e9477
32e9477
%description debug-mpi-devel
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package contains debugging versions of development libraries for the MPI
32e9477
version of GROMACS.
32e9477
32e9477
f322e3f
%package mpi-libs
32e9477
Summary:	GROMACS MPI libraries
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	gromacs-common = %{version}-%{release}
4d7ea8b
# Need to have this so that yum doesn't install LAM instead
4d7ea8b
Requires:	openmpi
f322e3f
f322e3f
%description mpi-libs
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package provides runtime libraries needed for the MPI single and double
32e9477
precision binaries.
32e9477
32e9477
32e9477
%package debug-mpi-libs
32e9477
Summary:	GROMACS debugging MPI libraries
32e9477
Group:		Applications/Engineering
32e9477
Requires:	gromacs-common = %{version}-%{release}
32e9477
# Need to have this so that yum doesn't install LAM instead
32e9477
Requires:	openmpi
f322e3f
32e9477
%description debug-mpi-libs
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
32e9477
32e9477
This package provides debugging versions of runtime libraries needed for the
32e9477
debug versions of the MPI single and double precision binaries.
f322e3f
f322e3f
f322e3f
%package bash
f322e3f
Summary:	GROMACS bash completion
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	bash-completion
f322e3f
f322e3f
%description bash
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
f322e3f
32e9477
This package provides bash completion for GROMACS.
f322e3f
f322e3f
f322e3f
%package zsh
f322e3f
Summary:	GROMACS zsh support
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	zsh
f322e3f
f322e3f
%description zsh
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
f322e3f
32e9477
This package provides scripts needed to run GROMACS with zsh and zsh
32e9477
completion.
f322e3f
f322e3f
f322e3f
%package csh
f322e3f
Summary:	GROMACS csh support
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	csh
f322e3f
f322e3f
%description csh
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
f322e3f
32e9477
This package provides scripts needed to run GROMACS with csh and a completion
32e9477
script.
f322e3f
f322e3f
%package tutor
f322e3f
Summary:	GROMACS tutorial files
f322e3f
Group:		Applications/Engineering
f322e3f
Requires:	gromacs-common = %{version}-%{release}
f322e3f
f322e3f
%description tutor
32e9477
GROMACS is a versatile and extremely well optimized package to perform
32e9477
molecular dynamics computer simulations and subsequent trajectory analysis.
32e9477
It is developed for biomolecules like proteins, but the extremely high
32e9477
performance means it is used also in several other field like polymer chemistry
32e9477
and solid state physics.
f322e3f
f322e3f
This package provides tutorials for the use of GROMACS.
f322e3f
f322e3f
%prep
f322e3f
%setup -q
32e9477
%patch0 -p1 -b .gmxrc
32e9477
%patch1 -p1 -b .gmxdemo
32e9477
%patch2 -p1 -b .libsuffix
f322e3f
f322e3f
# Fix incorrect permission
32e9477
#chmod a-x src/tools/gmx_xpm2ps.c
f322e3f
f322e3f
f322e3f
f322e3f
%build
f322e3f
# Assembly kernels haven't got .note.GNU-stack sections
f322e3f
# because of incompatibilies with Microsoft Assembler.
f322e3f
# Add noexecstack to compiler flags
f322e3f
4d7ea8b
export CFLAGS="%optflags -Wa,--noexecstack -fPIC"
f322e3f
export LIBS="-lblas -llapack"
f322e3f
32e9477
# Default options, used for all compilations
32e9477
export DEFOPTS="--enable-shared --disable-static --with-external-blas \
32e9477
	--with-external-lapack --with-gsl --with-x"
32e9477
export SINGLE="--enable-float" # Single precision
32e9477
export DOUBLE="--disable-float" # Double precision
32e9477
export MPI="--enable-mpi"
32e9477
export NOASM="--disable-ia32-3dnow --disable-ia32-sse --disable-x86-64-sse \
32e9477
	--disable-ppc-altivec --disable-ia64-asm"
32e9477
32e9477
f322e3f
# Single precision
f322e3f
mkdir single
f322e3f
cd single
32e9477
sed "s|@LIBSUFFIX@||g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $SINGLE
32e9477
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
32e9477
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
32e9477
32e9477
make %{?_smp_mflags}
32e9477
cd ..
32e9477
32e9477
# Single precision, debug version with no assembly loops
32e9477
mkdir single-debug
32e9477
cd single-debug
32e9477
sed "s|@LIBSUFFIX@|_debug|g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $SINGLE $NOASM --program-suffix="_debug"
f322e3f
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
f322e3f
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
f322e3f
f322e3f
make %{?_smp_mflags}
f322e3f
cd ..
f322e3f
32e9477
32e9477
f322e3f
# Double precision
f322e3f
mkdir double
f322e3f
cd double
32e9477
sed "s|@LIBSUFFIX@|_d|g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $DOUBLE --program-suffix="_d"
32e9477
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
32e9477
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
32e9477
32e9477
make %{?_smp_mflags}
32e9477
cd ..
32e9477
32e9477
# Double precision, debug version with no assembly loops
32e9477
mkdir double-debug
32e9477
cd double-debug
32e9477
sed "s|@LIBSUFFIX@|_d_debug|g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $DOUBLE $NOASM --program-suffix="_d_debug"
f322e3f
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
f322e3f
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
f322e3f
f322e3f
make %{?_smp_mflags}
f322e3f
cd ..
f322e3f
32e9477
32e9477
f322e3f
# Load MPI enviroment
f322e3f
f322e3f
%if %modules == 1
f322e3f
. /etc/profile.d/modules.sh
f322e3f
module load %{_libdir}/openmpi/*/openmpi.module
32e9477
# The module overrides CFLAGS, need to set them again..
32e9477
export CFLAGS="%optflags -Wa,--noexecstack -fPIC"
f322e3f
%endif
f322e3f
f322e3f
%if %selector == 1
f322e3f
# Set MPI environment
f322e3f
mpi-selector --set `mpi-selector --list | grep openmpi`
f322e3f
source /etc/profile.d/mpi-selector.sh
f322e3f
%endif
f322e3f
f322e3f
f322e3f
# MPI, single precision
f322e3f
f322e3f
mkdir mpi-single
f322e3f
cd mpi-single
32e9477
sed "s|@LIBSUFFIX@|_mpi|g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $SINGLE $MPI --program-suffix="_mpi"
32e9477
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
32e9477
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
32e9477
32e9477
make %{?_smp_mflags} mdrun
32e9477
#make %{?_smp_mflags}
32e9477
cd ..
32e9477
32e9477
mkdir mpi-single-debug
32e9477
cd mpi-single-debug
32e9477
sed "s|@LIBSUFFIX@|_mpi_debug|g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $SINGLE $MPI $NOASM --program-suffix="_mpi_debug"
f322e3f
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
f322e3f
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
f322e3f
f322e3f
make %{?_smp_mflags} mdrun
f322e3f
#make %{?_smp_mflags}
f322e3f
cd ..
f322e3f
32e9477
32e9477
f322e3f
# MPI, double precision
f322e3f
mkdir mpi-double
f322e3f
cd mpi-double
32e9477
sed "s|@LIBSUFFIX@|_mpi_d|g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $DOUBLE $MPI --program-suffix="_mpi_d"
32e9477
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
32e9477
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
32e9477
32e9477
make %{?_smp_mflags} mdrun
32e9477
#make %{?_smp_mflags}
32e9477
cd ..
32e9477
32e9477
mkdir mpi-double-debug
32e9477
cd mpi-double-debug
32e9477
sed "s|@LIBSUFFIX@|_mpi_d_debug|g" < ../configure > configure; chmod 777 configure
32e9477
%configure $DEFOPTS $DOUBLE $MPI $NOASM --program-suffix="_mpi_d_debug"
f322e3f
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
f322e3f
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
f322e3f
f322e3f
make %{?_smp_mflags} mdrun
f322e3f
#make %{?_smp_mflags}
f322e3f
cd ..
f322e3f
f322e3f
f322e3f
%install
f322e3f
rm -rf %{buildroot}
f322e3f
32e9477
# 4.0.3 needs this to build in EPEL-4
32e9477
# Load MPI enviroment
32e9477
%if %modules == 1
32e9477
. /etc/profile.d/modules.sh
32e9477
module load %{_libdir}/openmpi/*/openmpi.module
32e9477
export CFLAGS="%optflags -Wa,--noexecstack -fPIC"
32e9477
%endif
32e9477
32e9477
%if %selector == 1
32e9477
# Set MPI environment
32e9477
mpi-selector --set `mpi-selector --list | grep openmpi`
32e9477
source /etc/profile.d/mpi-selector.sh
32e9477
%endif
32e9477
32e9477
f322e3f
# Single precision
f322e3f
cd single
f322e3f
make DESTDIR=%{buildroot} INSTALL="install -p" install
f322e3f
cd ..
f322e3f
32e9477
cd single-debug
32e9477
make DESTDIR=%{buildroot} INSTALL="install -p" install
32e9477
cd ..
32e9477
f322e3f
# Double precision
f322e3f
cd double
f322e3f
make DESTDIR=%{buildroot} INSTALL="install -p" install
f322e3f
cd ..
f322e3f
32e9477
cd double-debug
32e9477
make DESTDIR=%{buildroot} INSTALL="install -p" install
32e9477
cd ..
32e9477
f322e3f
f322e3f
f322e3f
# MPI, single precision
f322e3f
cd mpi-single
f322e3f
make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
f322e3f
cd ..
f322e3f
32e9477
cd mpi-single-debug
32e9477
make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
32e9477
cd ..
32e9477
32e9477
f322e3f
# MPI, double precision
f322e3f
cd mpi-double
f322e3f
make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
f322e3f
cd ..
f322e3f
32e9477
cd mpi-double-debug
32e9477
make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
32e9477
cd ..
32e9477
32e9477
f322e3f
# Install manual & packager's note
f322e3f
install -cpm 644 %{SOURCE1} .
f322e3f
install -cpm 644 %{SOURCE6} README.fedora
f322e3f
f322e3f
# Remove broken makefiles generated by build process
f322e3f
rm -rf %{buildroot}%{_datadir}/%{name}/template/Makefil*
f322e3f
# Install template makefiles
f322e3f
install -cpm 644 %{SOURCE2} %{buildroot}%{_datadir}/%{name}/template/Makefile.single
f322e3f
install -cpm 644 %{SOURCE3} %{buildroot}%{_datadir}/%{name}/template/Makefile.double
f322e3f
install -cpm 644 %{SOURCE4} %{buildroot}%{_datadir}/%{name}/template/Makefile.mpi.single
f322e3f
install -cpm 644 %{SOURCE5} %{buildroot}%{_datadir}/%{name}/template/Makefile.mpi.double
f322e3f
f322e3f
f322e3f
# Fix GMXRC file permissions
f322e3f
chmod a+x %{buildroot}%{_bindir}/GMXRC %{buildroot}%{_bindir}/GMXRC.*
f322e3f
f322e3f
# Rename binaries and man pages to prevent clashes
f322e3f
# (This is done here so that we don't need to mess with machine generated makefiles.
f322e3f
for bin in anadock do_dssp editconf eneconv genbox genconf genion genrestr gmxcheck gmxdump grompp highway luck make_edi make_ndx mdrun mk_angndx ngmx pdb2gmx protonate sigeps tpbconv trjcat trjconv trjorder wheel x2top xpm2ps xrama ; do 
f322e3f
mv %{buildroot}%{_bindir}/${bin} %{buildroot}%{_bindir}/g_${bin}
32e9477
mv %{buildroot}%{_bindir}/${bin}_debug %{buildroot}%{_bindir}/g_${bin}_debug
f322e3f
mv %{buildroot}%{_bindir}/${bin}_d %{buildroot}%{_bindir}/g_${bin}_d
32e9477
mv %{buildroot}%{_bindir}/${bin}_d_debug %{buildroot}%{_bindir}/g_${bin}_d_debug
f322e3f
done
f322e3f
f322e3f
for bin in demux.pl xplor2gmx.pl; do
f322e3f
mv %{buildroot}%{_bindir}/$bin %{buildroot}%{_bindir}/g_${bin}
f322e3f
done
f322e3f
f322e3f
# MPI-enabled binaries (list will continue when the makefile has
f322e3f
# the possibility to compile all mpi-enabled files
f322e3f
for mpibin in mdrun; do
f322e3f
mv %{buildroot}%{_bindir}/${mpibin}_mpi %{buildroot}%{_bindir}/g_${mpibin}_mpi
32e9477
mv %{buildroot}%{_bindir}/${mpibin}_mpi_debug %{buildroot}%{_bindir}/g_${mpibin}_mpi_debug
f322e3f
mv %{buildroot}%{_bindir}/${mpibin}_mpi_d %{buildroot}%{_bindir}/g_${mpibin}_mpi_d
32e9477
mv %{buildroot}%{_bindir}/${mpibin}_mpi_d_debug %{buildroot}%{_bindir}/g_${mpibin}_mpi_d_debug
f322e3f
done
f322e3f
f322e3f
# Man pages
f322e3f
for bin in anadock do_dssp editconf eneconv genbox genconf genion genrestr gmxcheck gmxdump grompp highway make_edi make_ndx mdrun mk_angndx ngmx pdb2gmx protonate sigeps tpbconv trjcat trjconv trjorder wheel x2top xpm2ps xrama ; do 
f322e3f
mv %{buildroot}%{_mandir}/man1/${bin}.1 %{buildroot}%{_mandir}/man1/g_${bin}.1
f322e3f
mv %{buildroot}%{_mandir}/man1/${bin}_d.1 %{buildroot}%{_mandir}/man1/g_${bin}_d.1
f322e3f
done
f322e3f
f322e3f
# Move completion files around
f322e3f
chmod a-x %{buildroot}%{_bindir}/completion.*
f322e3f
# Zsh
f322e3f
mkdir -p %{buildroot}%{_datadir}/zsh/site-functions
f322e3f
mv %{buildroot}%{_bindir}/completion.zsh %{buildroot}%{_datadir}/zsh/site-functions/gromacs
f322e3f
# Bash
f322e3f
mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d
f322e3f
mv %{buildroot}%{_bindir}/completion.bash %{buildroot}/etc/bash_completion.d/gromacs
f322e3f
# Tcsh
f322e3f
mv %{buildroot}%{_bindir}/completion.csh . 
f322e3f
f322e3f
# Remove .la files
f322e3f
rm -rf %{buildroot}/%{_libdir}/*.la
f322e3f
f322e3f
# Post install for libs
f322e3f
f322e3f
%post libs -p /sbin/ldconfig
f322e3f
f322e3f
%postun libs -p /sbin/ldconfig
f322e3f
32e9477
%post debug-libs -p /sbin/ldconfig
32e9477
32e9477
%postun debug-libs -p /sbin/ldconfig
32e9477
f322e3f
%post mpi-libs -p /sbin/ldconfig
f322e3f
f322e3f
%postun mpi-libs -p /sbin/ldconfig
f322e3f
32e9477
%post debug-mpi-libs -p /sbin/ldconfig
32e9477
32e9477
%postun debug-mpi-libs -p /sbin/ldconfig
32e9477
32e9477
f322e3f
f322e3f
%clean
f322e3f
rm -rf %{buildroot}
f322e3f
f322e3f
f322e3f
f322e3f
f322e3f
# Files section
f322e3f
f322e3f
%files
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_bindir}/*
32e9477
%exclude %{_bindir}/*_debug
32e9477
%exclude %{_bindir}/g_mdrun_mpi*
f322e3f
%exclude %{_bindir}/GMXRC*
f322e3f
32e9477
%files debug
32e9477
%defattr(-,root,root,-)
32e9477
%{_bindir}/*_debug
32e9477
%exclude %{_bindir}/g_mdrun_mpi_debug
32e9477
%exclude %{_bindir}/g_mdrun_mpi_d_debug
32e9477
f322e3f
%files libs
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_libdir}/libgmx.so.*
f322e3f
%{_libdir}/libgmx_d.so.*
f322e3f
%{_libdir}/libgmxana.so.*
f322e3f
%{_libdir}/libgmxana_d.so.*
f322e3f
%{_libdir}/libmd.so.*
f322e3f
%{_libdir}/libmd_d.so.*
f322e3f
32e9477
%files debug-libs
32e9477
%defattr(-,root,root,-)
32e9477
%{_libdir}/libgmx_debug.so.*
32e9477
%{_libdir}/libgmx_d_debug.so.*
32e9477
%{_libdir}/libgmxana_debug.so.*
32e9477
%{_libdir}/libgmxana_d_debug.so.*
32e9477
%{_libdir}/libmd_debug.so.*
32e9477
%{_libdir}/libmd_d_debug.so.*
32e9477
32e9477
f322e3f
%files mpi
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_bindir}/g_mdrun_mpi
f322e3f
%{_bindir}/g_mdrun_mpi_d
f322e3f
32e9477
%files debug-mpi
32e9477
%defattr(-,root,root,-)
32e9477
%{_bindir}/g_mdrun_mpi_debug
32e9477
%{_bindir}/g_mdrun_mpi_d_debug
f322e3f
f322e3f
%files mpi-libs
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_libdir}/libgmx_mpi.so.*
f322e3f
%{_libdir}/libgmx_mpi_d.so.*
f322e3f
%{_libdir}/libmd_mpi.so.*
f322e3f
%{_libdir}/libmd_mpi_d.so.*
f322e3f
32e9477
%files debug-mpi-libs
32e9477
%defattr(-,root,root,-)
32e9477
%{_libdir}/libgmx_mpi_debug.so.*
32e9477
%{_libdir}/libgmx_mpi_d_debug.so.*
32e9477
%{_libdir}/libmd_mpi_debug.so.*
32e9477
%{_libdir}/libmd_mpi_d_debug.so.*
f322e3f
f322e3f
f322e3f
%files common
f322e3f
%defattr(-,root,root,-)
32e9477
%doc AUTHORS COPYING README manual-4.0.pdf README.fedora
f322e3f
%{_bindir}/GMXRC
f322e3f
%{_bindir}/GMXRC.bash
f322e3f
%{_mandir}/man1/*
f322e3f
%{_datadir}/%{name}
f322e3f
%exclude %{_datadir}/%{name}/template
f322e3f
%exclude %{_datadir}/%{name}/tutor
f322e3f
f322e3f
%files devel
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_includedir}/%{name}
f322e3f
%{_libdir}/libgmx.so
f322e3f
%{_libdir}/libgmx_d.so
f322e3f
%{_libdir}/libgmxana.so
f322e3f
%{_libdir}/libgmxana_d.so
f322e3f
%{_libdir}/libmd.so
f322e3f
%{_libdir}/libmd_d.so
f322e3f
%{_datadir}/%{name}/template
f322e3f
%exclude %{_datadir}/%{name}/template/Makefile.mpi.*
f322e3f
32e9477
%files debug-devel
32e9477
%defattr(-,root,root,-)
32e9477
%{_libdir}/libgmx_debug.so
32e9477
%{_libdir}/libgmx_d_debug.so
32e9477
%{_libdir}/libgmxana_debug.so
32e9477
%{_libdir}/libgmxana_d_debug.so
32e9477
%{_libdir}/libmd_debug.so
32e9477
%{_libdir}/libmd_d_debug.so
32e9477
f322e3f
%files mpi-devel
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_libdir}/libgmx_mpi.so
f322e3f
%{_libdir}/libgmx_mpi_d.so
f322e3f
%{_libdir}/libmd_mpi.so
f322e3f
%{_libdir}/libmd_mpi_d.so
f322e3f
%{_datadir}/%{name}/template/Makefile.mpi.*
f322e3f
32e9477
%files debug-mpi-devel
32e9477
%defattr(-,root,root,-)
32e9477
%{_libdir}/libgmx_mpi_debug.so
32e9477
%{_libdir}/libgmx_mpi_d_debug.so
32e9477
%{_libdir}/libmd_mpi_debug.so
32e9477
%{_libdir}/libmd_mpi_d_debug.so
32e9477
f322e3f
f322e3f
%files zsh
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_datadir}/zsh/site-functions/gromacs
f322e3f
%{_bindir}/GMXRC.zsh
f322e3f
f322e3f
%files bash
f322e3f
%defattr(-,root,root,-)
f322e3f
%config(noreplace) %{_sysconfdir}/bash_completion.d/gromacs
f322e3f
f322e3f
f322e3f
%files csh
f322e3f
%defattr(-,root,root,-)
f322e3f
%doc completion.csh
f322e3f
%{_bindir}/GMXRC.csh
f322e3f
f322e3f
%files tutor
f322e3f
%defattr(-,root,root,-)
f322e3f
%{_datadir}/%{name}/tutor
f322e3f
f322e3f
f322e3f
%changelog
32e9477
* Fri May 22 2009 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.5-1
32e9477
- Update to 4.0.5.
32e9477
- Change spec %%defines to %%globals.
32e9477
- Add debug subpackages to make debugging of GROMACS possible.
32e9477
32e9477
* Tue Feb 17 2009 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.4-1
32e9477
- Update to 4.0.4.
32e9477
32e9477
* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.3-4
32e9477
- Retry fixing gmxdemo.
32e9477
32e9477
* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.3-3
32e9477
- Fixed gmxdemo.
32e9477
32e9477
* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.3-2
32e9477
- Fix EPEL 4 build.
32e9477
32e9477
* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.3-1
32e9477
- Update to 4.0.3.
32e9477
32e9477
* Wed Jan 14 2009 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.2-7
32e9477
- Update manual to latest version.
32e9477
- Removed Requires: blas and lapack.
32e9477
32e9477
* Mon Nov 10 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.2-6
a1e9bd0
- Update to 4.0.2.
a1e9bd0
32e9477
* Sun Nov 09 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.1-5
2c40ef9
- Add Requires: blas too.
2c40ef9
32e9477
* Sun Nov 09 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0.1-4
4d7ea8b
- Update to 4.0.1.
4d7ea8b
- Add Requires: lapack and openmpi to prevent yum from pulling atlas and lam
4d7ea8b
instead.
4d7ea8b
32e9477
* Wed Oct 15 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-3
f322e3f
- Rename also man pages.
f322e3f
32e9477
* Mon Oct 13 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-2
f322e3f
- Added noreplace to bash completion file.
f322e3f
- Changed double precision mpi binary suffix to _mpi_d.
f322e3f
32e9477
* Sun Oct 12 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-1
f322e3f
- Update to Gromacs 4.0.
f322e3f
- Remove module system and patch file names to begin with g_.
f322e3f
32e9477
* Wed Oct 08 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.15.rc3
f322e3f
- Changed location of binaries.
f322e3f
- Removed conflict of module file, as the program is binary compatible with older versions.
f322e3f
32e9477
* Wed Oct 08 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.14.rc3
f322e3f
- The gromacs module is loaded automatically and it conflicts with gromacs3.
f322e3f
32e9477
* Tue Oct 07 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.13.rc3
f322e3f
- Renamed module files from %%{name}-%%{version} to %%{name}.
f322e3f
32e9477
* Mon Oct 06 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.12.rc3
f322e3f
- Fix BR to get GROMACS to build in mock for epel-4.
f322e3f
32e9477
* Sat Oct 04 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.11.rc3
f322e3f
- Fix to get GROMACS to build in mock for epel-5.
f322e3f
32e9477
* Sat Oct 04 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.10.rc3
f322e3f
- Implement module system & remove binary renaming.
f322e3f
- No need for autoreconf anymore.
f322e3f
- Update to rc3.
f322e3f
32e9477
* Sat Oct 04 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.9.rc2
f322e3f
- Fall back to autoreconf due to binary renaming.
f322e3f
32e9477
* Fri Oct 03 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.8.rc2
f322e3f
- Modified install commands to preserve timestamps.
f322e3f
32e9477
* Fri Oct 03 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.7.rc2
f322e3f
- Even more review fixes.
f322e3f
- Binaries renamed:
f322e3f
	highway	->	g_highway
f322e3f
	luck	->	g_luck
f322e3f
	sigeps	->	g_sigeps
f322e3f
	wheel	->	g_wheel
f322e3f
32e9477
* Thu Oct 02 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.6.rc2
f322e3f
- Final review fixes.
f322e3f
32e9477
* Wed Oct 01 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.5.rc2
f322e3f
- Strip down requires by branching tutor to its own package.
f322e3f
32e9477
* Tue Sep 30 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.4.rc2
f322e3f
- Extensive package review fixes.
f322e3f
- Unclear licenses on some files, filed upstream bug 217.
f322e3f
  http://bugzilla.gromacs.org/show_bug.cgi?id=217
f322e3f
32e9477
* Mon Sep 29 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.3.rc2
f322e3f
- Move .so files to -devel package.
f322e3f
- Remove .la files.
f322e3f
32e9477
* Mon Sep 29 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.2.rc2
f322e3f
- Implement out-of-tree-builds.
f322e3f
- Add --noexecstack to CFLAGS.
f322e3f
- Remove execstack procedure and prelink from buildreqs.
f322e3f
- Filed upstream bug 215 to add .note.GNU-stack .
f322e3f
- Fix incorrect file permission on src/tools/gmx_xpm2ps.c .
f322e3f
32e9477
* Mon Sep 29 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.1.rc2
f322e3f
- Alphabetized buildrequires.
f322e3f
- Changed gromacs-share to gromacs-common.
f322e3f
32e9477
* Fri Sep 26 2008 Jussi Lehtola <jussi.lehtola@iki.fi> - 4.0-0.0.rc2
f322e3f
- Initial build.