diff options
Diffstat (limited to 'sci-chemistry')
-rw-r--r-- | sci-chemistry/gromacs/ChangeLog | 10 | ||||
-rw-r--r-- | sci-chemistry/gromacs/files/gromacs-4.5.5-cmake-cpp-asm.patch | 46 | ||||
-rw-r--r-- | sci-chemistry/gromacs/files/gromacs-4.5.5-enable-see.patch | 48 | ||||
-rw-r--r-- | sci-chemistry/gromacs/files/gromacs-4.5.7-cmake-cpp-asm.patch | 43 | ||||
-rw-r--r-- | sci-chemistry/gromacs/gromacs-4.5.5-r1.ebuild | 247 | ||||
-rw-r--r-- | sci-chemistry/gromacs/gromacs-4.5.7.ebuild | 242 | ||||
-rw-r--r-- | sci-chemistry/gromacs/gromacs-4.6.3.ebuild | 283 | ||||
-rw-r--r-- | sci-chemistry/gromacs/gromacs-4.6.4.ebuild | 283 | ||||
-rw-r--r-- | sci-chemistry/gromacs/metadata.xml | 1 |
9 files changed, 9 insertions, 1194 deletions
diff --git a/sci-chemistry/gromacs/ChangeLog b/sci-chemistry/gromacs/ChangeLog index 1e995663e89b..cd6a6ac56be9 100644 --- a/sci-chemistry/gromacs/ChangeLog +++ b/sci-chemistry/gromacs/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for sci-chemistry/gromacs # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.134 2013/12/05 18:10:06 alexxy Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.135 2013/12/31 23:35:05 ottxor Exp $ + + 31 Dec 2013; Christoph Junghans <ottxor@gentoo.org> + -files/gromacs-4.5.5-cmake-cpp-asm.patch, + -files/gromacs-4.5.5-enable-see.patch, + -files/gromacs-4.5.7-cmake-cpp-asm.patch, -gromacs-4.5.5-r1.ebuild, + -gromacs-4.5.7.ebuild, -gromacs-4.6.3.ebuild, -gromacs-4.6.4.ebuild, + metadata.xml: + clean up *gromacs-4.6.5 (05 Dec 2013) diff --git a/sci-chemistry/gromacs/files/gromacs-4.5.5-cmake-cpp-asm.patch b/sci-chemistry/gromacs/files/gromacs-4.5.5-cmake-cpp-asm.patch deleted file mode 100644 index 71b7a2ff7b4a..000000000000 --- a/sci-chemistry/gromacs/files/gromacs-4.5.5-cmake-cpp-asm.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/cmake/CMakeASM-ATTInformation.cmake b/cmake/CMakeASM-ATTInformation.cmake -new file mode 100644 -index 0000000..05e9457 ---- /dev/null -+++ b/cmake/CMakeASM-ATTInformation.cmake -@@ -0,0 +1,13 @@ -+ -+# This a modified version of CMakeASMInformation.cmake coming with cmake 2.8.6, which -+# supports .S files -+ -+# support for AT&T syntax assemblers, e.g. GNU as -+ -+SET(ASM_DIALECT "-ATT") -+SET(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS S;s;asm) -+ -+SET(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> -o <OBJECT> <SOURCE>") -+ -+INCLUDE(CMakeASMInformation) -+SET(ASM_DIALECT) -diff --git a/src/gmxlib/CMakeLists.txt b/src/gmxlib/CMakeLists.txt -index 021ed19..c3e7b79 100644 ---- a/src/gmxlib/CMakeLists.txt -+++ b/src/gmxlib/CMakeLists.txt -@@ -47,18 +47,18 @@ endif() - if(GMX_IA32_ASM) - file(GLOB GMX_SSEKERNEL_C_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*.c) - if(GMX_ASM_USEASM-NASM) -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*intel_syntax*.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*intel_syntax*.S) - else() -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*${SSETYPE}.s nonbonded/nb_kernel_ia32_${SSETYPE}/*asm.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*${SSETYPE}.S nonbonded/nb_kernel_ia32_${SSETYPE}/*asm.S) - endif() - endif(GMX_IA32_ASM) - - if(GMX_X86_64_ASM) - file(GLOB GMX_SSEKERNEL_C_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*.c) - if(GMX_ASM_USEASM-NASM) -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*intel_syntax*.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*intel_syntax*.S) - else() -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*${SSETYPE}.s nonbonded/nb_kernel_x86_64_${SSETYPE}/*asm.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*${SSETYPE}.S nonbonded/nb_kernel_x86_64_${SSETYPE}/*asm.S) - endif() - endif(GMX_X86_64_ASM) - diff --git a/sci-chemistry/gromacs/files/gromacs-4.5.5-enable-see.patch b/sci-chemistry/gromacs/files/gromacs-4.5.5-enable-see.patch deleted file mode 100644 index e00bb8f91447..000000000000 --- a/sci-chemistry/gromacs/files/gromacs-4.5.5-enable-see.patch +++ /dev/null @@ -1,48 +0,0 @@ -See https://gerrit.gromacs.org/376 - -From 3d2c02960f9f791fc7d95549b686c8b23651613b Mon Sep 17 00:00:00 2001 -From: Christoph Junghans <junghans@votca.org> -Date: Mon, 19 Dec 2011 11:23:25 -0700 -Subject: [PATCH] Set GMX_*_ASM true if GMX_ACCELERATION != auto - -In case GMX_ACCELERATION was set to SSE manually (like in Gentoo Linux) -GMX_*_ASM would never be set (false), so sse kernel will not be build. - -Change-Id: Icf04707c6174a0182fe4472536b568e1d2d91166 ---- - CMakeLists.txt | 12 ++++++------ - 1 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 25f22b7..b56aad1 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -542,12 +542,6 @@ if (${GMX_ACCELERATION} STREQUAL "auto" AND NOT GMX_OPENMM) - - set(GMX_ACCELERATION "SSE" CACHE STRING "Accelerated kernels. Pick one of: auto, none, SSE, BlueGene, Power6, ia64, altivec, fortran" FORCE) - -- if (GMX_64_BIT) -- set(GMX_X86_64_ASM ON CACHE BOOL "Add SSE assembly files for x86_64" FORCE) -- else (GMX_64_BIT) -- set(GMX_IA32_ASM ON CACHE BOOL "Add SSE assembly files for i386" FORCE) -- endif (GMX_64_BIT) -- - # Determine the assembler/compiler to use - else() - set(GMX_ACCELERATION "none" CACHE STRING "Accelerated kernels. Pick one of: auto, none, SSE, BlueGene, Power6, ia64, altivec, fortran" FORCE) -@@ -566,6 +560,12 @@ string(TOUPPER ${GMX_ACCELERATION} ${GMX_ACCELERATION}) - if(${GMX_ACCELERATION} STREQUAL "NONE") - # nothing to do - elseif(${GMX_ACCELERATION} STREQUAL "SSE") -+ -+ if (GMX_64_BIT) -+ set(GMX_X86_64_ASM ON CACHE BOOL "Add SSE assembly files for x86_64" FORCE) -+ else (GMX_64_BIT) -+ set(GMX_IA32_ASM ON CACHE BOOL "Add SSE assembly files for i386" FORCE) -+ endif (GMX_64_BIT) - - if(CMAKE_GENERATOR MATCHES "Visual Studio") - option(GMX_ASM_USEASM-NASM "Use Nasm for assembly instead of compiler (necessary on windows)" ON) --- -1.7.8 - diff --git a/sci-chemistry/gromacs/files/gromacs-4.5.7-cmake-cpp-asm.patch b/sci-chemistry/gromacs/files/gromacs-4.5.7-cmake-cpp-asm.patch deleted file mode 100644 index f39921f69846..000000000000 --- a/sci-chemistry/gromacs/files/gromacs-4.5.7-cmake-cpp-asm.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -Naur gromacs-4.5.7.orig/cmake/CMakeASM-ATTInformation.cmake gromacs-4.5.7/cmake/CMakeASM-ATTInformation.cmake ---- gromacs-4.5.7.orig/cmake/CMakeASM-ATTInformation.cmake 1969-12-31 17:00:00.000000000 -0700 -+++ gromacs-4.5.7/cmake/CMakeASM-ATTInformation.cmake 2013-05-03 10:47:52.779868731 -0600 -@@ -0,0 +1,13 @@ -+ -+# This a modified version of CMakeASMInformation.cmake coming with cmake 2.8.6, which -+# supports .S files -+ -+# support for AT&T syntax assemblers, e.g. GNU as -+ -+SET(ASM_DIALECT "-ATT") -+SET(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS S;s;asm) -+ -+SET(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> -o <OBJECT> <SOURCE>") -+ -+INCLUDE(CMakeASMInformation) -+SET(ASM_DIALECT) -diff -Naur gromacs-4.5.7.orig/src/gmxlib/CMakeLists.txt gromacs-4.5.7/src/gmxlib/CMakeLists.txt ---- gromacs-4.5.7.orig/src/gmxlib/CMakeLists.txt 2013-05-03 10:46:29.029305075 -0600 -+++ gromacs-4.5.7/src/gmxlib/CMakeLists.txt 2013-05-03 10:50:34.630582295 -0600 -@@ -47,18 +47,18 @@ - if(GMX_IA32_ASM) - file(GLOB GMX_SSEKERNEL_C_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*.c) - if(GMX_ASM_USEASM_NASM) -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*intel_syntax*.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*intel_syntax*.S) - else() -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*${SSETYPE}.s nonbonded/nb_kernel_ia32_${SSETYPE}/*asm.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*${SSETYPE}.S nonbonded/nb_kernel_ia32_${SSETYPE}/*asm.S) - endif() - endif(GMX_IA32_ASM) - - if(GMX_X86_64_ASM) - file(GLOB GMX_SSEKERNEL_C_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*.c) - if(GMX_ASM_USEASM_NASM) -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*intel_syntax*.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*intel_syntax*.S) - else() -- file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*${SSETYPE}.s nonbonded/nb_kernel_x86_64_${SSETYPE}/*asm.s) -+ file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*${SSETYPE}.S nonbonded/nb_kernel_x86_64_${SSETYPE}/*asm.S) - endif() - endif(GMX_X86_64_ASM) - diff --git a/sci-chemistry/gromacs/gromacs-4.5.5-r1.ebuild b/sci-chemistry/gromacs/gromacs-4.5.5-r1.ebuild deleted file mode 100644 index 96690e3f1925..000000000000 --- a/sci-chemistry/gromacs/gromacs-4.5.5-r1.ebuild +++ /dev/null @@ -1,247 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-4.5.5-r1.ebuild,v 1.11 2012/12/08 22:15:02 ottxor Exp $ - -EAPI="4" - -TEST_PV="4.0.4" -MANUAL_PV="4.5.4" - -#to find external blas/lapack -CMAKE_MIN_VERSION="2.8.5-r2" - -FORTRAN_NEEDED=fkernels - -inherit bash-completion-r1 cmake-utils eutils fortran-2 multilib toolchain-funcs - -if [ "${PV%9999}" != "${PV}" ]; then - EGIT_REPO_URI="git://git.gromacs.org/gromacs" - EGIT_BRANCH="release-4-5-patches" - inherit git-2 -else - SRC_URI="${SRC_URI} ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz" -fi - -DESCRIPTION="The ultimate molecular dynamics simulation package" -HOMEPAGE="http://www.gromacs.org/" -SRC_URI="${SRC_URI} - sse2? ( http://dev.gentoo.org/~alexxy/gromacs/0001-Make-stack-non-executable-for-GAS-assembly.patch.gz ) - sse2? ( http://dev.gentoo.org/~alexxy/gromacs/0002-Make-stack-non-executable-for-ATT-assembly.patch.gz ) - doc? ( ftp://ftp.gromacs.org/pub/manual/manual-${MANUAL_PV}.pdf -> gromacs-manual-${MANUAL_PV}.pdf ) - test? ( ftp://ftp.gromacs.org/pub/tests/gmxtest-${TEST_PV}.tgz )" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 ppc64 x86 ~amd64-linux ~x86-linux ~x86-macos" -IUSE="X altivec blas doc -double-precision +fftw fkernels gsl lapack -mpi +single-precision sse2 test +threads xml zsh-completion" -REQUIRED_USE="fkernels? ( !threads )" - -CDEPEND=" - X? ( - x11-libs/libX11 - x11-libs/libSM - x11-libs/libICE - ) - blas? ( virtual/blas ) - fftw? ( sci-libs/fftw:3.0 ) - gsl? ( sci-libs/gsl ) - lapack? ( virtual/lapack ) - mpi? ( virtual/mpi ) - xml? ( dev-libs/libxml2:2 )" -DEPEND="${CDEPEND} - virtual/pkgconfig" -RDEPEND="${CDEPEND} - app-shells/tcsh" - -RESTRICT="test" - -src_prepare() { - #add user patches from /etc/portage/patches/sci-chemistry/gromacs - epatch_user - - if use mpi && use threads; then - elog "mdrun uses only threads OR mpi, and gromacs favours the" - elog "use of mpi over threads, so a mpi-version of mdrun will" - elog "be compiled. If you want to run mdrun on shared memory" - elog "machines only, you can safely disable mpi" - fi - - if use sse2; then - # Add patches for non-exec stack - qa issue - epatch "${WORKDIR}/0001-Make-stack-non-executable-for-GAS-assembly.patch" - epatch "${WORKDIR}/0002-Make-stack-non-executable-for-ATT-assembly.patch" - #alexxy patches, renamve kernel from .s to .S - epatch "${FILESDIR}/${P}-cmake-cpp-asm.patch" - - epatch "${FILESDIR}/${P}-enable-see.patch" - fi - - GMX_DIRS="" - use single-precision && GMX_DIRS+=" float" - use double-precision && GMX_DIRS+=" double" - #if neither single-precision nor double-precision is enabled - #build at least default (single) - [ -z "$GMX_DIRS" ] && GMX_DIRS+=" float" - - for x in ${GMX_DIRS}; do - mkdir -p "${WORKDIR}/${P}_${x}" || die - use test && cp -r "${WORKDIR}"/gmxtest "${WORKDIR}/${P}_${x}" - done -} - -src_configure() { - local mycmakeargs_pre=( ) - #from gromacs configure - if use fftw; then - mycmakeargs_pre+=("-DGMX_FFT_LIBRARY=fftw3") - else - mycmakeargs_pre+=("-DGMX_FFT_LIBRARY=fftpack") - ewarn "WARNING: The built-in FFTPACK routines are slow." - ewarn "Are you sure you don\'t want to use FFTW?" - ewarn "It is free and much faster..." - fi - - if [[ $(gcc-version) == "4.1" ]]; then - eerror "gcc 4.1 is not supported by gromacs" - eerror "please run test suite" - die - fi - - #note for gentoo-PREFIX on apple: use --enable-apple-64bit - - #note for gentoo-PREFIX on aix, fortran (xlf) is still much faster - if use fkernels; then - ewarn "Fortran kernels are usually not faster than C kernels and assembly" - ewarn "I hope, you know what are you doing..." - fi - - if use double-precision ; then - #from gromacs manual - elog - elog "For most simulations single precision is accurate enough. In some" - elog "cases double precision is required to get reasonable results:" - elog - elog "-normal mode analysis, for the conjugate gradient or l-bfgs minimization" - elog " and the calculation and diagonalization of the Hessian " - elog "-calculation of the constraint force between two large groups of atoms" - elog "-energy conservation: this can only be done without temperature coupling and" - elog " without cutoffs" - elog - fi - - if use mpi ; then - elog "You have enabled mpi, only mdrun will make use of mpi, that is why" - elog "we configure/compile gromacs twice (with and without mpi) and only" - elog "install mdrun with mpi support. In addtion you will get libgmx and" - elog "libmd with and without mpi support." - fi - - #go from slowest to fasterest acceleration - local acce="none" - use fkernels && acce="fortran" - use altivec && acce="altivec" - use ia64 && acce="ia64" - use sse2 && acce="sse" - - mycmakeargs_pre+=( - $(cmake-utils_use X GMX_X11) - $(cmake-utils_use blas GMX_EXTERNAL_BLAS) - $(cmake-utils_use gsl GMX_GSL) - $(cmake-utils_use lapack GMX_EXTERNAL_LAPACK) - $(cmake-utils_use threads GMX_THREADS) - $(cmake-utils_use xml GMX_XML) - -DGMX_DEFAULT_SUFFIX=off - -DGMX_ACCELERATION="$acce" - -DGMXLIB="$(get_libdir)" - ) - - for x in ${GMX_DIRS}; do - einfo "Configuring for ${x} precision" - local suffix="" - #if we build single and double - double is suffixed - use double-precision && use single-precision && \ - [ "${x}" = "double" ] && suffix="_d" - local p - [ "${x}" = "double" ] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=OFF - -DGMX_BINARY_SUFFIX="${suffix}" -DGMX_LIBS_SUFFIX="${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure - use mpi || continue - einfo "Configuring for ${x} precision with mpi" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=ON - -DGMX_BINARY_SUFFIX="_mpi${suffix}" -DGMX_LIBS_SUFFIX="_mpi${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" cmake-utils_src_configure - done -} - -src_compile() { - for x in ${GMX_DIRS}; do - einfo "Compiling for ${x} precision" - BUILD_DIR="${WORKDIR}/${P}_${x}"\ - cmake-utils_src_compile - use mpi || continue - einfo "Compiling for ${x} precision with mpi" - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ - cmake-utils_src_compile mdrun - done -} - -src_test() { - for x in ${GMX_DIRS}; do - local oldpath="${PATH}" - export PATH="${WORKDIR}/${P}_${x}/src/kernel:${S}-{x}/src/tools:${PATH}" - cd "${WORKDIR}/${P}_${x}" - emake -j1 tests || die "${x} Precision test failed" - export PATH="${oldpath}" - done -} - -src_install() { - for x in ${GMX_DIRS}; do - BUILD_DIR="${WORKDIR}/${P}_${x}" \ - cmake-utils_src_install - use mpi || continue - #cmake-utils_src_install does not support args - #using cmake-utils_src_compile instead - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ - cmake-utils_src_make install-mdrun DESTDIR="${D}" - done - - sed -n -e '/^GMXBIN/,/^GMXDATA/p' "${ED}"/usr/bin/GMXRC.bash > "${T}/80gromacs" - echo "VMD_PLUGIN_PATH=${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" >> "${T}/80gromacs" - - doenvd "${T}/80gromacs" - rm -f "${ED}"/usr/bin/GMXRC* - - newbashcomp "${ED}"/usr/bin/completion.bash ${PN} - if use zsh-completion ; then - insinto /usr/share/zsh/site-functions - newins "${ED}"/usr/bin/completion.zsh _${PN} - fi - rm -f "${ED}"/usr/bin/completion.* - - # Fix typos in a couple of files. - sed -e "s:+0f:-f:" -i "${ED}"usr/share/gromacs/tutor/gmxdemo/demo \ - || die "Failed to fixup demo script." - - cd "${S}" - dodoc AUTHORS INSTALL* README* - if use doc; then - newdoc "${DISTDIR}/gromacs-manual-${MANUAL_PV}.pdf" "manual-${MANUAL_PV}.pdf" - dohtml -r "${ED}usr/share/gromacs/html/" - fi - rm -rf "${ED}usr/share/gromacs/html/" -} - -pkg_postinst() { - einfo - einfo "Please read and cite:" - einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " - einfo "http://dx.doi.org/10.1021/ct700301q" - einfo - einfo $(g_luck) - einfo "For more Gromacs cool quotes (gcq) add g_luck to your .bashrc" - einfo - elog "Gromacs can use sci-chemistry/vmd to read additional file formats" -} diff --git a/sci-chemistry/gromacs/gromacs-4.5.7.ebuild b/sci-chemistry/gromacs/gromacs-4.5.7.ebuild deleted file mode 100644 index b5ed0854530f..000000000000 --- a/sci-chemistry/gromacs/gromacs-4.5.7.ebuild +++ /dev/null @@ -1,242 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-4.5.7.ebuild,v 1.2 2013/05/05 17:31:09 ottxor Exp $ - -EAPI="4" - -TEST_PV="4.0.4" -MANUAL_PV="4.5.6" - -FORTRAN_NEEDED=fkernels - -inherit bash-completion-r1 cmake-utils eutils fortran-2 multilib toolchain-funcs - -SRC_URI="test? ( ftp://ftp.gromacs.org/pub/tests/gmxtest-${TEST_PV}.tgz ) - doc? ( ftp://ftp.gromacs.org/pub/manual/manual-${MANUAL_PV}.pdf -> gromacs-manual-${MANUAL_PV}.pdf )" - -if [ "${PV%9999}" != "${PV}" ]; then - EGIT_REPO_URI="git://git.gromacs.org/gromacs http://repo.or.cz/r/gromacs.git" - EGIT_BRANCH="release-4-5-patches" - inherit git-2 -else - SRC_URI="${SRC_URI} ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz - sse2? ( http://dev.gentoo.org/~alexxy/gromacs/0001-Make-stack-non-executable-for-GAS-assembly.patch.gz ) - sse2? ( http://dev.gentoo.org/~alexxy/gromacs/0002-Make-stack-non-executable-for-ATT-assembly.patch.gz )" -fi - -DESCRIPTION="The ultimate molecular dynamics simulation package" -HOMEPAGE="http://www.gromacs.org/" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" -IUSE="X altivec blas doc -double-precision +fftw fkernels gsl lapack -mpi +single-precision sse2 test +threads xml zsh-completion" -REQUIRED_USE="fkernels? ( !threads )" - -CDEPEND=" - X? ( - x11-libs/libX11 - x11-libs/libSM - x11-libs/libICE - ) - blas? ( virtual/blas ) - fftw? ( sci-libs/fftw:3.0 ) - gsl? ( sci-libs/gsl ) - lapack? ( virtual/lapack ) - mpi? ( virtual/mpi ) - xml? ( dev-libs/libxml2:2 )" -DEPEND="${CDEPEND} - virtual/pkgconfig" -RDEPEND="${CDEPEND} - app-shells/tcsh" - -RESTRICT="test" - -src_prepare() { - #add user patches from /etc/portage/patches/sci-chemistry/gromacs - epatch_user - - if use mpi && use threads; then - elog "mdrun uses only threads OR mpi, and gromacs favours the" - elog "use of mpi over threads, so a mpi-version of mdrun will" - elog "be compiled. If you want to run mdrun on shared memory" - elog "machines only, you can safely disable mpi" - fi - - if [[ ${PV} != *9999 ]] && use sse2; then - # Add patches for non-exec stack - qa issue - epatch "${WORKDIR}/0001-Make-stack-non-executable-for-GAS-assembly.patch" - epatch "${WORKDIR}/0002-Make-stack-non-executable-for-ATT-assembly.patch" - #alexxy patches, renamve kernel from .s to .S - epatch "${FILESDIR}/${P}-cmake-cpp-asm.patch" - fi - - GMX_DIRS="" - use single-precision && GMX_DIRS+=" float" - use double-precision && GMX_DIRS+=" double" - #if neither single-precision nor double-precision is enabled - #build at least default (single) - [ -z "$GMX_DIRS" ] && GMX_DIRS+=" float" - - for x in ${GMX_DIRS}; do - mkdir -p "${WORKDIR}/${P}_${x}" || die - use test && cp -r "${WORKDIR}"/gmxtest "${WORKDIR}/${P}_${x}" - done -} - -src_configure() { - local mycmakeargs_pre=( ) - #from gromacs configure - if use fftw; then - mycmakeargs_pre+=("-DGMX_FFT_LIBRARY=fftw3") - else - mycmakeargs_pre+=("-DGMX_FFT_LIBRARY=fftpack") - ewarn "WARNING: The built-in FFTPACK routines are slow." - ewarn "Are you sure you don\'t want to use FFTW?" - ewarn "It is free and much faster..." - fi - - if [[ $(gcc-version) == "4.1" ]]; then - eerror "gcc 4.1 is not supported by gromacs" - eerror "please run test suite" - die - fi - - #note for gentoo-PREFIX on apple: use --enable-apple-64bit - - #note for gentoo-PREFIX on aix, fortran (xlf) is still much faster - if use fkernels; then - ewarn "Fortran kernels are usually not faster than C kernels and assembly" - ewarn "I hope, you know what are you doing..." - fi - - if use double-precision ; then - #from gromacs manual - elog - elog "For most simulations single precision is accurate enough. In some" - elog "cases double precision is required to get reasonable results:" - elog - elog "-normal mode analysis, for the conjugate gradient or l-bfgs minimization" - elog " and the calculation and diagonalization of the Hessian " - elog "-calculation of the constraint force between two large groups of atoms" - elog "-energy conservation: this can only be done without temperature coupling and" - elog " without cutoffs" - elog - fi - - if use mpi ; then - elog "You have enabled mpi, only mdrun will make use of mpi, that is why" - elog "we configure/compile gromacs twice (with and without mpi) and only" - elog "install mdrun with mpi support. In addtion you will get libgmx and" - elog "libmd with and without mpi support." - fi - - #go from slowest to fasterest acceleration - local acce="none" - use fkernels && acce="fortran" - use altivec && acce="altivec" - use ia64 && acce="ia64" - use sse2 && acce="sse" - - mycmakeargs_pre+=( - $(cmake-utils_use X GMX_X11) - $(cmake-utils_use blas GMX_EXTERNAL_BLAS) - $(cmake-utils_use gsl GMX_GSL) - $(cmake-utils_use lapack GMX_EXTERNAL_LAPACK) - $(cmake-utils_use threads GMX_THREADS) - $(cmake-utils_use xml GMX_XML) - -DGMX_DEFAULT_SUFFIX=off - -DGMX_ACCELERATION="$acce" - -DGMXLIB="$(get_libdir)" - ) - - for x in ${GMX_DIRS}; do - einfo "Configuring for ${x} precision" - local suffix="" - #if we build single and double - double is suffixed - use double-precision && use single-precision && \ - [ "${x}" = "double" ] && suffix="_d" - local p - [ "${x}" = "double" ] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=OFF - -DGMX_BINARY_SUFFIX="${suffix}" -DGMX_LIBS_SUFFIX="${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure - use mpi || continue - einfo "Configuring for ${x} precision with mpi" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=ON - -DGMX_BINARY_SUFFIX="_mpi${suffix}" -DGMX_LIBS_SUFFIX="_mpi${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" cmake-utils_src_configure - done -} - -src_compile() { - for x in ${GMX_DIRS}; do - einfo "Compiling for ${x} precision" - BUILD_DIR="${WORKDIR}/${P}_${x}"\ - cmake-utils_src_compile - use mpi || continue - einfo "Compiling for ${x} precision with mpi" - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ - cmake-utils_src_compile mdrun - done -} - -src_test() { - for x in ${GMX_DIRS}; do - local oldpath="${PATH}" - export PATH="${WORKDIR}/${P}_${x}/src/kernel:${S}-{x}/src/tools:${PATH}" - cd "${WORKDIR}/${P}_${x}" - emake -j1 tests || die "${x} Precision test failed" - export PATH="${oldpath}" - done -} - -src_install() { - for x in ${GMX_DIRS}; do - BUILD_DIR="${WORKDIR}/${P}_${x}" \ - cmake-utils_src_install - use mpi || continue - #cmake-utils_src_install does not support args - #using cmake-utils_src_compile instead - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ - cmake-utils_src_make install-mdrun DESTDIR="${D}" - done - - sed -n -e '/^GMXBIN/,/^GMXDATA/p' "${ED}"/usr/bin/GMXRC.bash > "${T}/80gromacs" - echo "VMD_PLUGIN_PATH=${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" >> "${T}/80gromacs" - - doenvd "${T}/80gromacs" - rm -f "${ED}"/usr/bin/GMXRC* - - newbashcomp "${ED}"/usr/bin/completion.bash ${PN} - if use zsh-completion ; then - insinto /usr/share/zsh/site-functions - newins "${ED}"/usr/bin/completion.zsh _${PN} - fi - rm -f "${ED}"/usr/bin/completion.* - - # Fix typos in a couple of files. - sed -e "s:+0f:-f:" -i "${ED}"usr/share/gromacs/tutor/gmxdemo/demo \ - || die "Failed to fixup demo script." - - cd "${S}" - dodoc AUTHORS INSTALL* README* - if use doc; then - newdoc "${DISTDIR}/gromacs-manual-${MANUAL_PV}.pdf" "manual-${MANUAL_PV}.pdf" - dohtml -r "${ED}usr/share/gromacs/html/" - fi - rm -rf "${ED}usr/share/gromacs/html/" -} - -pkg_postinst() { - einfo - einfo "Please read and cite:" - einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " - einfo "http://dx.doi.org/10.1021/ct700301q" - einfo - einfo $(g_luck) - einfo "For more Gromacs cool quotes (gcq) add g_luck to your .bashrc" - einfo - elog "Gromacs can use sci-chemistry/vmd to read additional file formats" -} diff --git a/sci-chemistry/gromacs/gromacs-4.6.3.ebuild b/sci-chemistry/gromacs/gromacs-4.6.3.ebuild deleted file mode 100644 index 57ec9f1b3a93..000000000000 --- a/sci-chemistry/gromacs/gromacs-4.6.3.ebuild +++ /dev/null @@ -1,283 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-4.6.3.ebuild,v 1.1 2013/07/05 23:49:14 ottxor Exp $ - -EAPI=5 - -TEST_PV="4.6.2" -MANUAL_PV="4.6.2" - -CMAKE_MAKEFILE_GENERATOR="ninja" - -inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo toolchain-funcs - -if [[ $PV = *9999* ]]; then - EGIT_REPO_URI="git://git.gromacs.org/gromacs.git - https://gerrit.gromacs.org/gromacs.git - git://github.com/gromacs/gromacs.git - http://repo.or.cz/r/gromacs.git" - EGIT_BRANCH="release-4-6" - inherit git-2 - LIVE_DEPEND="doc? ( - dev-texlive/texlive-latex - dev-texlive/texlive-latexextra - media-gfx/imagemagick - sys-apps/coreutils - )" -else - SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz - doc? ( ftp://ftp.gromacs.org/pub/manual/manual-${MANUAL_PV}.pdf -> ${PN}-manual-${MANUAL_PV}.pdf ) - test? ( http://${PN}.googlecode.com/files/regressiontests-${TEST_PV}.tar.gz )" - LIVE_DEPEND="" -fi - -ACCE_IUSE="sse2 sse4_1 avx128fma avx256" - -DESCRIPTION="The ultimate molecular dynamics simulation package" -HOMEPAGE="http://www.gromacs.org/" - -# see COPYING for details -# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING -# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib -LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" -IUSE="X blas cuda doc -double-precision +fftw gsl lapack mkl mpi +offensive openmm openmp +single-precision test +threads zsh-completion ${ACCE_IUSE}" - -CDEPEND=" - X? ( - x11-libs/libX11 - x11-libs/libSM - x11-libs/libICE - ) - blas? ( virtual/blas ) - cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) - fftw? ( sci-libs/fftw:3.0 ) - gsl? ( sci-libs/gsl ) - lapack? ( virtual/lapack ) - mkl? ( sci-libs/mkl ) - mpi? ( virtual/mpi ) - openmm? ( - >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 - sci-libs/openmm[cuda,opencl] - )" -DEPEND="${CDEPEND} - virtual/pkgconfig - ${LIVE_DEPEND}" -RDEPEND="${CDEPEND}" - -REQUIRED_USE=" - || ( single-precision double-precision ) - cuda? ( single-precision ) - openmm? ( single-precision ) - mkl? ( !blas !fftw !lapack )" - -DOCS=( AUTHORS README ) -HTML_DOCS=( "${ED}"/usr/share/gromacs/html/ ) - -pkg_pretend() { - [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" - use openmp && ! tc-has-openmp && \ - die "Please switch to an openmp compatible compiler" -} - -src_unpack() { - if [[ ${PV} != *9999 ]]; then - default - else - git-2_src_unpack - if use doc; then - EGIT_REPO_URI="git://git.gromacs.org/manual.git" \ - EGIT_BRANCH="release-4-6" EGIT_NOUNPACK="yes" EGIT_COMMIT="release-4-6" \ - EGIT_SOURCEDIR="${WORKDIR}/manual"\ - git-2_src_unpack - fi - if use test; then - EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ - EGIT_BRANCH="master" EGIT_NOUNPACK="yes" EGIT_COMMIT="master" \ - EGIT_SOURCEDIR="${WORKDIR}/regressiontests"\ - git-2_src_unpack - fi - fi -} - -src_prepare() { - #notes/todos - # -on apple: there is framework support - - cmake-utils_src_prepare - - use cuda && cuda_src_prepare - - GMX_DIRS="" - use single-precision && GMX_DIRS+=" float" - use double-precision && GMX_DIRS+=" double" - - if use test; then - for x in ${GMX_DIRS}; do - mkdir -p "${WORKDIR}/${P}_${x}" || die - cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die - done - fi - - DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" -} - -src_configure() { - local mycmakeargs_pre=( ) extra fft_opts=( ) - - #go from slowest to fastest acceleration - local acce="None" - use sse2 && acce="SSE2" - use sse4_1 && acce="SSE4.1" - use avx128fma && acce="AVX_128_FMA" - use avx256 && acce="AVX_256" - - #to create man pages, build tree binaries are executed (bug #398437) - [[ ${CHOST} = *-darwin* ]] && \ - extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" - - if use fftw; then - fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) - elif use mkl && has_version "=sci-libs/mkl-10*"; then - fft_opts=( -DGMX_FFT_LIBRARY=mkl - -DMKL_INCLUDE_DIR="${MKLROOT}/include" - -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" - ) - elif use mkl; then - local bits=$(get_libdir) - fft_opts=( -DGMX_FFT_LIBRARY=mkl - -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" - -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" - ) - else - fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) - fi - - mycmakeargs_pre+=( - "${fft_opts[@]}" - $(cmake-utils_use X GMX_X11) - $(cmake-utils_use blas GMX_EXTERNAL_BLAS) - $(cmake-utils_use gsl GMX_GSL) - $(cmake-utils_use lapack GMX_EXTERNAL_LAPACK) - $(cmake-utils_use openmp GMX_OPENMP) - $(cmake-utils_use offensive GMX_COOL_QUOTES) - -DGMX_DEFAULT_SUFFIX=off - -DGMX_ACCELERATION="$acce" - -DGMXLIB="$(get_libdir)" - -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" - -DGMX_PREFIX_LIBMD=ON - -DGMX_X86_AVX_GCC_MASKLOAD_BUG=OFF - -DGMX_USE_GCC44_BUG_WORKAROUND=OFF - ${extra} - ) - - for x in ${GMX_DIRS}; do - einfo "Configuring for ${x} precision" - local suffix="" - #if we build single and double - double is suffixed - use double-precision && use single-precision && \ - [[ ${x} = "double" ]] && suffix="_d" - local p - [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" - local cuda=( "-DGMX_GPU=OFF" ) - [[ ${x} = "float" ]] && use cuda && \ - cuda=( -DGMX_GPU=ON ) - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=OFF - $(cmake-utils_use threads GMX_THREAD_MPI) "${cuda[@]}" -DGMX_OPENMM=OFF - "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" - -DGMX_BINARY_SUFFIX="${suffix}" -DGMX_LIBS_SUFFIX="${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure - if [[ ${x} = float ]] && use openmm; then - einfo "Configuring for openmm build" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=OFF - -DGMX_THREAD_MPI=OFF -DGMX_GPU=OFF -DGMX_OPENMM=ON - -DOpenMM_PLUGIN_DIR="${EPREFIX}/usr/$(get_libdir)/plugins" - -DGMX_BINARY_SUFFIX="_openmm" -DGMX_LIBS_SUFFIX="_openmm" ) - BUILD_DIR="${WORKDIR}/${P}_openmm" \ - OPENMM_ROOT_DIR="${EPREFIX}/usr" cmake-utils_src_configure - fi - use mpi || continue - einfo "Configuring for ${x} precision with mpi" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_THREAD_MPI=OFF - -DGMX_MPI=ON ${cuda} -DGMX_OPENMM=OFF - -DGMX_BINARY_SUFFIX="_mpi${suffix}" -DGMX_LIBS_SUFFIX="_mpi${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure - done -} - -src_compile() { - for x in ${GMX_DIRS}; do - einfo "Compiling for ${x} precision" - BUILD_DIR="${WORKDIR}/${P}_${x}"\ - cmake-utils_src_compile - if [[ ${x} = float ]] && use openmm; then - einfo "Compiling for openmm build" - BUILD_DIR="${WORKDIR}/${P}_openmm"\ - cmake-utils_src_compile mdrun - fi - use mpi || continue - einfo "Compiling for ${x} precision with mpi" - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ - cmake-utils_src_compile mdrun - done -} - -src_test() { - for x in ${GMX_DIRS}; do - BUILD_DIR="${WORKDIR}/${P}_${x}"\ - cmake-utils_src_make check - done -} - -src_install() { - for x in ${GMX_DIRS}; do - BUILD_DIR="${WORKDIR}/${P}_${x}" \ - cmake-utils_src_install - if [[ ${x} = float ]] && use openmm; then - BUILD_DIR="${WORKDIR}/${P}_openmm" \ - DESTDIR="${D}" cmake-utils_src_make install-mdrun - fi - #manual can only be build after gromacs was installed once in image - if use doc && [[ $PV = *9999* && ! -d ${WORKDIR}/manual_build ]]; then - mycmakeargs=( -DGMXBIN="${ED}"/usr/bin -DGMXSRC="${WORKDIR}/${P}" ) - BUILD_DIR="${WORKDIR}"/manual_build \ - CMAKE_USE_DIR="${WORKDIR}/manual" cmake-utils_src_configure - [[ ${CHOST} = *-darwin* ]] && \ - export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}${DYLD_LIBRARY_PATH:+:}${ED}/usr/$(get_libdir)" - BUILD_DIR="${WORKDIR}"/manual_build cmake-utils_src_make - [[ ${CHOST} = *-darwin* ]] && DYLD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" - newdoc "${WORKDIR}"/manual_build/gromacs.pdf "${PN}-manual-${PV}.pdf" - fi - use mpi || continue - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ - DESTDIR="${D}" cmake-utils_src_make install-mdrun - done - - use doc && [[ $PV != *9999* ]] && dodoc "${DISTDIR}/${PN}-manual-${MANUAL_PV}.pdf" - newbashcomp "${ED}"/usr/bin/completion.bash ${PN} - if use zsh-completion ; then - insinto /usr/share/zsh/site-functions - newins "${ED}"/usr/bin/completion.zsh _${PN} - fi - rm -f "${ED}"usr/bin/completion.* - rm -rf "${ED}"usr/share/gromacs/html - rm -f "${ED}"usr/bin/g_options* - rm -f "${ED}"usr/bin/GMXRC* - - readme.gentoo_create_doc -} - -pkg_postinst() { - einfo - einfo "Please read and cite:" - einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " - einfo "http://dx.doi.org/10.1021/ct700301q" - if use offensive; then - einfo - einfo $(g_luck) - einfo "For more Gromacs cool quotes (gcq) add g_luck to your .bashrc" - fi - einfo - readme.gentoo_print_elog -} diff --git a/sci-chemistry/gromacs/gromacs-4.6.4.ebuild b/sci-chemistry/gromacs/gromacs-4.6.4.ebuild deleted file mode 100644 index 8ade0a377274..000000000000 --- a/sci-chemistry/gromacs/gromacs-4.6.4.ebuild +++ /dev/null @@ -1,283 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-4.6.4.ebuild,v 1.1 2013/11/13 18:17:42 ottxor Exp $ - -EAPI=5 - -TEST_PV="4.6.4" -MANUAL_PV="4.6.4" - -CMAKE_MAKEFILE_GENERATOR="ninja" - -inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo toolchain-funcs - -if [[ $PV = *9999* ]]; then - EGIT_REPO_URI="git://git.gromacs.org/gromacs.git - https://gerrit.gromacs.org/gromacs.git - git://github.com/gromacs/gromacs.git - http://repo.or.cz/r/gromacs.git" - EGIT_BRANCH="release-4-6" - inherit git-2 - LIVE_DEPEND="doc? ( - dev-texlive/texlive-latex - dev-texlive/texlive-latexextra - media-gfx/imagemagick - sys-apps/coreutils - )" -else - SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz - doc? ( ftp://ftp.gromacs.org/pub/manual/manual-${MANUAL_PV}.pdf -> ${PN}-manual-${MANUAL_PV}.pdf ) - test? ( http://${PN}.googlecode.com/files/regressiontests-${TEST_PV}.tar.gz )" - LIVE_DEPEND="" -fi - -ACCE_IUSE="sse2 sse4_1 avx128fma avx256" - -DESCRIPTION="The ultimate molecular dynamics simulation package" -HOMEPAGE="http://www.gromacs.org/" - -# see COPYING for details -# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING -# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib -LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" -IUSE="X blas cuda doc -double-precision +fftw gsl lapack mkl mpi +offensive openmm openmp +single-precision test +threads zsh-completion ${ACCE_IUSE}" - -CDEPEND=" - X? ( - x11-libs/libX11 - x11-libs/libSM - x11-libs/libICE - ) - blas? ( virtual/blas ) - cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) - fftw? ( sci-libs/fftw:3.0 ) - gsl? ( sci-libs/gsl ) - lapack? ( virtual/lapack ) - mkl? ( sci-libs/mkl ) - mpi? ( virtual/mpi ) - openmm? ( - >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 - sci-libs/openmm[cuda,opencl] - )" -DEPEND="${CDEPEND} - virtual/pkgconfig - ${LIVE_DEPEND}" -RDEPEND="${CDEPEND}" - -REQUIRED_USE=" - || ( single-precision double-precision ) - cuda? ( single-precision ) - openmm? ( single-precision ) - mkl? ( !blas !fftw !lapack )" - -DOCS=( AUTHORS README ) -HTML_DOCS=( "${ED}"/usr/share/gromacs/html/ ) - -pkg_pretend() { - [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" - use openmp && ! tc-has-openmp && \ - die "Please switch to an openmp compatible compiler" -} - -src_unpack() { - if [[ ${PV} != *9999 ]]; then - default - else - git-2_src_unpack - if use doc; then - EGIT_REPO_URI="git://git.gromacs.org/manual.git" \ - EGIT_BRANCH="release-4-6" EGIT_NOUNPACK="yes" EGIT_COMMIT="release-4-6" \ - EGIT_SOURCEDIR="${WORKDIR}/manual"\ - git-2_src_unpack - fi - if use test; then - EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ - EGIT_BRANCH="master" EGIT_NOUNPACK="yes" EGIT_COMMIT="master" \ - EGIT_SOURCEDIR="${WORKDIR}/regressiontests"\ - git-2_src_unpack - fi - fi -} - -src_prepare() { - #notes/todos - # -on apple: there is framework support - - cmake-utils_src_prepare - - use cuda && cuda_src_prepare - - GMX_DIRS="" - use single-precision && GMX_DIRS+=" float" - use double-precision && GMX_DIRS+=" double" - - if use test; then - for x in ${GMX_DIRS}; do - mkdir -p "${WORKDIR}/${P}_${x}" || die - cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die - done - fi - - DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" -} - -src_configure() { - local mycmakeargs_pre=( ) extra fft_opts=( ) - - #go from slowest to fastest acceleration - local acce="None" - use sse2 && acce="SSE2" - use sse4_1 && acce="SSE4.1" - use avx128fma && acce="AVX_128_FMA" - use avx256 && acce="AVX_256" - - #to create man pages, build tree binaries are executed (bug #398437) - [[ ${CHOST} = *-darwin* ]] && \ - extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" - - if use fftw; then - fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) - elif use mkl && has_version "=sci-libs/mkl-10*"; then - fft_opts=( -DGMX_FFT_LIBRARY=mkl - -DMKL_INCLUDE_DIR="${MKLROOT}/include" - -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" - ) - elif use mkl; then - local bits=$(get_libdir) - fft_opts=( -DGMX_FFT_LIBRARY=mkl - -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" - -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" - ) - else - fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) - fi - - mycmakeargs_pre+=( - "${fft_opts[@]}" - $(cmake-utils_use X GMX_X11) - $(cmake-utils_use blas GMX_EXTERNAL_BLAS) - $(cmake-utils_use gsl GMX_GSL) - $(cmake-utils_use lapack GMX_EXTERNAL_LAPACK) - $(cmake-utils_use openmp GMX_OPENMP) - $(cmake-utils_use offensive GMX_COOL_QUOTES) - -DGMX_DEFAULT_SUFFIX=off - -DGMX_ACCELERATION="$acce" - -DGMXLIB="$(get_libdir)" - -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" - -DGMX_PREFIX_LIBMD=ON - -DGMX_X86_AVX_GCC_MASKLOAD_BUG=OFF - -DGMX_USE_GCC44_BUG_WORKAROUND=OFF - ${extra} - ) - - for x in ${GMX_DIRS}; do - einfo "Configuring for ${x} precision" - local suffix="" - #if we build single and double - double is suffixed - use double-precision && use single-precision && \ - [[ ${x} = "double" ]] && suffix="_d" - local p - [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" - local cuda=( "-DGMX_GPU=OFF" ) - [[ ${x} = "float" ]] && use cuda && \ - cuda=( -DGMX_GPU=ON ) - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=OFF - $(cmake-utils_use threads GMX_THREAD_MPI) "${cuda[@]}" -DGMX_OPENMM=OFF - "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" - -DGMX_BINARY_SUFFIX="${suffix}" -DGMX_LIBS_SUFFIX="${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure - if [[ ${x} = float ]] && use openmm; then - einfo "Configuring for openmm build" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=OFF - -DGMX_THREAD_MPI=OFF -DGMX_GPU=OFF -DGMX_OPENMM=ON - -DOpenMM_PLUGIN_DIR="${EPREFIX}/usr/$(get_libdir)/plugins" - -DGMX_BINARY_SUFFIX="_openmm" -DGMX_LIBS_SUFFIX="_openmm" ) - BUILD_DIR="${WORKDIR}/${P}_openmm" \ - OPENMM_ROOT_DIR="${EPREFIX}/usr" cmake-utils_src_configure - fi - use mpi || continue - einfo "Configuring for ${x} precision with mpi" - mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_THREAD_MPI=OFF - -DGMX_MPI=ON ${cuda} -DGMX_OPENMM=OFF - -DGMX_BINARY_SUFFIX="_mpi${suffix}" -DGMX_LIBS_SUFFIX="_mpi${suffix}" ) - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure - done -} - -src_compile() { - for x in ${GMX_DIRS}; do - einfo "Compiling for ${x} precision" - BUILD_DIR="${WORKDIR}/${P}_${x}"\ - cmake-utils_src_compile - if [[ ${x} = float ]] && use openmm; then - einfo "Compiling for openmm build" - BUILD_DIR="${WORKDIR}/${P}_openmm"\ - cmake-utils_src_compile mdrun - fi - use mpi || continue - einfo "Compiling for ${x} precision with mpi" - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ - cmake-utils_src_compile mdrun - done -} - -src_test() { - for x in ${GMX_DIRS}; do - BUILD_DIR="${WORKDIR}/${P}_${x}"\ - cmake-utils_src_make check - done -} - -src_install() { - for x in ${GMX_DIRS}; do - BUILD_DIR="${WORKDIR}/${P}_${x}" \ - cmake-utils_src_install - if [[ ${x} = float ]] && use openmm; then - BUILD_DIR="${WORKDIR}/${P}_openmm" \ - DESTDIR="${D}" cmake-utils_src_make install-mdrun - fi - #manual can only be build after gromacs was installed once in image - if use doc && [[ $PV = *9999* && ! -d ${WORKDIR}/manual_build ]]; then - mycmakeargs=( -DGMXBIN="${ED}"/usr/bin -DGMXSRC="${WORKDIR}/${P}" ) - BUILD_DIR="${WORKDIR}"/manual_build \ - CMAKE_USE_DIR="${WORKDIR}/manual" cmake-utils_src_configure - [[ ${CHOST} = *-darwin* ]] && \ - export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}${DYLD_LIBRARY_PATH:+:}${ED}/usr/$(get_libdir)" - BUILD_DIR="${WORKDIR}"/manual_build cmake-utils_src_make - [[ ${CHOST} = *-darwin* ]] && DYLD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" - newdoc "${WORKDIR}"/manual_build/gromacs.pdf "${PN}-manual-${PV}.pdf" - fi - use mpi || continue - BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ - DESTDIR="${D}" cmake-utils_src_make install-mdrun - done - - use doc && [[ $PV != *9999* ]] && dodoc "${DISTDIR}/${PN}-manual-${MANUAL_PV}.pdf" - newbashcomp "${ED}"/usr/bin/completion.bash ${PN} - if use zsh-completion ; then - insinto /usr/share/zsh/site-functions - newins "${ED}"/usr/bin/completion.zsh _${PN} - fi - rm -f "${ED}"usr/bin/completion.* - rm -rf "${ED}"usr/share/gromacs/html - rm -f "${ED}"usr/bin/g_options* - rm -f "${ED}"usr/bin/GMXRC* - - readme.gentoo_create_doc -} - -pkg_postinst() { - einfo - einfo "Please read and cite:" - einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " - einfo "http://dx.doi.org/10.1021/ct700301q" - if use offensive; then - einfo - einfo $(g_luck) - einfo "For more Gromacs cool quotes (gcq) add g_luck to your .bashrc" - fi - einfo - readme.gentoo_print_elog -} diff --git a/sci-chemistry/gromacs/metadata.xml b/sci-chemistry/gromacs/metadata.xml index 8a88d53da511..880233ecb116 100644 --- a/sci-chemistry/gromacs/metadata.xml +++ b/sci-chemistry/gromacs/metadata.xml @@ -11,7 +11,6 @@ <flag name="double-precision">More precise calculations at the expense of speed</flag> <flag name="single-precision">Single precision version of gromacs (default)</flag> <!-- acceleration optimization flags --> - <flag name="fkernels">Enable building of Fortran Kernels for platforms that dont have assembly loops</flag> <flag name="sse4_1">Enable sse4.1 acceleration</flag> <flag name="avx128fma">Enable 128bit avx with fma (e.g. AMD BullDozer)</flag> <flag name="avx256">Enable 256bit avx (e.g. Intel Sandy Bridge)</flag> |