forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-2.3.51, Repoman-2.3.12 Signed-off-by: Alexey Shvetsov <[email protected]>
- Loading branch information
Showing
3 changed files
with
542 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,14 @@ | ||
DIST gromacs-2016.2.tar.gz 27339623 BLAKE2B c3548f4abdc4c1b09a79a3da99d7ca8060daca7307e4c5b81bd97d54adfb9621fbccf1ea7fd96c3676d6b44c20f9f4cd2168ce131799792512fad3b8b1ac0522 SHA512 f5e74bb8c126823c90d205ac0f0835e61fdd13a4550bc15aa9c972ee9b187f6451cdc90877c17276d2f889d61abb5eaa5ea1b54f7cbf3da67074146c749c1aa6 | ||
DIST gromacs-2016.5.tar.gz 27369491 BLAKE2B 4a8bf1ae3e298ac2e26ec476130720dc3ef00db5d999e3a45fdbfd7fbfe7e94fbc86be6ff0f2f23552769c8bc851ce49c73f6fc1ab13f372523279b93e7794d7 SHA512 9cb8ff88871aa5df0967c60ba303c03296c6fa3c215cd01b26259df7753f0014f04222078ab4b84a66a1f709997837134d5c0f74da19b78322e410010c9d9e10 | ||
DIST gromacs-2018.3.tar.gz 29915626 BLAKE2B 6e6eeafecdd923a25b4a2a78a8e89f793639b57ffbd63f19d133d8474302f9a381041f138a509dadb42b36e25fe508729e860efb6b0c75cdbf01d924b0a8fd83 SHA512 3c4d6eb3942d7b54d01c94c6f6f5ae706e0f5d4f9901ea11a56fde4df97b1a9112007f2cb13feea0f19f30c89f57ae80ff53a8f5203b8cdff103aa903cd0dc8f | ||
DIST gromacs-2018.4.tar.gz 29918276 BLAKE2B daf3f91e47bab61befee4ecd91e4885835fc5ded408462c239c824567e64b5710fb252456c6be2bf0e4ce1a2119747fca9d8fb0532286bb93d6ccdd289fe57ab SHA512 8ef0b90b2c266bb706c8fdba12e763de9c21aad197c1c71f48c06378644a734a3694172804db6c916a4974a9832b128512f2445d0b72783811e64edd22d27955 | ||
DIST gromacs-2019-beta1.tar.gz 33549950 BLAKE2B 667246f9a7cb136efca3fbda21aabe5ab0a759aa42896f8a9ddc86fafbfb1906e31fe46688c98477a5841e8fe5708b960c2a26abe754b8d793046734cd509377 SHA512 9f8bec3671f6f7421dc45cab1b5edb8ba8f2ebc34cd19ebd3d5d534be1f84135a112f49733a3f8c79e93ffc2b09c5053ae0dea31e95832a2b98acaee47f7d1af | ||
DIST gromacs-5.0.4.tar.gz 26342095 BLAKE2B 27a2483e23533ad627114c0005fa0d49a311b359c31aed6378bdd768c9dda03c3b19f11d961f0bd3b82a1711737d4b7dce13cad5fc56d058dd0110fe21421ee3 SHA512 bc62b623bf71dcaa948aaf7563a3d3afa973da0702062848a20323db202e862dcee413197dacd1472866ccb40fce7709e283177b1c6c49514064f23e6c46b5ee | ||
DIST gromacs-5.1.3.tar.gz 27095702 BLAKE2B b7fd8fa10e8c4f4368ac551338c59374dc35f85c9fdae5d64eec62929b8f04ea724a084959b3618cd8a151bf3e0a0c84c8f75de953722effca82a4928941ce73 SHA512 9ab26e1b2268f8d567b89b2d99d0b75b937b28edceaec56d17ca3243c76faa31255ffc0c45d762c7c693fe500b00e36ad43b80572d1d7f92dc87f9d2d98c0ba6 | ||
DIST regressiontests-2016.2.tar.gz 67095329 BLAKE2B fec8a663845ad67374c8a230d1590fa9e5079460198f41cee3b788aaa1c72e8ec9dcda48bc68a594f15003d11bf6617d46cc1a09c16b7a333587b43904a16ba6 SHA512 e0aceb56d1f38a7e6ab9fdaac5063fd20c5b3a162ffb6eddd0e6dc7dff9b724bfe31363493a9437e9f9d5421a534b375960fcb31e903a4901a0fa94ed8511294 | ||
DIST regressiontests-2016.5.tar.gz 67641413 BLAKE2B 4fcd30c198f3acbbabf1104c040d9a686de49536a97dbeb14732bfa0ed3cf37aa61b1b0f45393668985b993d1f1862a8985e416af819cf9793f5964f3e4f43cc SHA512 31764fd99cc4185d61de5d4443ee482c27b13533451a24aa0e4899997ce275a63685424eafacae38b1a3ffd4ce0d5ebe02a90348953b04c104f91376f0edfdff | ||
DIST regressiontests-2018.3.tar.gz 67857855 BLAKE2B acd7a05ae79d1b4eb47d0c68a3fec9ee19f028a5019f39c37a033f48cf6da2a468375180ad6ceca9ac4f685a8bead38550663a47d6427b51f84c32a5c810e5f0 SHA512 57980d49efe6dcc3b3d14b5913a30c68fc1de5b679ef986fec1a149c76f67139b0299c3ee2825451461294fab5f345c7ad4f42e90f8991b81aafe9c369f3ff0b | ||
DIST regressiontests-2018.4.tar.gz 67860326 BLAKE2B 0160f701a8fa14ba4f175f4fca9894104bc5cc6aa5f02ac57200fd5a8f74a29b595df609e704cb70fcd9a03529bcf758fb4547e35557a45c0546d819c2681983 SHA512 baaac0c918684216ada5254a7c3a1f5b3ea00b1a63d6085d569095139b2a0c9de4ed330d4694f7eaedab729ed5dcea547390781b3d2f7c2ffdf02e0541a90efe | ||
DIST regressiontests-2019-beta1.tar.gz 67604794 BLAKE2B 163046e54206d3406d39e6bd9552dcce5a9a05a73e14249bf371d2432d902a3e336c0caa3e0c83353ac4566d91f4f805724f8eb996a831f8d3b712f65b1d1c42 SHA512 eef7eaacf56ba9358bfb0a3e34da4bc00d2a65564da81d144f57ee8a732081882b8e1c96f7006b966455105b834271715273e7590d3d4310209ee0324e7fa585 | ||
DIST regressiontests-5.0.4.tar.gz 65193251 BLAKE2B c5e5f23adcc2639fe652bc252533307c7fda44453d506603242968bd8588c7394028b2c3c7a9252f807a050d40e8f78735e904dfe517d3db8ae962051f4826c1 SHA512 747725fa28c1c9525596bdeeb8809e45268e19036c11dac67d043aa1c51748688ca37eb6014eb7e819eb927a8b9ca2631d0ace4cdff8ed491b08c316c530ab65 | ||
DIST regressiontests-5.1.3.tar.gz 66994083 BLAKE2B 7009f65ad0138664ac84e57f8bc7cce5d18a59f99943e56b6642583120bfce279e005ac0bacd2db8904ea477a48e2b938c64de46a65fa5d08fce6009d53583c3 SHA512 486e86eb3b75bae822abe82dac4e1098aa13723bd04214021f835a2f0b847303f015a9ececc33aa5ae63d31a2eeae07e512f22464b6c0e26d1286b0781578022 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,270 @@ | ||
# Copyright 1999-2018 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
CMAKE_MAKEFILE_GENERATOR="ninja" | ||
|
||
inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs xdg-utils | ||
|
||
if [[ $PV = *9999* ]]; then | ||
EGIT_REPO_URI="git://git.gromacs.org/gromacs.git | ||
https://gerrit.gromacs.org/gromacs.git | ||
https://github.com/gromacs/gromacs.git | ||
http://repo.or.cz/r/gromacs.git" | ||
[[ $PV = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}" | ||
inherit git-r3 | ||
else | ||
SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz | ||
test? ( http://gerrit.gromacs.org/download/regressiontests-${PV/_/-}.tar.gz )" | ||
KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" | ||
fi | ||
|
||
ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" | ||
|
||
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}" | ||
IUSE="X blas cuda +doc -double-precision +fftw +hwloc lapack mkl mpi +offensive opencl openmp +single-precision test +threads +tng ${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 ) | ||
opencl? ( virtual/opencl ) | ||
fftw? ( sci-libs/fftw:3.0 ) | ||
hwloc? ( <sys-apps/hwloc-2 ) | ||
lapack? ( virtual/lapack ) | ||
mkl? ( sci-libs/mkl ) | ||
mpi? ( virtual/mpi ) | ||
" | ||
DEPEND="${CDEPEND} | ||
virtual/pkgconfig | ||
doc? ( | ||
app-doc/doxygen | ||
dev-texlive/texlive-latex | ||
dev-texlive/texlive-latexextra | ||
media-gfx/imagemagick | ||
)" | ||
RDEPEND="${CDEPEND}" | ||
|
||
REQUIRED_USE=" | ||
|| ( single-precision double-precision ) | ||
cuda? ( single-precision ) | ||
cuda? ( !opencl ) | ||
mkl? ( !blas !fftw !lapack )" | ||
|
||
DOCS=( AUTHORS README ) | ||
|
||
if [[ ${PV} != *9999 ]]; then | ||
S="${WORKDIR}/${PN}-${PV/_/-}" | ||
fi | ||
|
||
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-r3_src_unpack | ||
if use test; then | ||
EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ | ||
EGIT_BRANCH="${EGIT_BRANCH}" \ | ||
EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ | ||
git-r3_src_unpack | ||
fi | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
#notes/todos | ||
# -on apple: there is framework support | ||
|
||
xdg_environment_reset #591952 | ||
|
||
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 cpu_flags_x86_sse2 && acce="SSE2" | ||
use cpu_flags_x86_sse4_1 && acce="SSE4.1" | ||
use cpu_flags_x86_fma4 && acce="AVX_128_FMA" | ||
use cpu_flags_x86_avx && acce="AVX_256" | ||
use cpu_flags_x86_avx2 && acce="AVX2_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[@]}" | ||
-DGMX_X11=$(usex X) | ||
-DGMX_EXTERNAL_BLAS=$(usex blas) | ||
-DGMX_EXTERNAL_LAPACK=$(usex lapack) | ||
-DGMX_OPENMP=$(usex openmp) | ||
-DGMX_COOL_QUOTES=$(usex offensive) | ||
-DGMX_USE_TNG=$(usex tng) | ||
-DGMX_BUILD_MANUAL=$(usex doc) | ||
-DGMX_HWLOC=$(usex hwloc) | ||
-DGMX_DEFAULT_SUFFIX=off | ||
-DGMX_SIMD="$acce" | ||
-DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" | ||
-DBUILD_TESTING=$(usex test) | ||
-DGMX_BUILD_UNITTESTS=$(usex test) | ||
${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" ) | ||
local opencl=( "-DGMX_USE_OPENCL=OFF" ) | ||
use opencl && opencl=( "-DGMX_USE_OPENCL=ON" ) cuda=( "-DGMX_GPU=ON" ) | ||
mycmakeargs=( | ||
${mycmakeargs_pre[@]} ${p} | ||
-DGMX_MPI=OFF | ||
-DGMX_THREAD_MPI=$(usex threads) | ||
"${opencl[@]}" | ||
"${cuda[@]}" | ||
"$(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 | ||
[[ ${CHOST} != *-darwin* ]] || \ | ||
sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die | ||
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_BUILD_MDRUN_ONLY=ON | ||
-DBUILD_SHARED_LIBS=OFF | ||
-DGMX_BUILD_MANUAL=OFF | ||
-DGMX_BINARY_SUFFIX="_mpi${suffix}" | ||
-DGMX_LIBS_SUFFIX="_mpi${suffix}" | ||
) | ||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure | ||
[[ ${CHOST} != *-darwin* ]] || \ | ||
sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die | ||
done | ||
} | ||
|
||
src_compile() { | ||
for x in ${GMX_DIRS}; do | ||
einfo "Compiling for ${x} precision" | ||
BUILD_DIR="${WORKDIR}/${P}_${x}"\ | ||
cmake-utils_src_compile | ||
# not 100% necessary for rel ebuilds as available from website | ||
if use doc; then | ||
BUILD_DIR="${WORKDIR}/${P}_${x}"\ | ||
cmake-utils_src_compile manual | ||
fi | ||
use mpi || continue | ||
einfo "Compiling for ${x} precision with mpi" | ||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ | ||
cmake-utils_src_compile | ||
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 use doc; then | ||
newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" | ||
fi | ||
use mpi || continue | ||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ | ||
cmake-utils_src_install | ||
done | ||
|
||
if use tng; then | ||
insinto /usr/include/tng | ||
doins src/external/tng_io/include/tng/*h | ||
fi | ||
# drop unneeded stuff | ||
rm "${ED}"usr/bin/GMXRC* || die | ||
for x in "${ED}"usr/bin/gmx-completion-*.bash ; do | ||
local n=${x##*/gmx-completion-} | ||
n="${n%.bash}" | ||
cat "${ED}"usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die | ||
newbashcomp "${T}"/"${n}" "${n}" | ||
done | ||
rm "${ED}"usr/bin/gmx-completion*.bash || die | ||
readme.gentoo_create_doc | ||
} | ||
|
||
pkg_postinst() { | ||
einfo | ||
einfo "Please read and cite:" | ||
einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " | ||
einfo "https://dx.doi.org/10.1021/ct700301q" | ||
einfo | ||
readme.gentoo_print_elog | ||
} |
Oops, something went wrong.