diff options
author | Jeffrey Gardner <je_fro@gentoo.org> | 2008-10-12 18:55:36 +0000 |
---|---|---|
committer | Jeffrey Gardner <je_fro@gentoo.org> | 2008-10-12 18:55:36 +0000 |
commit | 14cb842aad1b1c6386674a4169e241342ad2db6d (patch) | |
tree | 236a756692cd1dad95cd3cc2685fd5eb618f8842 | |
parent | alpha/x86 stable (diff) | |
download | gentoo-2-14cb842aad1b1c6386674a4169e241342ad2db6d.tar.gz gentoo-2-14cb842aad1b1c6386674a4169e241342ad2db6d.tar.bz2 gentoo-2-14cb842aad1b1c6386674a4169e241342ad2db6d.zip |
Latest version, closing bug #241474 thanks to Alexey Shvetsov
(Portage version: 2.2_rc12/cvs/Linux 2.6.26-gentoo-r1 x86_64)
-rw-r--r-- | sci-chemistry/gromacs/ChangeLog | 7 | ||||
-rw-r--r-- | sci-chemistry/gromacs/gromacs-4.0.ebuild | 211 |
2 files changed, 217 insertions, 1 deletions
diff --git a/sci-chemistry/gromacs/ChangeLog b/sci-chemistry/gromacs/ChangeLog index b8f1e87269e5..c80de98090db 100644 --- a/sci-chemistry/gromacs/ChangeLog +++ b/sci-chemistry/gromacs/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for sci-chemistry/gromacs # Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.30 2008/10/06 02:32:20 je_fro Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.31 2008/10/12 18:55:36 je_fro Exp $ + +*gromacs-4.0 (12 Oct 2008) + + 12 Oct 2008; Jeff Gardner <je_fro@gentoo.org> +gromacs-4.0.ebuild: + Latest version, closing bug #241474 thanks to Alexey Shvetsov 06 Oct 2008; Jeff Gardner <je_fro@gentoo.org> ChangeLog, Manifest: Fixing changelog to reflect addition of gromacs-3.3.3.ebuild diff --git a/sci-chemistry/gromacs/gromacs-4.0.ebuild b/sci-chemistry/gromacs/gromacs-4.0.ebuild new file mode 100644 index 000000000000..23f55c56ddd7 --- /dev/null +++ b/sci-chemistry/gromacs/gromacs-4.0.ebuild @@ -0,0 +1,211 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-4.0.ebuild,v 1.1 2008/10/12 18:55:36 je_fro Exp $ + +EAPI="1" + +inherit autotools eutils flag-o-matic fortran multilib + +DESCRIPTION="The ultimate molecular dynamics simulation package" +HOMEPAGE="http://www.gromacs.org/" +SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ppc64 ~sparc ~x86" +IUSE="3dnow X altivec blas double-precision gsl lapack mpi +single-precision sse sse2 static xml" + +# mopac7 qm/mm is broken until we can get files from +# http://md.chem.rug.nl/~groenhof/qmmm.html +# or somewhere else... + +DEPEND=">=sci-libs/fftw-3.0.1 + app-shells/tcsh + X? ( x11-libs/libX11 + x11-libs/libXt + x11-libs/libXp + x11-libs/libXext + x11-proto/xproto + x11-libs/openmotif ) + blas? ( virtual/blas ) + gsl? ( sci-libs/gsl ) + lapack? ( virtual/lapack ) + mpi? ( virtual/mpi ) + xml? ( dev-libs/libxml2 )" + +FORTRAN="g77 gfortran ifc" + +src_unpack() { + + unpack ${A} + cd "${S}" + # Fix typos in a couple of files. + sed -e "s:+0f:-f:" -i share/tutor/gmxdemo/demo \ + || die "Failed to fixup demo script." + + # Fix a sandbox violation that occurs when re-emerging with mpi. + sed "/libdir=\"\$(libdir)\"/ a\ temp_libdir=\"${D}usr/$( get_libdir )\" ; \\\\" \ + -i src/tools/Makefile.am \ + || die "sed tools/Makefile.am failed" + + sed -e "s:\$\$libdir:\$temp_libdir:" \ + -i src/tools/Makefile.am \ + || die "sed tools/Makefile.am failed" + + sed "/libdir=\"\$(libdir)\"/ a\ temp_libdir=\"${D}usr/$( get_libdir )\" ; \\\\" \ + -i src/tools/Makefile.am \ + || die "sed tools/Makefile.am failed" + + sed -e "s:\$\$libdir:\$\$temp_libdir:" \ + -i src/tools/Makefile.am \ + || die "sed tools/Makefile.am failed" + + eautoreconf + + cd "${WORKDIR}" + mv "${P}" "${P}-single" + if ( use double-precision ) ; then + einfo "Moving sources for Multiprecision Build" + cp -prP "${P}-single" "${P}-double" + fi +} + +src_compile() { + + # static should work but something's broken. + # gcc spec file may be screwed up. + # Static linking should try -lgcc instead of -lgcc_s. + # For more info: + # http://lists.debian.org/debian-gcc/2002/debian-gcc-200201/msg00150.html + + # We will compile single precision by default, and suffix double-precision with _d. + # Sparc is the only arch I can test on that needs to use fortran. + local myconf ; + local myconf_s ; + local myconf_d ; + + case "${ARCH}" in + + x86) + if ( use sse || use sse2 ) ; then + myconf="${myconf} --enable-ia32-sse" + fi + myconf="$myconf $(use_enable 3dnow ia32-3dnow)" + + if ( ! use sse && ! use sse2 && ! use 3dnow ) ; then + if ! has_version "=sys-devel/gcc-3*" ; then + die "If you must run gromacs without sse (not recommended) gfortran will not work." + else + myconf="${myconf} --enable-fortran" && fortran_pkg_setup + fi + else + myconf="${myconf} --disable-fortran" + fi + ;; + + amd64) + myconf="$myconf --enable-x86-64-sse --disable-fortran" + ;; + + ppc*) + if use altivec ; then + myconf="${myconf} --enable-ppc-altivec --disable-fortran" + else + if ! has_version "=sys-devel/gcc-3*" ; then + die "If you must run gromacs without sse (not recommended) gfortran will not work." + else + myconf="${myconf} --enable-fortran" && fortran_pkg_setup + fi + fi + ;; + + ia64) + myconf="$myconf --enable-ia64-asm --disable-fortran" + ;; + + alpha) + if ! has_version "=sys-devel/gcc-3*" ; then + die "If you must run gromacs without sse (not recommended) gfortran will not work." + else + myconf="$myconf --enable-fortran" && fortran_pkg_setup + fi + ;; + + sparc) + if ! has_version "=sys-devel/gcc-3*" ; then + die "If you must run gromacs without sse (not recommended) gfortran will not work." + else + myconf="${myconf} --enable-fortran" && fortran_pkg_setup + fi + ;; + esac + + # if we need external blas + if use blas; then + export LIBS="${LIBS} -lblas" + myconf="${myconf} $(use_with blas external-blas)" + fi + + # if we need external lapack + if use lapack; then + export LIBS="${LIBS} -llapack" + myconf="${myconf} $(use_with lapack external-lapack)" + fi + + myconf="--datadir=/usr/share \ + --bindir=/usr/bin \ + --libdir=/usr/$(get_libdir) \ + --with-fft=fftw3 \ + $(use_with gsl) \ + $(use_enable mpi) \ + $(use_with X x) \ + $(use_with xml) \ + $(use_enable static all-static) \ + ${myconf}" + + if ( use double-precision && use single-precision ); then + einfo "Building Single Precison Gromacs" + cd "${WORKDIR}"/"${P}"-single + myconf_s="${myconf} --enable-float --disable-double --program-suffix=''" + econf ${myconf_s} || die "Single Precision econf failed" + emake || die "Single Precision emake failed" + + einfo "Building Double Precision Gromacs" + cd "${WORKDIR}"/"${P}"-double + myconf_d="${myconf} --enable-double --disable-float --program-suffix=_d" + econf ${myconf_d} || die "Double Precision econf failed" + emake || die "Double Precision emake failed" + + elif use double-precision ; then + einfo "Building Double Precison Gromacs" + cd "${WORKDIR}"/"${P}"-double + myconf_d="${myconf} --enable-double --disable-float --program-suffix=''" + econf ${myconf_d} || die "Double Precision econf failed" + emake || die "Double Precision emake failed" + + elif use single-precision ; then + einfo "Building Single Precison Gromacs" + cd "${WORKDIR}"/"${P}"-single + myconf_s="${myconf} --enable-float --disable-double --program-suffix=''" + econf ${myconf_s} || die "configure failed" + emake || die "Single Precision emake failed" + fi +} + +src_install() { + if use single-precision ; then + einfo "Installing Single Precision" + cd "${WORKDIR}"/"${P}"-single + emake DESTDIR="${D}" install || die "Installing Single Precision failed" + fi + + if use double-precision ; then + einfo "Installing Double Precision" + cd "${WORKDIR}"/"${P}"-double + emake DESTDIR="${D}" install || die "Installing Double Precision failed" + fi + + dodoc AUTHORS INSTALL README + # Move html and leave examples and templates under /usr/share/gromacs. + mv "${D}"/usr/share/"${PN}"/html "${D}"/usr/share/doc/"${PF}"/ +} |