# Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-3.3.ebuild,v 1.1 2005/10/14 00:44:11 spyderous Exp $ inherit eutils IUSE="altivec mpi 3dnow sse double-precision" DESCRIPTION="The ultimate molecular dynamics simulation package" SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz" HOMEPAGE="http://www.gromacs.org/" LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86 ~amd64 ~ppc64 ~ia64" #mpi is a local USE flag now #May become official when situation with mpich is cleared (now the only mpi implementation awailable is lam-mpi) DEPEND="sci-libs/fftw mpi? ( sys-cluster/lam-mpi ) >=sys-devel/binutils-2.12 app-shells/tcsh" src_unpack() { unpack ${A} || die "unpack failed" cd ${WORKDIR} epatch ${FILESDIR}/pme.patch || die mv ${P} ${P}-single if use double-precision; then cp -pPR ${P}-single ${P}-double fi if use mpi; then cp -pPR ${P}-single ${P}-mpi-single if use double-precision; then cp -pPR ${P}-single ${P}-mpi-double fi fi } src_compile() { local flag flag=`usev x86 amd64 ppc64 ia64` local myconf="--libdir=/usr/lib" case "${flag}" in x86) if use 3dnow; then myconf="${myconf} --enable-ia32-3dnow" fi if use sse; then myconf="${myconf} --enable-ia32-sse" fi ;; amd64) if use sse; then myconf="${myconf} --enable-x86-64-sse" fi ;; ppc64) if use altivec; then myconf="${myconf} --enable-ppc-altivec" fi ;; ia64) myconf="${myconf} --enable-ia64-asm" ;; *) myconf="${myconf} --enable-fortran" ;; esac #build single precision package cd ${WORKDIR}/${P}-single econf ${myconf} || die "configure failed" emake || die #build double precision package #defaults to suffix _d if use double-precision; then cd ${WORKDIR}/${P}-double econf ${myconf} \ --enable-double || die "configure failed" emake || die fi #build optional mpi support for mdrun #binary will be mdrun_mpi if use mpi; then cd ${WORKDIR}/${P}-mpi-single econf ${myconf} \ --enable-mpi \ --program-suffix=_mpi || die "configure failed" make mdrun || die #build optional mpi support for double precision package #binary will be mdrun_mpi_d if use double-precision; then cd ${WORKDIR}/${P}-mpi-double econf ${myconf} \ --enable-mpi \ --enable-double \ --program-suffix=_mpi_d || die "configure failed" make mdrun || die fi fi } src_install () { cd ${WORKDIR}/${P}-single make DESTDIR=${D} install || die # Install documentation. dodoc AUTHORS COPYING INSTALL README #move html docs under /usr/share/doc mv ${D}/usr/share/gromacs/html ${D}/usr/share/doc/${PF}/ if use double-precision; then cd ${WORKDIR}/${P}-double make DESTDIR=${D} install || die fi if use mpi; then cd ${WORKDIR}/${P}-mpi-single make DESTDIR=${D} install-mdrun || die if use double-precision; then cd ${WORKDIR}/${P}-double make DESTDIR=${D} install-mdrun || die fi fi }