summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2023-01-30 09:42:02 +0300
committerAlexey Shvetsov <alexxy@gentoo.org>2023-01-30 09:42:27 +0300
commit87dffbbeea8f54dc3fadce38abb3333094609eaa (patch)
treecb4db1fb9642d3ad0c9809f50336844240f41cd4 /sci-chemistry
parentsys-kernel/git-sources: add 6.2_rc6 (diff)
downloadgentoo-87dffbbeea8f54dc3fadce38abb3333094609eaa.tar.gz
gentoo-87dffbbeea8f54dc3fadce38abb3333094609eaa.tar.bz2
gentoo-87dffbbeea8f54dc3fadce38abb3333094609eaa.zip
sci-chemistry/gromacs: drop versions
Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
Diffstat (limited to 'sci-chemistry')
-rw-r--r--sci-chemistry/gromacs/Manifest12
-rw-r--r--sci-chemistry/gromacs/gromacs-2019.6-r1.ebuild250
-rw-r--r--sci-chemistry/gromacs/gromacs-2020.4-r1.ebuild347
-rw-r--r--sci-chemistry/gromacs/gromacs-2021.3-r1.ebuild352
-rw-r--r--sci-chemistry/gromacs/gromacs-2021.5.ebuild352
-rw-r--r--sci-chemistry/gromacs/gromacs-2022.3.ebuild333
6 files changed, 0 insertions, 1646 deletions
diff --git a/sci-chemistry/gromacs/Manifest b/sci-chemistry/gromacs/Manifest
index 48bb6ecb5abb..6166ff22c51f 100644
--- a/sci-chemistry/gromacs/Manifest
+++ b/sci-chemistry/gromacs/Manifest
@@ -1,30 +1,18 @@
DIST gromacs-2018.8.tar.gz 29913703 BLAKE2B 8780032305928067fbfe1559efe9eedc4d47e27ab2f6ab54d6dba39edfcbeefbee4673d8910009048a850620b5a08ba8feb622db652c439cfa50a149ec5f0015 SHA512 6717895942f2ab7b54019511ed2aebadadde8e96d3c4b7414bb9168ffe418432d2dee330192e199f7b9d2f665c71f5d4f1ef0911aa7243d525a2ca182ef5b122
DIST gromacs-2019.6.tar.gz 33446147 BLAKE2B adc21fb6b841b06d499607f8c0166a673645ef5af0b40bd823d0fff5ea24397e6301c5e1e0070986ae1ce1deba8a42052b66da148b071c1e21f2fe3908fee275 SHA512 7c227a9539e5775d5d128ae9e872a24181d79cdcd2852b86453597987e8d7332ecec371da65d089f6e610c54aafbccc8824ce298743383dd6240719ebee692a8
-DIST gromacs-2020.4.tar.gz 29149899 BLAKE2B a07c8efd96137d58c1edf4ac9b5aafeb16d9e65234b9459b71471827032654acacb58ed6ae87ec6e0e593a0acd799683cc4461b06cc883b089d740708619345e SHA512 0c56f058741af70660baf0177724ec940dd984c05ea141ede91ee51ce3744f76d00e31bdb5db907e46fa1639de5dca637b3ace26e89f908c2e74c69f0c21ed3a
DIST gromacs-2020.7.tar.gz 29175554 BLAKE2B 98f1aa415946f8eb113febc81105f0c1b0919b96fc3c55a0ab83bf3950ff509b81eade92e645adb0bc2b407df239e20cf3f19828b6e08616437c8693c1fddcc8 SHA512 1d375c44cec38445e56cea252623b5b6c565680268999d4b6c14d6dc38759a27227655b2d29efaab9f9115d3677b446cb555e11cddafa0dc10c4827caaa2477b
-DIST gromacs-2021.3.tar.gz 37987972 BLAKE2B d71995c7d5a34978246e33dc637ac3d273e547afcf72d1a107026650f03286ecdf27e4b9a70113b3c3a01af59ad49ac5c813aa6e5d2e8eb29fd05582a7a28d34 SHA512 da420917d06de2e192dfbb4e1b9f46989ed05b5c7e641c657104ed8f2bd8b22509bffd1ecfd7c965c80544eafa6af12d6d0aba7e1e7d9d14a4a88fb3fbf394a5
-DIST gromacs-2021.5.tar.gz 38023772 BLAKE2B 45e1f080b86626423e471f06b48b615db1913048f9f6998da8ce45408339b32f829d33dd2af57297a7d307fcffd556c333a58c309ee0f2adb021ca3755619b05 SHA512 56c1b312fc8e52ec6f86e445d2fa2d07107c461b35d4dc8cdf95580f05fd8e6c5fd671d0e72b2b9e74e3232bc8c41db496fe4bcaf2b9a3ae3c2cfa93489a31c5
DIST gromacs-2021.6.tar.gz 38012702 BLAKE2B 023ae37dc53643758afa050fd179cd66f3c6d6266f6afceee5eb35c890a3ae284956f2bc2409156d6e1fa03a7f23f7b04c27e1820547fd5f147b344d94da7d40 SHA512 65d7874e5cd838ce4f29d033c66304738ccc30f1987f9f8541725058b2fc4551302a399f6ce773e81ac9485963187c48feaf92c71789f4c345c82bd335f806a7
-DIST gromacs-2022.3.tar.gz 40359623 BLAKE2B 23beacf7208df89aea6c3effe483361451a9ff20428fe79ec163a5eee4dc0db0bb00a2bee84bc9377ad272f216fd372eab1b77e8542ce231ac785b41b582fa15 SHA512 1a6a1674ed17dfd93dcd51537cd13c9df5bb9bd91c3a26601032f83b788a93689bac8070eb8e495a786d41cc9d474885538cbaffa4229da70dfa640ee42b7c60
DIST gromacs-2022.4.tar.gz 40352282 BLAKE2B 616ba05a70a483d7d8fadefb383ac9fc8825ac09ea92f55a0222c57ac91e4a045fb55405ec963303d8dbabb04b3d1f8c73062785b3812b3c6b7582e002dc5538 SHA512 15c642f2b63c1731a01a3b58c13d454f57c29607554a6693c2e62f38da574c6d596c5cb6f361e0feb5e1069b3b19bb49ceaa432c030da91f48e41654e3e6a62f
DIST gromacs-2023-rc1.tar.gz 41863824 BLAKE2B c365ccd83b8f271be8f1a515f4dc0ebd729ce43023e979a52046fc827e786f84f09de894af9b8da4f7ce6e06a1ae050e8ff387892f76787857327ce2bc397042 SHA512 7ab8158624e0c93c0f06bd7023b97012d80afa5e068cb4489e7e9700171a5a8f69ae042bf0256c78aaec527d9a1b88f5f2dce6c8c7d4f46a457b6a9568b70f45
DIST manual-2018.8.pdf 10025023 BLAKE2B afb0a6e6a72d78df743fcb57e7c1716848589e571dd35167b957a9b407ca27978ccfb6cb9e0df9c9439b888f352501a00ba32281ed1e0b4193bd606f1d77152e SHA512 b1972f7ce965bfc9377542993c5943ea4868a8ed23a969d4203264746d6bea3a7a65c6379196ece37fd6d68ec7ec80f827bde87d1049284af7082759a124f1d5
DIST manual-2019.6.pdf 12702376 BLAKE2B c350127bc06a9eb3dee73da39037c84daeb89500e23cb131bd19a150bf60602d4dde7611e0c6f0f344af4093e96a899303dac71b4df56fd0c44c3a48a56606b7 SHA512 dfdff67c2c1c9ce1f1c236b7686c5331b0fe86951da6c98eddd6a3e748815e0be0a9653ae4318469fcdd913c4e7c355d64a997cc80b9d9fbe6282ef6d98e61eb
-DIST manual-2020.4.pdf 11851608 BLAKE2B 7b7bdf08e8946fcc448543b08391b94a67fee60a8c810597c1f09f70443f9d7db817c99622dd0c21c6317f5fdcd6c4a88589ecac57055cb0cd8597d6021026e7 SHA512 928555663c77de36393e625c29d388d4e1c8c1298e7a993d871839e0d4d8d18d190221ad8f1d975bd072bdd6a061e9ea5b9295f2ecf45f24b6523ea5ea290fed
DIST manual-2020.7.pdf 11850780 BLAKE2B 38594e87993badfbbcf47d6010a7f67d3c3426dab85e1462916b4d62be27b5764953f912cf2b71ee24877e0bfa27b3f74431da2da81b4977d58cb66b2cc795a3 SHA512 4f184f2c90e0bac01a48069cc546cd5b04fa5f543f90dd2d68c6d17be278152fd09456b6a6c5c8236f8fb85a174d6ec7a1c7b44d437b4e6fea5d0ada73cec0f6
-DIST manual-2021.3.pdf 12255076 BLAKE2B 6ca516b6832507c9d4100679d1f9bc9e3ab17d226849b050764b0d0626247dc57ce49985f9a7fc0061f3df278923a83faa367ca8ab91c37e5624dc584a51a822 SHA512 5d53798f30ea00fcb4e1b35f7eaa4bebfc05dafa4f2d0c197dcf2b57a624ad3a98b74fd90722e40d0ac13a6fff4ca231f9d6340f52ba94659c827c53c2f1cb16
-DIST manual-2021.5.pdf 12253641 BLAKE2B 8850715a2bb21345e1c9735aca1a5dd2ad916e5a18881e7c9f3dda6f055ca12d9d379b74218138999ce50769efd8b9dd6447afbf70bbbefa2564dfb9fb276b91 SHA512 7635108c935e4953d722df6a16ee43edf97eef7e49f047218728f68f61f8f185192ff1d8b13a573b643b040955af211355a7b560c8a894c858d7f71249d41296
DIST manual-2021.6.pdf 12256595 BLAKE2B 5d808e38571b38c1f6e0d115f6e604238206cc001f59d05ed855e80c324c0e6fd7767adb723b3d0edd1267ae5973a3b83b76bd04d2dc99769e6440600d8e2146 SHA512 64fe56422d7417f6f61b10346c99e24c3f423f0cedc3794e0809250282bc87ef692b47ae6c3f95ad7994aa3860ed82035cbacc76eb78a2f54a29052a05260af2
-DIST manual-2022.3.pdf 13080874 BLAKE2B 3e70da8f70281c78084f5f9af86cdcda187c7b3085f08d95487992a65e31b7dae0b3e66d914dc0bccaf1bfe4c672d2018f38d0bde679759545aca55d1df1f554 SHA512 f634eac722d4a6f77820ef46024d9209de97fb6afb52333f200c2717049d8d09e31f0ef7bac8f154d79ae43fa31541ed6c3d839dd088433222ebdace298b5fae
DIST manual-2022.4.pdf 13080976 BLAKE2B 45685fa1d727aa30425e946ac72e0bd723528032e3fb45525d3c025316ee2682ea3c9cc2fd75b5cd4e900adbc6e7f577e3368d9e0681294fd1515df3d2e5d840 SHA512 a7ac3a80a90f14b6917e15633d77230d24cdcf19ade38d14b35c6451074848a7754b33c612e2a26a657f2edd3d6710e5a8130cacb107d4085d1bd934267ad623
DIST manual-2023-rc1.pdf 13506754 BLAKE2B 9487753e788fa5b2d01255717769e0b01cf7adcb4ae99a1f37f4ad0f8acccfbf4eff0a4c76add63bc82bffdf844cf8dd1d858d15a6bacd6635ec3a3474e10f6f SHA512 f26df914402793c656a798847524c0b9207a4163bb36d6cb90740a699418719f7b124343b4886e50d92023c14f8c1e61e950c12b8e1e4702007e34677cd17ef2
DIST regressiontests-2018.8.tar.gz 67855469 BLAKE2B 34c9b339f6229f483afbb5192ee6ba8b8f72d5c26907a853af9c53dfece0d88739e48f6b44b78d1c010f988f9385d077285300522164f533a5861e9dda879275 SHA512 3642389d27bd1942cd0f091c940ae97b197b94856a387fe581dc516b0d4169480f16551d4ba357f9282b3337d605c286d51dd38112ac87c826dda634904836bb
DIST regressiontests-2019.6.tar.gz 67643195 BLAKE2B 1e054e24b187946f7ea28090d4f20cf8e1d79a26253f57ba07d130e0773d8541b8a1552a38023d31a68ce8bc62d8e0af1d98609234bb3e7d3e6d567307ebb386 SHA512 eacf1c55b982515a305c29459fe80a7cd558a8481e5689962aa956148af542568b1d1ce59c6784ecb0afd4768c2b664afa21e12af2d89ae2b06b1ba61ad72036
-DIST regressiontests-2020.4.tar.gz 48542144 BLAKE2B 1dcde67525d40ababa74d9e8ba2dd3fdef1de7d1018491e102edd71d3a622925f213b5a0812e5448882b4cb5fb578317e8e5029bdc4bd53008aa8441a3d9dea1 SHA512 7c71f36a1cef22562f14dcd233e90ad2fe370ae1a7d3b5268727259b374e12d4754253735ac8745d3738bdbc1cc2067780fda5e393be2ff264f632fe4e0c1978
DIST regressiontests-2020.7.tar.gz 48541487 BLAKE2B 255608b52158c6c01e7c7c4dcf075128ecf22b2f26d32e8c203de8a4bc69c60ec95f49cf8ccd64abc3073c5e8dca9d6b01daed9dfb8f67bce2dd068ed01acd05 SHA512 2458582f94f3c9f4e1454824ce3940b4f5b6cb2151d06846c42e7a9448296fd2a6df4f53be9624e0d3317d2b59f89bb5348eb8b2970d7b46ac22ca989ef3458a
-DIST regressiontests-2021.3.tar.gz 48515038 BLAKE2B ee79d8adddc9c68f7d59d9e568b12bf4d1fe0e44c2810fee846ad6f689bbcacf60f5c266433946329e64e3127bc2d37a3f81f69c070c636b411b38067650c2cf SHA512 e14baa22ef2902a23125bbd9143ae7a9a4810498b321794ff1989f8d044d47db5db41d5225798fda08016c05e5f7f315178b5a6e35cdf01e3b6604670a8ce7a2
-DIST regressiontests-2021.5.tar.gz 48537298 BLAKE2B 860ac34aa8706ecdafab4472162775ce12726d93839079ebf9b7df8c2c6a1b47baa8a635c24cf4cb4551a32237c3de7da3197ec136b5bbf48663edc3943720ad SHA512 3605d04b2602339fb7d33e2776da2ada337ca58a3802472d47f490d4e8dd04249a950bf34608a498eedebf69f344c0311bac8f7fcb58ce0ebbb6d608ee39aa2e
DIST regressiontests-2021.6.tar.gz 48537070 BLAKE2B 982fad6b23da5c1e6d32009f9f08772419c08f15549aea85ec0cd144c7faf5b48ed9b49a2cae662c28008514911cc18e0b39b994854d95f4f206e728b76f3fe5 SHA512 9c0ca29df822bc13005fd35bdb85cc075ea667112ae1670af0d8306cdd2bd348a9f9904bd10da6db458d9c11f4d44860e1fc62e9686d2c6e396e265d18768ba4
-DIST regressiontests-2022.3.tar.gz 48615675 BLAKE2B 731d9a210dcd481df937182a9a8239087549abd118d1386175ef68979e139ae33089cfc304e0389670ad15a196008c282ddf62968a7e8bfccac22c0a96add276 SHA512 98888ad908705ac29ae958591368e994b091a1619782b49601e41f576c821eb3c96a713449151b8db59d46bc6dd3bcb363f5d0cda354ce6b39a9bb93ba31f913
DIST regressiontests-2022.4.tar.gz 48614599 BLAKE2B d41d59d4336455c87f3877be48ec49b2cdc989548c51ef9c8277b05bb6cf3dc05ebfa91a0248cc113c130a0ed19aae2c8316184caf37b72aa612b211fe41b144 SHA512 6495a286b201774ea2a922376ff5c0abaae7aaef1dfd28a1a61c817b5c6ac83db99300d43cc019745ca32a025e1f8a7f538342af539d9d753e494c550b429706
DIST regressiontests-2023-rc1.tar.gz 48611523 BLAKE2B 4ef09171007c45f38239c8e966d0c9a611ee9b133c91fb51fc5d25a7f67eab01e32b1ef89c12b42eb140b5e189834697e4116ad6c9c302ab33d15cf871ac61d6 SHA512 f5c2a486f8b416140b69841c42df8bb1e38fc0d7b58badc4370a59ca543c48c7875a877eab828ee03f87e55501f4e8fcdd18103939825f8b57f681f99b108f42
diff --git a/sci-chemistry/gromacs/gromacs-2019.6-r1.ebuild b/sci-chemistry/gromacs/gromacs-2019.6-r1.ebuild
deleted file mode 100644
index 7f9f30390239..000000000000
--- a/sci-chemistry/gromacs/gromacs-2019.6-r1.ebuild
+++ /dev/null
@@ -1,250 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="ninja"
-
-inherit bash-completion-r1 cmake cuda readme.gentoo-r1 toolchain-funcs xdg-utils
-
-SRC_URI="
- https://ftp.gromacs.org/gromacs/${PN}-${PV/_/-}.tar.gz
- doc? ( https://ftp.gromacs.org/manual/manual-${PV/_/-}.pdf )
- test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV/_/-}.tar.gz )"
-KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux ~x64-macos"
-
-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="https://www.gromacs.org/"
-
-# see COPYING for details
-# https://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 +gmxapi +hwloc lapack +lmfit 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-6.5.14 )
- opencl? ( virtual/opencl )
- fftw? ( sci-libs/fftw:3.0= )
- hwloc? ( sys-apps/hwloc:= )
- lapack? ( virtual/lapack )
- lmfit? ( sci-libs/lmfit:= )
- mkl? ( sci-libs/mkl )
- mpi? ( virtual/mpi )
- ${PYTHON_DEPS}
- "
-BDEPEND="${CDEPEND}
- virtual/pkgconfig
- "
-RDEPEND="${CDEPEND}"
-
-REQUIRED_USE="
- || ( single-precision double-precision )
- cuda? ( single-precision )
- opencl? ( single-precision )
- cuda? ( !opencl )
- mkl? ( !blas !fftw !lapack )
- ${PYTHON_REQUIRED_USE}"
-
-DOCS=( AUTHORS README )
-
-RESTRICT="!test? ( test )"
-
-S="${WORKDIR}/${PN}-${PV/_/-}"
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-src_prepare() {
- #notes/todos
- # -on apple: there is framework support
-
- xdg_environment_reset #591952
-
- cmake_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; 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
-
- if use lmfit; then
- local lmfit_opts=( -DGMX_USE_LMFIT=EXTERNAL )
- else
- local lmfit_opts=( -DGMX_USE_LMFIT=INTERNAL )
- fi
-
- mycmakeargs_pre+=(
- "${fft_opts[@]}"
- "${lmfit_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_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)
- -DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
- ${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" )
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_MPI=OFF
- -DGMX_THREAD_MPI=$(usex threads)
- -DGMXAPI=$(usex gmxapi)
- "${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_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"
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_THREAD_MPI=OFF
- -DGMX_MPI=ON
- -DGMX_OPENMM=OFF
- -DGMXAPI=OFF
- "${opencl[@]}"
- "${cuda[@]}"
- -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_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_src_compile
- use mpi || continue
- einfo "Compiling for ${x} precision with mpi"
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\
- cmake_src_compile
- done
-}
-
-src_test() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile check
- done
-}
-
-src_install() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install
- if use doc; then
- newdoc "${DISTDIR}/manual-${PV/_/-}.pdf" "${PN}-manual-${PV}.pdf"
- fi
- use mpi || continue
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \
- cmake_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 gromacs related papers from list:"
- einfo "https://www.gromacs.org/Gromacs_papers"
- einfo
- readme.gentoo_print_elog
-}
diff --git a/sci-chemistry/gromacs/gromacs-2020.4-r1.ebuild b/sci-chemistry/gromacs/gromacs-2020.4-r1.ebuild
deleted file mode 100644
index 136b40260c00..000000000000
--- a/sci-chemistry/gromacs/gromacs-2020.4-r1.ebuild
+++ /dev/null
@@ -1,347 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="ninja"
-
-PYTHON_COMPAT=( python3_{9..11} )
-
-DISTUTILS_OPTIONAL=1
-DISTUTILS_USE_PEP517=no
-DISTUTILS_SINGLE_IMPL=1
-
-inherit bash-completion-r1 cmake cuda distutils-r1 flag-o-matic readme.gentoo-r1 toolchain-funcs xdg-utils
-
-if [[ ${PV} = *9999* ]]; then
- EGIT_REPO_URI="
- https://gitlab.com/gromacs/gromacs.git
- https://github.com/gromacs/gromacs.git
- git://git.gromacs.org/gromacs.git"
- [[ ${PV} = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}"
- inherit git-r3
-else
- SRC_URI="
- https://ftp.gromacs.org/gromacs/${PN}-${PV/_/-}.tar.gz
- doc? ( https://ftp.gromacs.org/manual/manual-${PV/_/-}.pdf )
- test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV/_/-}.tar.gz )"
- KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux ~x64-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="https://www.gromacs.org/"
-
-# see COPYING for details
-# https://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 +custom-cflags +doc build-manual double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack +lmfit mkl mpi +offensive opencl openmp +python +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-6.5.14 )
- opencl? ( virtual/opencl )
- fftw? ( sci-libs/fftw:3.0= )
- hwloc? ( sys-apps/hwloc:= )
- lapack? ( virtual/lapack )
- lmfit? ( sci-libs/lmfit:= )
- mkl? ( sci-libs/mkl )
- mpi? ( virtual/mpi )
- ${PYTHON_DEPS}
- "
-BDEPEND="${CDEPEND}
- virtual/pkgconfig
- build-manual? (
- app-doc/doxygen
- $(python_gen_cond_dep '
- dev-python/sphinx[${PYTHON_USEDEP}]
- ')
- media-gfx/mscgen
- media-gfx/graphviz
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexextra
- media-gfx/imagemagick
- )"
-RDEPEND="${CDEPEND}"
-
-REQUIRED_USE="
- || ( single-precision double-precision )
- doc? ( !build-manual )
- cuda? ( single-precision )
- opencl? ( single-precision )
- cuda? ( !opencl )
- mkl? ( !blas !fftw !lapack )
- ${PYTHON_REQUIRED_USE}"
-
-DOCS=( AUTHORS README )
-
-RESTRICT="!test? ( test )"
-
-if [[ ${PV} != *9999 ]]; then
- S="${WORKDIR}/${PN}-${PV/_/-}"
-fi
-
-PATCHES=( "${FILESDIR}/${PN}-2020-pytest.patch" )
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
- python-single-r1_pkg_setup
-}
-
-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_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"
- if use build-manual; then
- # try to create policy for imagemagik
- mkdir -p ${HOME}/.config/ImageMagick
- cat >> ${HOME}/.config/ImageMagick/policy.xml <<- EOF
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE policymap [
- <!ELEMENT policymap (policy)+>
- !ATTLIST policymap xmlns CDATA #FIXED ''>
- <!ELEMENT policy EMPTY>
- <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
- name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
- stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
- ]>
- <policymap>
- <policy domain="coder" rights="read | write" pattern="PS" />
- <policy domain="coder" rights="read | write" pattern="PS2" />
- <policy domain="coder" rights="read | write" pattern="PS3" />
- <policy domain="coder" rights="read | write" pattern="EPS" />
- <policy domain="coder" rights="read | write" pattern="PDF" />
- <policy domain="coder" rights="read | write" pattern="XPS" />
- </policymap>
- EOF
- fi
-}
-
-src_configure() {
- local mycmakeargs_pre=( ) extra fft_opts=( )
-
- if use custom-cflags; then
- #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"
- else
- strip-flags
- fi
-
- #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; 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
-
- if use lmfit; then
- local lmfit_opts=( -DGMX_USE_LMFIT=EXTERNAL )
- else
- local lmfit_opts=( -DGMX_USE_LMFIT=INTERNAL )
- fi
-
- mycmakeargs_pre+=(
- "${fft_opts[@]}"
- "${lmfit_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 build-manual)
- -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)
- -DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
- ${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" )
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_MPI=OFF
- -DGMX_THREAD_MPI=$(usex threads)
- -DGMXAPI=$(usex gmxapi)
- -DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
- "${opencl[@]}"
- "${cuda[@]}"
- "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
- -DGMX_BINARY_SUFFIX="${suffix}"
- -DGMX_LIBS_SUFFIX="${suffix}"
- -DGMX_PYTHON_PACKAGE=$(usex python)
- )
- BUILD_DIR="${WORKDIR}/${P}_${x}" cmake_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"
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_THREAD_MPI=OFF
- -DGMX_MPI=ON
- -DGMX_OPENMM=OFF
- -DGMXAPI=OFF
- "${opencl[@]}"
- "${cuda[@]}"
- -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_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_src_compile
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile python_packaging/all
- BUILD_DIR="${WORKDIR}/${P}" \
- distutils-r1_src_compile
- fi
- # not 100% necessary for rel ebuilds as available from website
- if use build-manual; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile manual
- fi
- use mpi || continue
- einfo "Compiling for ${x} precision with mpi"
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\
- cmake_src_compile
- done
-}
-
-src_test() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile check
- done
-}
-
-src_install() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install python_packaging/install
- fi
- if use build-manual; then
- newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
- fi
-
- if use doc; then
- if [[ ${PV} != *9999* ]]; then
- newdoc "${DISTDIR}/manual-${PV}.pdf" "${PN}-manual-${PV}.pdf"
- fi
- fi
-
- use mpi || continue
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \
- cmake_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 gromacs related papers from list:"
- einfo "https://www.gromacs.org/Gromacs_papers"
- einfo
- readme.gentoo_print_elog
-}
diff --git a/sci-chemistry/gromacs/gromacs-2021.3-r1.ebuild b/sci-chemistry/gromacs/gromacs-2021.3-r1.ebuild
deleted file mode 100644
index 9205c7d1fcf3..000000000000
--- a/sci-chemistry/gromacs/gromacs-2021.3-r1.ebuild
+++ /dev/null
@@ -1,352 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR="ninja"
-
-PYTHON_COMPAT=( python3_{9..11} )
-
-DISTUTILS_OPTIONAL=1
-DISTUTILS_USE_PEP517=no
-DISTUTILS_SINGLE_IMPL=1
-
-inherit bash-completion-r1 cmake cuda distutils-r1 flag-o-matic readme.gentoo-r1 toolchain-funcs xdg-utils
-
-if [[ ${PV} = *9999* ]]; then
- EGIT_REPO_URI="
- https://gitlab.com/gromacs/gromacs.git
- https://github.com/gromacs/gromacs.git
- git://git.gromacs.org/gromacs.git"
- [[ ${PV} = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}"
- inherit git-r3
-else
- SRC_URI="
- https://ftp.gromacs.org/gromacs/${PN}-${PV/_/-}.tar.gz
- doc? ( https://ftp.gromacs.org/manual/manual-${PV/_/-}.pdf )
- test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV/_/-}.tar.gz )"
- KEYWORDS="amd64 arm x86 ~amd64-linux ~x86-linux ~x64-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 cpu_flags_x86_avx512f cpu_flags_arm_neon"
-
-DESCRIPTION="The ultimate molecular dynamics simulation package"
-HOMEPAGE="https://www.gromacs.org/"
-
-# see COPYING for details
-# https://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 +custom-cflags +doc build-manual double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack +lmfit mkl mpi +offensive opencl openmp +python +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-6.5.14[profiler] )
- opencl? ( virtual/opencl )
- fftw? ( sci-libs/fftw:3.0= )
- hwloc? ( sys-apps/hwloc:= )
- lapack? ( virtual/lapack )
- lmfit? ( sci-libs/lmfit:= )
- mkl? ( sci-libs/mkl )
- mpi? ( virtual/mpi )
- ${PYTHON_DEPS}
- "
-BDEPEND="${CDEPEND}
- virtual/pkgconfig
- build-manual? (
- app-doc/doxygen
- $(python_gen_cond_dep '
- dev-python/sphinx[${PYTHON_USEDEP}]
- ')
- media-gfx/mscgen
- media-gfx/graphviz
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexextra
- media-gfx/imagemagick
- )"
-RDEPEND="${CDEPEND}"
-
-REQUIRED_USE="
- || ( single-precision double-precision )
- doc? ( !build-manual )
- cuda? ( single-precision )
- opencl? ( single-precision )
- cuda? ( !opencl )
- mkl? ( !blas !fftw !lapack )
- ${PYTHON_REQUIRED_USE}"
-
-DOCS=( AUTHORS README )
-
-RESTRICT="!test? ( test )"
-
-PATCHES=( "${FILESDIR}/${PN}-2021-musl-stdint.patch" )
-
-if [[ ${PV} != *9999 ]]; then
- S="${WORKDIR}/${PN}-${PV/_/-}"
-fi
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
- python-single-r1_pkg_setup
-}
-
-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_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"
- if use build-manual; then
- # try to create policy for imagemagik
- mkdir -p ${HOME}/.config/ImageMagick
- cat >> ${HOME}/.config/ImageMagick/policy.xml <<- EOF
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE policymap [
- <!ELEMENT policymap (policy)+>
- !ATTLIST policymap xmlns CDATA #FIXED ''>
- <!ELEMENT policy EMPTY>
- <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
- name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
- stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
- ]>
- <policymap>
- <policy domain="coder" rights="read | write" pattern="PS" />
- <policy domain="coder" rights="read | write" pattern="PS2" />
- <policy domain="coder" rights="read | write" pattern="PS3" />
- <policy domain="coder" rights="read | write" pattern="EPS" />
- <policy domain="coder" rights="read | write" pattern="PDF" />
- <policy domain="coder" rights="read | write" pattern="XPS" />
- </policymap>
- EOF
- fi
-}
-
-src_configure() {
- local mycmakeargs_pre=( ) extra fft_opts=( )
- local acce="AUTO"
-
- if use custom-cflags; then
- #go from slowest to fastest acceleration
- acce="None"
- if (use amd64 || use x86); then
- 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"
- use cpu_flags_x86_avx512f && acce="AVX_512"
- elif (use arm); then
- use cpu_flags_arm_neon && acce="ARM_NEON"
- elif (use arm64); then
- use cpu_flags_arm_neon && acce="ARM_NEON_ASIMD"
- fi
- else
- strip-flags
- fi
-
- #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; 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
-
- if use lmfit; then
- local lmfit_opts=( -DGMX_USE_LMFIT=EXTERNAL )
- else
- local lmfit_opts=( -DGMX_USE_LMFIT=INTERNAL )
- fi
-
- mycmakeargs_pre+=(
- "${fft_opts[@]}"
- "${lmfit_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 build-manual)
- -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)
- -DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
- ${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 gpu=( "-DGMX_GPU=OFF" )
- [[ ${x} = "float" ]] && use cuda && gpu=( "-DGMX_GPU=CUDA" )
- use opencl && gpu=( "-DGMX_GPU=OPENCL" )
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_MPI=OFF
- -DGMX_THREAD_MPI=$(usex threads)
- -DGMXAPI=$(usex gmxapi)
- -DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
- "${gpu[@]}"
- "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
- -DGMX_BINARY_SUFFIX="${suffix}"
- -DGMX_LIBS_SUFFIX="${suffix}"
- -DGMX_PYTHON_PACKAGE=$(usex python)
- )
- BUILD_DIR="${WORKDIR}/${P}_${x}" cmake_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"
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_THREAD_MPI=OFF
- -DGMX_MPI=ON
- -DGMX_OPENMM=OFF
- -DGMXAPI=OFF
- "${opencl[@]}"
- "${cuda[@]}"
- -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_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_src_compile
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile python_packaging/all
- BUILD_DIR="${WORKDIR}/${P}" \
- distutils-r1_src_compile
- fi
- # not 100% necessary for rel ebuilds as available from website
- if use build-manual; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile manual
- fi
- use mpi || continue
- einfo "Compiling for ${x} precision with mpi"
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\
- cmake_src_compile
- done
-}
-
-src_test() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile check
- done
-}
-
-src_install() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install python_packaging/install
- fi
- if use build-manual; then
- newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
- fi
-
- if use doc; then
- if [[ ${PV} != *9999* ]]; then
- newdoc "${DISTDIR}/manual-${PV}.pdf" "${PN}-manual-${PV}.pdf"
- fi
- fi
-
- use mpi || continue
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \
- cmake_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 gromacs related papers from list:"
- einfo "https://www.gromacs.org/Gromacs_papers"
- einfo
- readme.gentoo_print_elog
-}
diff --git a/sci-chemistry/gromacs/gromacs-2021.5.ebuild b/sci-chemistry/gromacs/gromacs-2021.5.ebuild
deleted file mode 100644
index 8cb244317617..000000000000
--- a/sci-chemistry/gromacs/gromacs-2021.5.ebuild
+++ /dev/null
@@ -1,352 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR="ninja"
-
-PYTHON_COMPAT=( python3_{9..11} )
-
-DISTUTILS_OPTIONAL=1
-DISTUTILS_USE_PEP517=no
-DISTUTILS_SINGLE_IMPL=1
-
-inherit bash-completion-r1 cmake cuda distutils-r1 flag-o-matic readme.gentoo-r1 toolchain-funcs xdg-utils
-
-if [[ ${PV} = *9999* ]]; then
- EGIT_REPO_URI="
- https://gitlab.com/gromacs/gromacs.git
- https://github.com/gromacs/gromacs.git
- git://git.gromacs.org/gromacs.git"
- [[ ${PV} = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}"
- inherit git-r3
-else
- SRC_URI="
- https://ftp.gromacs.org/gromacs/${PN}-${PV/_/-}.tar.gz
- doc? ( https://ftp.gromacs.org/manual/manual-${PV/_/-}.pdf )
- test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV/_/-}.tar.gz )"
- KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~x64-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 cpu_flags_x86_avx512f cpu_flags_arm_neon"
-
-DESCRIPTION="The ultimate molecular dynamics simulation package"
-HOMEPAGE="https://www.gromacs.org/"
-
-# see COPYING for details
-# https://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 +custom-cflags +doc build-manual double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack +lmfit mkl mpi +offensive opencl openmp +python +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-6.5.14[profiler] )
- opencl? ( virtual/opencl )
- fftw? ( sci-libs/fftw:3.0= )
- hwloc? ( sys-apps/hwloc:= )
- lapack? ( virtual/lapack )
- lmfit? ( sci-libs/lmfit:= )
- mkl? ( sci-libs/mkl )
- mpi? ( virtual/mpi )
- ${PYTHON_DEPS}
- "
-BDEPEND="${CDEPEND}
- virtual/pkgconfig
- build-manual? (
- app-doc/doxygen
- $(python_gen_cond_dep '
- dev-python/sphinx[${PYTHON_USEDEP}]
- ')
- media-gfx/mscgen
- media-gfx/graphviz
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexextra
- media-gfx/imagemagick
- )"
-RDEPEND="${CDEPEND}"
-
-REQUIRED_USE="
- || ( single-precision double-precision )
- doc? ( !build-manual )
- cuda? ( single-precision )
- opencl? ( single-precision )
- cuda? ( !opencl )
- mkl? ( !blas !fftw !lapack )
- ${PYTHON_REQUIRED_USE}"
-
-DOCS=( AUTHORS README )
-
-RESTRICT="!test? ( test )"
-
-PATCHES=( "${FILESDIR}/${PN}-2021-musl-stdint.patch" )
-
-if [[ ${PV} != *9999 ]]; then
- S="${WORKDIR}/${PN}-${PV/_/-}"
-fi
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
- python-single-r1_pkg_setup
-}
-
-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_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"
- if use build-manual; then
- # try to create policy for imagemagik
- mkdir -p ${HOME}/.config/ImageMagick
- cat >> ${HOME}/.config/ImageMagick/policy.xml <<- EOF
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE policymap [
- <!ELEMENT policymap (policy)+>
- !ATTLIST policymap xmlns CDATA #FIXED ''>
- <!ELEMENT policy EMPTY>
- <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
- name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
- stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
- ]>
- <policymap>
- <policy domain="coder" rights="read | write" pattern="PS" />
- <policy domain="coder" rights="read | write" pattern="PS2" />
- <policy domain="coder" rights="read | write" pattern="PS3" />
- <policy domain="coder" rights="read | write" pattern="EPS" />
- <policy domain="coder" rights="read | write" pattern="PDF" />
- <policy domain="coder" rights="read | write" pattern="XPS" />
- </policymap>
- EOF
- fi
-}
-
-src_configure() {
- local mycmakeargs_pre=( ) extra fft_opts=( )
- local acce="AUTO"
-
- if use custom-cflags; then
- #go from slowest to fastest acceleration
- acce="None"
- if (use amd64 || use x86); then
- 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"
- use cpu_flags_x86_avx512f && acce="AVX_512"
- elif (use arm); then
- use cpu_flags_arm_neon && acce="ARM_NEON"
- elif (use arm64); then
- use cpu_flags_arm_neon && acce="ARM_NEON_ASIMD"
- fi
- else
- strip-flags
- fi
-
- #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; 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
-
- if use lmfit; then
- local lmfit_opts=( -DGMX_USE_LMFIT=EXTERNAL )
- else
- local lmfit_opts=( -DGMX_USE_LMFIT=INTERNAL )
- fi
-
- mycmakeargs_pre+=(
- "${fft_opts[@]}"
- "${lmfit_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 build-manual)
- -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)
- -DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
- ${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 gpu=( "-DGMX_GPU=OFF" )
- [[ ${x} = "float" ]] && use cuda && gpu=( "-DGMX_GPU=CUDA" )
- use opencl && gpu=( "-DGMX_GPU=OPENCL" )
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_MPI=OFF
- -DGMX_THREAD_MPI=$(usex threads)
- -DGMXAPI=$(usex gmxapi)
- -DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
- "${gpu[@]}"
- "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
- -DGMX_BINARY_SUFFIX="${suffix}"
- -DGMX_LIBS_SUFFIX="${suffix}"
- -DGMX_PYTHON_PACKAGE=$(usex python)
- )
- BUILD_DIR="${WORKDIR}/${P}_${x}" cmake_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"
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_THREAD_MPI=OFF
- -DGMX_MPI=ON
- -DGMX_OPENMM=OFF
- -DGMXAPI=OFF
- "${opencl[@]}"
- "${cuda[@]}"
- -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_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_src_compile
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile python_packaging/all
- BUILD_DIR="${WORKDIR}/${P}" \
- distutils-r1_src_compile
- fi
- # not 100% necessary for rel ebuilds as available from website
- if use build-manual; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile manual
- fi
- use mpi || continue
- einfo "Compiling for ${x} precision with mpi"
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\
- cmake_src_compile
- done
-}
-
-src_test() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile check
- done
-}
-
-src_install() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install python_packaging/install
- fi
- if use build-manual; then
- newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
- fi
-
- if use doc; then
- if [[ ${PV} != *9999* ]]; then
- newdoc "${DISTDIR}/manual-${PV}.pdf" "${PN}-manual-${PV}.pdf"
- fi
- fi
-
- use mpi || continue
- BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \
- cmake_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 gromacs related papers from list:"
- einfo "https://www.gromacs.org/Gromacs_papers"
- einfo
- readme.gentoo_print_elog
-}
diff --git a/sci-chemistry/gromacs/gromacs-2022.3.ebuild b/sci-chemistry/gromacs/gromacs-2022.3.ebuild
deleted file mode 100644
index ca908310a723..000000000000
--- a/sci-chemistry/gromacs/gromacs-2022.3.ebuild
+++ /dev/null
@@ -1,333 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR="ninja"
-
-PYTHON_COMPAT=( python3_{9..11} )
-
-DISTUTILS_OPTIONAL=1
-DISTUTILS_USE_PEP517=no
-DISTUTILS_SINGLE_IMPL=1
-
-inherit bash-completion-r1 cmake cuda distutils-r1 flag-o-matic readme.gentoo-r1 toolchain-funcs xdg-utils
-
-if [[ ${PV} = *9999* ]]; then
- EGIT_REPO_URI="
- https://gitlab.com/gromacs/gromacs.git
- https://github.com/gromacs/gromacs.git
- git://git.gromacs.org/gromacs.git"
- [[ ${PV} = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}"
- inherit git-r3
-else
- SRC_URI="
- https://ftp.gromacs.org/gromacs/${P}.tar.gz
- doc? ( https://ftp.gromacs.org/manual/manual-${PV}.pdf )
- test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV}.tar.gz )"
- # since 2022 arm support was dropped (but not arm64)
- KEYWORDS="~amd64 -arm ~arm64 ~x86 ~amd64-linux ~x86-linux ~x64-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 cpu_flags_x86_avx512f cpu_flags_arm_neon"
-
-DESCRIPTION="The ultimate molecular dynamics simulation package"
-HOMEPAGE="https://www.gromacs.org/"
-
-# see COPYING for details
-# https://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="blas clang clang-cuda cuda +custom-cflags +doc build-manual double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack mkl mpi +offensive opencl openmp +python +single-precision test +threads +tng ${ACCE_IUSE}"
-
-CDEPEND="
- blas? ( virtual/blas )
- cuda? ( >=dev-util/nvidia-cuda-toolkit-11[profiler] )
- opencl? ( virtual/opencl )
- fftw? ( sci-libs/fftw:3.0= )
- hwloc? ( sys-apps/hwloc:= )
- lapack? ( virtual/lapack )
- mkl? ( sci-libs/mkl )
- mpi? ( virtual/mpi[cxx] )
- sci-libs/lmfit:=
- >=dev-cpp/muParser-2.3:=
- ${PYTHON_DEPS}
- "
-BDEPEND="${CDEPEND}
- virtual/pkgconfig
- clang? ( >=sys-devel/clang-6:* )
- build-manual? (
- app-doc/doxygen
- $(python_gen_cond_dep '
- dev-python/sphinx[${PYTHON_USEDEP}]
- ')
- media-gfx/mscgen
- media-gfx/graphviz
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexextra
- media-gfx/imagemagick
- )"
-RDEPEND="${CDEPEND}
- <sci-chemistry/dssp-4"
-
-REQUIRED_USE="
- || ( single-precision double-precision )
- doc? ( !build-manual )
- cuda? ( single-precision )
- opencl? ( single-precision )
- cuda? ( !opencl )
- clang-cuda? ( clang cuda )
- mkl? ( !blas !fftw !lapack )
- ${PYTHON_REQUIRED_USE}"
-
-DOCS=( AUTHORS README )
-
-RESTRICT="!test? ( test )"
-
-if [[ ${PV} != *9999 ]]; then
- S="${WORKDIR}/${PN}-${PV/_/-}"
-fi
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
- python-single-r1_pkg_setup
-}
-
-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
-
- # we can use clang as default
- if use clang && ! tc-is-clang ; then
- export CC=${CHOST}-clang
- export CXX=${CHOST}-clang++
- else
- tc-export CXX CC
- fi
- # clang-cuda need to filter mfpmath
- if use clang-cuda ; then
- filter-mfpmath sse
- filter-mfpmath i386
- fi
-
- cmake_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"
- if use build-manual; then
- # try to create policy for imagemagik
- mkdir -p ${HOME}/.config/ImageMagick
- cat >> ${HOME}/.config/ImageMagick/policy.xml <<- EOF
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE policymap [
- <!ELEMENT policymap (policy)+>
- !ATTLIST policymap xmlns CDATA #FIXED ''>
- <!ELEMENT policy EMPTY>
- <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
- name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
- stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
- ]>
- <policymap>
- <policy domain="coder" rights="read | write" pattern="PS" />
- <policy domain="coder" rights="read | write" pattern="PS2" />
- <policy domain="coder" rights="read | write" pattern="PS3" />
- <policy domain="coder" rights="read | write" pattern="EPS" />
- <policy domain="coder" rights="read | write" pattern="PDF" />
- <policy domain="coder" rights="read | write" pattern="XPS" />
- </policymap>
- EOF
- fi
-}
-
-src_configure() {
- local mycmakeargs_pre=( ) extra fft_opts=( )
- local acce="AUTO"
-
- if use custom-cflags; then
- #go from slowest to fastest acceleration
- acce="None"
- if (use amd64 || use x86); then
- 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"
- use cpu_flags_x86_avx512f && acce="AVX_512"
- elif (use arm); then
- use cpu_flags_arm_neon && acce="ARM_NEON"
- elif (use arm64); then
- use cpu_flags_arm_neon && acce="ARM_NEON_ASIMD"
- fi
- else
- strip-flags
- fi
-
- #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; 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[@]}"
- "${lmfit_opts[@]}"
- -DGMX_USE_LMFIT=EXTERNAL
- -DGMX_USE_MUPARSER=EXTERNAL
- -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 build-manual)
- -DGMX_HWLOC=$(usex hwloc)
- -DGMX_DEFAULT_SUFFIX=off
- -DGMX_SIMD="$acce"
- -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/"
- -DGMX_DSSP_PROGRAM_PATH="${EPREFIX}/usr/bin/dssp"
- -DBUILD_TESTING=$(usex test)
- -DGMX_BUILD_UNITTESTS=$(usex test)
- -DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
- ${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 gpu=( "-DGMX_GPU=OFF" )
- [[ ${x} = "float" ]] && use cuda && gpu=( "-DGMX_GPU=CUDA" )
- [[ ${x} = "float" ]] && use clang-cuda && gpu=( "-DGMX_GPU=CUDA" "-DGMX_CLANG_CUDA=ON" )
- use opencl && gpu=( "-DGMX_GPU=OPENCL" )
- local mycmakeargs=(
- ${mycmakeargs_pre[@]} ${p}
- -DGMX_MPI=$(usex mpi)
- -DGMX_THREAD_MPI=$(usex threads)
- -DGMXAPI=$(usex gmxapi)
- -DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
- "${gpu[@]}"
- "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
- -DGMX_BINARY_SUFFIX="${suffix}"
- -DGMX_LIBS_SUFFIX="${suffix}"
- -DGMX_PYTHON_PACKAGE=$(usex python)
- )
- BUILD_DIR="${WORKDIR}/${P}_${x}" cmake_src_configure
- [[ ${CHOST} != *-darwin* ]] || \
- sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die
- done
-}
-
-src_compile() {
- for x in ${GMX_DIRS}; do
- einfo "Compiling for ${x} precision"
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile python_packaging/all
- BUILD_DIR="${WORKDIR}/${P}" \
- distutils-r1_src_compile
- fi
- # not 100% necessary for rel ebuilds as available from website
- if use build-manual; then
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile manual
- fi
- done
-}
-
-src_test() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}"\
- cmake_src_compile check
- done
-}
-
-src_install() {
- for x in ${GMX_DIRS}; do
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install
- if use python; then
- BUILD_DIR="${WORKDIR}/${P}_${x}" \
- cmake_src_install python_packaging/install
- fi
- if use build-manual; then
- newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
- fi
-
- if use doc; then
- if [[ ${PV} != *9999* ]]; then
- newdoc "${DISTDIR}/manual-${PV}.pdf" "${PN}-manual-${PV}.pdf"
- fi
- fi
- 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 gromacs related papers from list:"
- einfo "https://www.gromacs.org/Gromacs_papers"
- einfo
- readme.gentoo_print_elog
-}