aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorje_fro <je_fro@32389bae-6d03-0410-99cf-db05cde120eb>2008-06-23 07:12:59 +0000
committerje_fro <je_fro@32389bae-6d03-0410-99cf-db05cde120eb>2008-06-23 07:12:59 +0000
commit6ec25e44cbffaa9a4f2f60fcfb6f29b3859cce9a (patch)
tree9f99bb7179e8b10e038cd5244864710f2a7a2246 /sci-chemistry/gromacs
parentfix Manifest (diff)
downloadsci-6ec25e44cbffaa9a4f2f60fcfb6f29b3859cce9a.tar.gz
sci-6ec25e44cbffaa9a4f2f60fcfb6f29b3859cce9a.tar.bz2
sci-6ec25e44cbffaa9a4f2f60fcfb6f29b3859cce9a.zip
Latest gromacs for testing
git-svn-id: http://overlays.gentoo.org/svn/proj/science/overlay@1148 32389bae-6d03-0410-99cf-db05cde120eb
Diffstat (limited to 'sci-chemistry/gromacs')
-rw-r--r--sci-chemistry/gromacs/Manifest2
-rw-r--r--sci-chemistry/gromacs/gromacs-3.3.3.ebuild212
2 files changed, 214 insertions, 0 deletions
diff --git a/sci-chemistry/gromacs/Manifest b/sci-chemistry/gromacs/Manifest
new file mode 100644
index 000000000..9a7830be8
--- /dev/null
+++ b/sci-chemistry/gromacs/Manifest
@@ -0,0 +1,2 @@
+DIST gromacs-3.3.3.tar.gz 8013789 RMD160 c7b495423eb07682e88bd7d5c61e0aa9156a17d1 SHA1 318802e39f3ca3e847261a3b96906266e32deba2 SHA256 b95becbe410b71fe9bc19b91dfeb98b940dbb2d66613c9e1de7f6d21fb7534fa
+EBUILD gromacs-3.3.3.ebuild 6010 RMD160 3775f4920ed42d9c6a884089a0397511fe3c581d SHA1 f0271ea149d7e8b48048af52a5f14b9a9784398e SHA256 e71423ac9176ab552466a530ab5e941a037ecf73dd055ba629e7525cc3d4f576
diff --git a/sci-chemistry/gromacs/gromacs-3.3.3.ebuild b/sci-chemistry/gromacs/gromacs-3.3.3.ebuild
new file mode 100644
index 000000000..4672c80ab
--- /dev/null
+++ b/sci-chemistry/gromacs/gromacs-3.3.3.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+LIBTOOLIZE="true"
+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
+ virtual/motif )
+ 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"
+
+ # Rename disco manpage to fix bug #210083.
+ sed "s:disco.1:g_disco.1:" \
+ -i "${S}"/man/man1/Makefile.am \
+ || die "sed failed to rename disco"
+
+ mv "${S}"/man/man1/disco.1 "${S}"/man/man1/g_disco.1
+
+ 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
+
+ # if we don't set C[XX]FLAGS configure will set: -O3 -finline-functions
+ # -funroll-all-loops
+# append-flags "-O3 -finline-functions -funroll-all-loops"
+# use x86 && append-flags "-malign-double"
+
+ # 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 ;
+
+ 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="${myconf} --enable-float"
+ econf ${myconf} || die "Single Precision econf failed"
+ emake || die "Single Precision emake failed"
+
+ einfo "Building Double Precision Gromacs"
+ cd "${WORKDIR}"/"${P}"-double
+ myconf="${myconf} --enable-double --program-suffix=_d"
+ econf ${myconf} || die "Double Precision econf failed"
+ emake || die "Double Precision emake failed"
+ else
+ einfo "Building Single Precison Gromacs"
+ cd "${WORKDIR}"/"${P}"-single
+ myconf="${myconf} $(use_enable double-precision double) \
+ $(use_enable single-precision float)"
+ econf ${myconf} || 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}"/
+}