1 |
commit: 697442f898e427104b40bf9b0c4941c521e2f231 |
2 |
Author: Alexey Shvetsov <alexxy <AT> omrb <DOT> pnpi <DOT> spb <DOT> ru> |
3 |
AuthorDate: Fri Dec 1 14:45:46 2017 +0000 |
4 |
Commit: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Dec 1 14:48:30 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=697442f8 |
7 |
|
8 |
sci-chemistry/gromacs: Add opencl support and 2018_beta1 |
9 |
|
10 |
Package-Manager: Portage-2.3.16, Repoman-2.3.6 |
11 |
|
12 |
sci-chemistry/gromacs/Manifest | 2 + |
13 |
.../gromacs/files/gromacs-2018-fix-build.patch | 71 ++++++ |
14 |
sci-chemistry/gromacs/gromacs-2018.9999.ebuild | 272 ++++++++++++++++++++ |
15 |
sci-chemistry/gromacs/gromacs-2018_beta1.ebuild | 276 +++++++++++++++++++++ |
16 |
sci-chemistry/gromacs/metadata.xml | 1 + |
17 |
5 files changed, 622 insertions(+) |
18 |
|
19 |
diff --git a/sci-chemistry/gromacs/Manifest b/sci-chemistry/gromacs/Manifest |
20 |
index fb80356088e..8f7e43c5694 100644 |
21 |
--- a/sci-chemistry/gromacs/Manifest |
22 |
+++ b/sci-chemistry/gromacs/Manifest |
23 |
@@ -3,6 +3,7 @@ DIST gromacs-2016.2.tar.gz 27339623 SHA256 b6ac3632b848ab0c19f8f319dd5b58fcd09b8 |
24 |
DIST gromacs-2016.3.tar.gz 27342692 SHA256 7bf00e74a9d38b7cef9356141d20e4ba9387289cbbfd4d11be479ef932d77d27 SHA512 16593df0a52620766fb86cfeb16328793503f860cb07cdbbd503ba7f41e6430efb4848389b7179ca3907b57311162666d05224b454e1afb1b74b220f38498d86 WHIRLPOOL dfe31f212545ae2baf7373fde31f715a8df203d098d3ace915d4269b7bf16d06a1f91ead33ccbf8a17e9e0091b593818d0ce2eff151ce532238a8c27f5e20cda |
25 |
DIST gromacs-2016.4.tar.gz 27368706 SHA256 4be9d3bfda0bdf3b5c53041e0b8344f7d22b75128759d9bfa9442fe65c289264 SHA512 69661d2a7a8a5259be277de35e2baa4b688d1f7bef225fc7d733a9b00c6ee135dcbad517c7c9f751121647c2fbd085f2c9cdf22dbd941c7ebc5d3b09e7e08f1f WHIRLPOOL c1586377d2a27f0b529370efb63e09ecca64cdb3d418fe9bc4f3ea1ff82ff5293d159834f4ed5d0136d801095d6f4085722e0d91bce873776fa4549853497ff7 |
26 |
DIST gromacs-2016.tar.gz 27321561 SHA256 aa0a27cd13050a4b70aacfbd169ddce2fe507c7e668f460ecf6cf32afcac5771 SHA512 756771baaa85a1d16e7d5b8e4c96bbd1c04c7acdc536a253886cff186316330f06d60d206a0159efb15f47f161c779d3757dc5dbceab8c097241c1382d376201 WHIRLPOOL 1cc3d3797e1aaf93e1e0cb2e71173896e33fee2bb03f4e97e06be3ab85842e6da3feaf8701425358f1d701e00159ff6ce3b24fa1488d5e8ef70a1acbb914361c |
27 |
+DIST gromacs-2018-beta1.tar.gz 29857800 BLAKE2B 221ed414c1dc73b59df27dfb6dd22ef094152bba7a8346cd0d0164e9a0aa5463a7d836dfb13e98ac8cdbef2ae4a0503763a5c445a5e1c73815b3592d8b8f97fe SHA512 6e827b7b33589ccc7ef1d237c4e8ce06749a2c47f59956d383fdb59439a34874a9e0e3a3cca1d209425353a7dcf0f963de035dd0281d4c8aad0c921e6bbc7b93 |
28 |
DIST gromacs-5.0.4.tar.gz 26342095 SHA256 78068eeccc0b950018ddb45c41280e53c8bedae4639dca48e17c940f8896b23b SHA512 bc62b623bf71dcaa948aaf7563a3d3afa973da0702062848a20323db202e862dcee413197dacd1472866ccb40fce7709e283177b1c6c49514064f23e6c46b5ee WHIRLPOOL d8458d3d563e015e830622ae0c924e896765a6329ffe4cb1a31c7aef3c804f392d29e3f1db5617051e85058403422f7d69a160a6c7cc810564696d88f9d50bd4 |
29 |
DIST gromacs-5.1.3.tar.gz 27095702 SHA256 c962d9446939a9ba9905e7ca440c9306fd310f08600da3b744806bfd0eacccde SHA512 9ab26e1b2268f8d567b89b2d99d0b75b937b28edceaec56d17ca3243c76faa31255ffc0c45d762c7c693fe500b00e36ad43b80572d1d7f92dc87f9d2d98c0ba6 WHIRLPOOL bdd9c63ceb5e61963c4edd0af815cc34a3f237d8dee410c834b9b55bb82374de65b437828390a668282e50428b9907b887cd5265caf2a2007fc7673e7ab23733 |
30 |
DIST regressiontests-2016.1.tar.gz 67094518 SHA256 10c9f50ff3cb32cf629aa35e35d957965dcfce4af84a6569e6d65a16c4e09eb7 SHA512 fc01c802d81400373a147171881f3b7b9309402e8ffb08287ba393aefbb701ba93bbe0b9549ff6fa264a8befbba445c2d2c7450633063a724f78ec8ca81ae8c9 WHIRLPOOL e8c54164558fcbaa1e65e9280e438882c96bbbaa6c9389a2ee5aed37d70b83b6b36e95dd5141b4e64b303e3799411ee01cf04aa919f25014d172011e49714126 |
31 |
@@ -10,5 +11,6 @@ DIST regressiontests-2016.2.tar.gz 67095329 SHA256 53fa9ad062cc3e269fc6186db1ccb |
32 |
DIST regressiontests-2016.3.tar.gz 67093968 SHA256 a3d1b09acfc61820dddd765a381f706190b4657606488f1e676becb859ea7ecc SHA512 ee87df9f339954da0e1f1b4c8b8d4deb574f3b73d174010a295a7a0e8bc462ead7691090ea7cf8ac3d984a6cd70f1cd22c3592fa161b2967061ae5ba2796286b WHIRLPOOL 2e986136f7faf6db108bc79e6fb6db9fe81d05f5af8bc27037b80cd25869f7cd4162d5cabc03994b36c71945910be79a217ff27f61463d1548cbdff6acd99f56 |
33 |
DIST regressiontests-2016.4.tar.gz 67643648 SHA256 d58d1a2a53c22c06e2dc03bd98ae1eea0a0d51696a1f20f635dfc394fa3da957 SHA512 367438b897a05e1cc0dcd1d3872fb6a0e9ff6b1146e9448d941d6517dce789f0c478d20cf0a4f3565070f132dc88872441aadb8b499f59efa0e1e4a6dd6a7135 WHIRLPOOL 695a3b7f81915247a90e95c0a83823c0297fba6ae6266195e86c61ec540ca58afd8d01ba236c5ddb3f44b41fb9301ba6a836b15cad1875bae42ba6276670daff |
34 |
DIST regressiontests-2016.tar.gz 66908712 SHA256 30a72362f011fd9e3a8d33004018126f938536c13fcb70f590afc74beaec5406 SHA512 59902c1973c33ea8f003f21a737dc7cc64da3258112322eedc9834b53628134a6817d5ee5b3950c9bfd97a3a0580aef88ddef0609ef2c58693c96c7575651e01 WHIRLPOOL 9d210aed00ddfa57df47733169997ef04dec84c524eb5a9c5c6dd9b05ad9ec2d7f3c8a5a43f2ade9be166d80f35a260c04b1a48ac092f5969a213475bb63ae20 |
35 |
+DIST regressiontests-2018-beta1.tar.gz 67870909 BLAKE2B e9aff43331394c4a50cbc626d0327498f1571cf457e6b924f0cfe8eb688a9cd8d2b66c13c900da8737b124861fb567f9129aff840a294e92233b9a2214ff20d7 SHA512 509175cbbb8528d9bb1394c726c6e89291c2077880a3c4bf99a330ff457ca233ae74e771b8a753b0c94bba8de02840b1e5460b7c226e177742b1dee289833c0f |
36 |
DIST regressiontests-5.0.4.tar.gz 65193251 SHA256 89ad9bc067035ac8f340319b538c446983d937b910067e871911d7afe2ecb3f0 SHA512 747725fa28c1c9525596bdeeb8809e45268e19036c11dac67d043aa1c51748688ca37eb6014eb7e819eb927a8b9ca2631d0ace4cdff8ed491b08c316c530ab65 WHIRLPOOL e15ccab0a0beefac41aeff11e2e596e971167f1590eed159ff82c4a8e3aec1d234287be597026951904ecfe6099f30ef3bcd48f2098b9f5201bde62e15fbc4f9 |
37 |
DIST regressiontests-5.1.3.tar.gz 66994083 SHA256 fd5797dcfd29f7ae70857a438dcd4200a8006fce222f297892c8e90123993ebc SHA512 486e86eb3b75bae822abe82dac4e1098aa13723bd04214021f835a2f0b847303f015a9ececc33aa5ae63d31a2eeae07e512f22464b6c0e26d1286b0781578022 WHIRLPOOL 6ddb76859ee8fa3aba4d995e397970e6fd270acbdd6cc07ab77de0aebb0bfdbd2bd1107ae39d4410e750641047ae4b75c703eafad95a57ff42deb3bf1c742d08 |
38 |
|
39 |
diff --git a/sci-chemistry/gromacs/files/gromacs-2018-fix-build.patch b/sci-chemistry/gromacs/files/gromacs-2018-fix-build.patch |
40 |
new file mode 100644 |
41 |
index 00000000000..2ed6a19f31b |
42 |
--- /dev/null |
43 |
+++ b/sci-chemistry/gromacs/files/gromacs-2018-fix-build.patch |
44 |
@@ -0,0 +1,71 @@ |
45 |
+From 81e68584512b21ec572d2561c25a1b19982aa0be Mon Sep 17 00:00:00 2001 |
46 |
+From: Alexey Shvetsov <alexxy@×××××××××××××.ru> |
47 |
+Date: Fri, 1 Dec 2017 17:12:36 +0300 |
48 |
+Subject: [PATCH] Fix build with cmake 3.10 on Linux |
49 |
+ |
50 |
+Without this fix cmake will fail with |
51 |
+ |
52 |
+-- Detecting CXX compiler ABI info - done |
53 |
+-- Detecting CXX compile features |
54 |
+-- Detecting CXX compile features - done |
55 |
+CMake Error at cmake/gmxCTestUtilities.cmake:56 (file): |
56 |
+ file STRINGS file |
57 |
+ "/var/tmp/portage/sci-chemistry/gromacs-2018_beta1/work/gromacs-2018_beta1_float/DartConfiguration.tcl" |
58 |
+ cannot be read. |
59 |
+Call Stack (most recent call first): |
60 |
+ CMakeLists.txt:89 (gmx_ctest_init) |
61 |
+ |
62 |
+-- Performing Test CXXFLAG_STD_CXX0X |
63 |
+-- Performing Test CXXFLAG_STD_CXX0X - Success |
64 |
+-- Performing Test CXX11_SUPPORTED |
65 |
+-- Performing Test CXX11_SUPPORTED - Success |
66 |
+.... |
67 |
+.... |
68 |
+.... |
69 |
+-- Looking for inttypes.h |
70 |
+-- Looking for inttypes.h - found |
71 |
+-- <<< Gentoo configuration >>> |
72 |
+Build type Gentoo |
73 |
+Install path /usr |
74 |
+Compiler flags: |
75 |
+C -march=core-avx2 -O2 -pipe -march=native -mtune=native -mfpmath=sse -mavx2 |
76 |
+C++ -march=core-avx2 -O2 -pipe -march=native -mtune=native -mfpmath=sse -mavx2 -std=c++11 |
77 |
+Linker flags: |
78 |
+Executable -Wl,-O1 -Wl,--as-needed |
79 |
+Module -Wl,-O1 -Wl,--as-needed |
80 |
+Shared -Wl,-O1 -Wl,--as-needed |
81 |
+ |
82 |
+-- Configuring incomplete, errors occurred! |
83 |
+See also "/var/tmp/portage/sci-chemistry/gromacs-2018_beta1/work/gromacs-2018_beta1_float/CMakeFiles/CMakeOutput.log". |
84 |
+See also "/var/tmp/portage/sci-chemistry/gromacs-2018_beta1/work/gromacs-2018_beta1_float/CMakeFiles/CMakeError.log". |
85 |
+ |
86 |
+Change-Id: Ie04c2e5f5884f05c3648fed7289157e73fd8d81f |
87 |
+Signed-off-by: Alexey Shvetsov <alexxy@×××××××××××××.ru> |
88 |
+--- |
89 |
+ cmake/gmxCTestUtilities.cmake | 10 ++++++---- |
90 |
+ 1 file changed, 6 insertions(+), 4 deletions(-) |
91 |
+ |
92 |
+diff --git a/cmake/gmxCTestUtilities.cmake b/cmake/gmxCTestUtilities.cmake |
93 |
+index 89715f910..3685df648 100644 |
94 |
+--- a/cmake/gmxCTestUtilities.cmake |
95 |
++++ b/cmake/gmxCTestUtilities.cmake |
96 |
+@@ -50,10 +50,12 @@ macro (gmx_ctest_init) |
97 |
+ set(MEMORYCHECK_TYPE "AddressSanitizer") |
98 |
+ endif() |
99 |
+ include(CTest) |
100 |
+- # At least with CMake 3.4.1 on OS X, AddressSanitizer support in CTest |
101 |
+- # does not work without this... |
102 |
+- set(_ctest_config_file "${PROJECT_BINARY_DIR}/DartConfiguration.tcl") |
103 |
+- file(STRINGS ${_ctest_config_file} _existing REGEX "^CMakeCommand: ") |
104 |
++ if(APPLE) |
105 |
++ # At least with CMake 3.4.1 on OS X, AddressSanitizer support in CTest |
106 |
++ # does not work without this... |
107 |
++ set(_ctest_config_file "${PROJECT_BINARY_DIR}/DartConfiguration.tcl") |
108 |
++ file(STRINGS ${_ctest_config_file} _existing REGEX "^CMakeCommand: ") |
109 |
++ endif() |
110 |
+ if (NOT _existing) |
111 |
+ file(APPEND ${_ctest_config_file} "\nCMakeCommand: ${CMAKE_COMMAND}\n") |
112 |
+ endif() |
113 |
+-- |
114 |
+2.15.0 |
115 |
+ |
116 |
|
117 |
diff --git a/sci-chemistry/gromacs/gromacs-2018.9999.ebuild b/sci-chemistry/gromacs/gromacs-2018.9999.ebuild |
118 |
new file mode 100644 |
119 |
index 00000000000..315835fdc60 |
120 |
--- /dev/null |
121 |
+++ b/sci-chemistry/gromacs/gromacs-2018.9999.ebuild |
122 |
@@ -0,0 +1,272 @@ |
123 |
+# Copyright 1999-2017 Gentoo Foundation |
124 |
+# Distributed under the terms of the GNU General Public License v2 |
125 |
+ |
126 |
+EAPI=6 |
127 |
+ |
128 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
129 |
+ |
130 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs xdg-utils |
131 |
+ |
132 |
+if [[ $PV = *9999* ]]; then |
133 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
134 |
+ https://gerrit.gromacs.org/gromacs.git |
135 |
+ https://github.com/gromacs/gromacs.git |
136 |
+ http://repo.or.cz/r/gromacs.git" |
137 |
+ [[ $PV = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}" |
138 |
+ inherit git-r3 |
139 |
+ KEYWORDS="" |
140 |
+else |
141 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz |
142 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${PV/_/-}.tar.gz )" |
143 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" |
144 |
+fi |
145 |
+ |
146 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" |
147 |
+ |
148 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
149 |
+HOMEPAGE="http://www.gromacs.org/" |
150 |
+ |
151 |
+# see COPYING for details |
152 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
153 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
154 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
155 |
+SLOT="0/${PV}" |
156 |
+IUSE="X blas cuda +doc -double-precision +fftw +hwloc lapack mkl mpi +offensive opencl openmp +single-precision test +threads +tng ${ACCE_IUSE}" |
157 |
+ |
158 |
+CDEPEND=" |
159 |
+ X? ( |
160 |
+ x11-libs/libX11 |
161 |
+ x11-libs/libSM |
162 |
+ x11-libs/libICE |
163 |
+ ) |
164 |
+ blas? ( virtual/blas ) |
165 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
166 |
+ opencl? ( virtual/opencl ) |
167 |
+ fftw? ( sci-libs/fftw:3.0 ) |
168 |
+ hwloc? ( sys-apps/hwloc ) |
169 |
+ lapack? ( virtual/lapack ) |
170 |
+ mkl? ( sci-libs/mkl ) |
171 |
+ mpi? ( virtual/mpi ) |
172 |
+ " |
173 |
+DEPEND="${CDEPEND} |
174 |
+ virtual/pkgconfig |
175 |
+ doc? ( |
176 |
+ app-doc/doxygen |
177 |
+ dev-texlive/texlive-latex |
178 |
+ dev-texlive/texlive-latexextra |
179 |
+ media-gfx/imagemagick |
180 |
+ )" |
181 |
+RDEPEND="${CDEPEND}" |
182 |
+ |
183 |
+REQUIRED_USE=" |
184 |
+ || ( single-precision double-precision ) |
185 |
+ cuda? ( single-precision ) |
186 |
+ cuda? ( !opencl ) |
187 |
+ mkl? ( !blas !fftw !lapack )" |
188 |
+ |
189 |
+DOCS=( AUTHORS README ) |
190 |
+ |
191 |
+if [[ ${PV} != *9999 ]]; then |
192 |
+ S="${WORKDIR}/${PN}-${PV/_/-}" |
193 |
+fi |
194 |
+ |
195 |
+pkg_pretend() { |
196 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
197 |
+ use openmp && ! tc-has-openmp && \ |
198 |
+ die "Please switch to an openmp compatible compiler" |
199 |
+} |
200 |
+ |
201 |
+src_unpack() { |
202 |
+ if [[ ${PV} != *9999 ]]; then |
203 |
+ default |
204 |
+ else |
205 |
+ git-r3_src_unpack |
206 |
+ if use test; then |
207 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
208 |
+ EGIT_BRANCH="${EGIT_BRANCH}" \ |
209 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
210 |
+ git-r3_src_unpack |
211 |
+ fi |
212 |
+ fi |
213 |
+} |
214 |
+ |
215 |
+src_prepare() { |
216 |
+ #notes/todos |
217 |
+ # -on apple: there is framework support |
218 |
+ |
219 |
+ xdg_environment_reset #591952 |
220 |
+ |
221 |
+ cmake-utils_src_prepare |
222 |
+ |
223 |
+ use cuda && cuda_src_prepare |
224 |
+ |
225 |
+ GMX_DIRS="" |
226 |
+ use single-precision && GMX_DIRS+=" float" |
227 |
+ use double-precision && GMX_DIRS+=" double" |
228 |
+ |
229 |
+ if use test; then |
230 |
+ for x in ${GMX_DIRS}; do |
231 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
232 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
233 |
+ done |
234 |
+ fi |
235 |
+ |
236 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
237 |
+} |
238 |
+ |
239 |
+src_configure() { |
240 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
241 |
+ |
242 |
+ #go from slowest to fastest acceleration |
243 |
+ local acce="None" |
244 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
245 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
246 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
247 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
248 |
+ use cpu_flags_x86_avx2 && acce="AVX2_256" |
249 |
+ |
250 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
251 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
252 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
253 |
+ |
254 |
+ if use fftw; then |
255 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
256 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
257 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
258 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
259 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
260 |
+ ) |
261 |
+ elif use mkl; then |
262 |
+ local bits=$(get_libdir) |
263 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
264 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
265 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
266 |
+ ) |
267 |
+ else |
268 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
269 |
+ fi |
270 |
+ |
271 |
+ mycmakeargs_pre+=( |
272 |
+ "${fft_opts[@]}" |
273 |
+ -DGMX_X11=$(usex X) |
274 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
275 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
276 |
+ -DGMX_OPENMP=$(usex openmp) |
277 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
278 |
+ -DGMX_USE_TNG=$(usex tng) |
279 |
+ -DGMX_BUILD_MANUAL=$(usex doc) |
280 |
+ -DGMX_HWLOC=$(usex hwloc) |
281 |
+ -DGMX_DEFAULT_SUFFIX=off |
282 |
+ -DGMX_SIMD="$acce" |
283 |
+ -DGMX_LIB_INSTALL_DIR="$(get_libdir)" |
284 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
285 |
+ -DBUILD_TESTING=$(usex test) |
286 |
+ -DGMX_BUILD_UNITTESTS=$(usex test) |
287 |
+ ${extra} |
288 |
+ ) |
289 |
+ |
290 |
+ for x in ${GMX_DIRS}; do |
291 |
+ einfo "Configuring for ${x} precision" |
292 |
+ local suffix="" |
293 |
+ #if we build single and double - double is suffixed |
294 |
+ use double-precision && use single-precision && \ |
295 |
+ [[ ${x} = "double" ]] && suffix="_d" |
296 |
+ local p |
297 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
298 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
299 |
+ [[ ${x} = "float" ]] && use cuda && \ |
300 |
+ cuda=( "-DGMX_GPU=ON" ) |
301 |
+ local opencl=( "-DGMX_USE_OPENCL=OFF" ) |
302 |
+ use opencl && opencl=( "-DGMX_USE_OPENCL=ON" ) cuda=( "-DGMX_GPU=ON" ) |
303 |
+ mycmakeargs=( |
304 |
+ ${mycmakeargs_pre[@]} ${p} |
305 |
+ -DGMX_MPI=OFF |
306 |
+ -DGMX_THREAD_MPI=$(usex threads) |
307 |
+ "${opencl[@]}" |
308 |
+ "${cuda[@]}" |
309 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
310 |
+ -DGMX_BINARY_SUFFIX="${suffix}" |
311 |
+ -DGMX_LIBS_SUFFIX="${suffix}" |
312 |
+ ) |
313 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
314 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
315 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die |
316 |
+ use mpi || continue |
317 |
+ einfo "Configuring for ${x} precision with mpi" |
318 |
+ mycmakeargs=( |
319 |
+ ${mycmakeargs_pre[@]} ${p} |
320 |
+ -DGMX_THREAD_MPI=OFF |
321 |
+ -DGMX_MPI=ON ${cuda} |
322 |
+ -DGMX_OPENMM=OFF |
323 |
+ -DGMX_BUILD_MDRUN_ONLY=ON |
324 |
+ -DBUILD_SHARED_LIBS=OFF |
325 |
+ -DGMX_BUILD_MANUAL=OFF |
326 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" |
327 |
+ -DGMX_LIBS_SUFFIX="_mpi${suffix}" |
328 |
+ ) |
329 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
330 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
331 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die |
332 |
+ done |
333 |
+} |
334 |
+ |
335 |
+src_compile() { |
336 |
+ for x in ${GMX_DIRS}; do |
337 |
+ einfo "Compiling for ${x} precision" |
338 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
339 |
+ cmake-utils_src_compile |
340 |
+ # not 100% necessary for rel ebuilds as available from website |
341 |
+ if use doc; then |
342 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
343 |
+ cmake-utils_src_compile manual |
344 |
+ fi |
345 |
+ use mpi || continue |
346 |
+ einfo "Compiling for ${x} precision with mpi" |
347 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
348 |
+ cmake-utils_src_compile |
349 |
+ done |
350 |
+} |
351 |
+ |
352 |
+src_test() { |
353 |
+ for x in ${GMX_DIRS}; do |
354 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
355 |
+ cmake-utils_src_make check |
356 |
+ done |
357 |
+} |
358 |
+ |
359 |
+src_install() { |
360 |
+ for x in ${GMX_DIRS}; do |
361 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
362 |
+ cmake-utils_src_install |
363 |
+ if use doc; then |
364 |
+ newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" |
365 |
+ fi |
366 |
+ use mpi || continue |
367 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
368 |
+ cmake-utils_src_install |
369 |
+ done |
370 |
+ |
371 |
+ if use tng; then |
372 |
+ insinto /usr/include/tng |
373 |
+ doins src/external/tng_io/include/tng/*h |
374 |
+ fi |
375 |
+ # drop unneeded stuff |
376 |
+ rm "${ED}"usr/bin/GMXRC* || die |
377 |
+ for x in "${ED}"usr/bin/gmx-completion-*.bash ; do |
378 |
+ local n=${x##*/gmx-completion-} |
379 |
+ n="${n%.bash}" |
380 |
+ cat "${ED}"usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die |
381 |
+ newbashcomp "${T}"/"${n}" "${n}" |
382 |
+ done |
383 |
+ rm "${ED}"usr/bin/gmx-completion*.bash || die |
384 |
+ readme.gentoo_create_doc |
385 |
+} |
386 |
+ |
387 |
+pkg_postinst() { |
388 |
+ einfo |
389 |
+ einfo "Please read and cite:" |
390 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
391 |
+ einfo "https://dx.doi.org/10.1021/ct700301q" |
392 |
+ einfo |
393 |
+ readme.gentoo_print_elog |
394 |
+} |
395 |
|
396 |
diff --git a/sci-chemistry/gromacs/gromacs-2018_beta1.ebuild b/sci-chemistry/gromacs/gromacs-2018_beta1.ebuild |
397 |
new file mode 100644 |
398 |
index 00000000000..3e0dd9b80bc |
399 |
--- /dev/null |
400 |
+++ b/sci-chemistry/gromacs/gromacs-2018_beta1.ebuild |
401 |
@@ -0,0 +1,276 @@ |
402 |
+# Copyright 1999-2017 Gentoo Foundation |
403 |
+# Distributed under the terms of the GNU General Public License v2 |
404 |
+ |
405 |
+EAPI=6 |
406 |
+ |
407 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
408 |
+ |
409 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs xdg-utils |
410 |
+ |
411 |
+if [[ $PV = *9999* ]]; then |
412 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
413 |
+ https://gerrit.gromacs.org/gromacs.git |
414 |
+ https://github.com/gromacs/gromacs.git |
415 |
+ http://repo.or.cz/r/gromacs.git" |
416 |
+ [[ $PV = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}" |
417 |
+ inherit git-r3 |
418 |
+ KEYWORDS="" |
419 |
+else |
420 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz |
421 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${PV/_/-}.tar.gz )" |
422 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" |
423 |
+fi |
424 |
+ |
425 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" |
426 |
+ |
427 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
428 |
+HOMEPAGE="http://www.gromacs.org/" |
429 |
+ |
430 |
+# see COPYING for details |
431 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
432 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
433 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
434 |
+SLOT="0/${PV}" |
435 |
+IUSE="X blas cuda +doc -double-precision +fftw +hwloc lapack mkl mpi +offensive opencl openmp +single-precision test +threads +tng ${ACCE_IUSE}" |
436 |
+ |
437 |
+CDEPEND=" |
438 |
+ X? ( |
439 |
+ x11-libs/libX11 |
440 |
+ x11-libs/libSM |
441 |
+ x11-libs/libICE |
442 |
+ ) |
443 |
+ blas? ( virtual/blas ) |
444 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
445 |
+ opencl? ( virtual/opencl ) |
446 |
+ fftw? ( sci-libs/fftw:3.0 ) |
447 |
+ hwloc? ( sys-apps/hwloc ) |
448 |
+ lapack? ( virtual/lapack ) |
449 |
+ mkl? ( sci-libs/mkl ) |
450 |
+ mpi? ( virtual/mpi ) |
451 |
+ " |
452 |
+DEPEND="${CDEPEND} |
453 |
+ virtual/pkgconfig |
454 |
+ doc? ( |
455 |
+ app-doc/doxygen |
456 |
+ dev-texlive/texlive-latex |
457 |
+ dev-texlive/texlive-latexextra |
458 |
+ media-gfx/imagemagick |
459 |
+ )" |
460 |
+RDEPEND="${CDEPEND}" |
461 |
+ |
462 |
+REQUIRED_USE=" |
463 |
+ || ( single-precision double-precision ) |
464 |
+ cuda? ( single-precision ) |
465 |
+ cuda? ( !opencl ) |
466 |
+ mkl? ( !blas !fftw !lapack )" |
467 |
+ |
468 |
+DOCS=( AUTHORS README ) |
469 |
+ |
470 |
+PATCHES=( |
471 |
+ "${FILESDIR}/${PN}-2018-fix-build.patch" |
472 |
+ ) |
473 |
+ |
474 |
+if [[ ${PV} != *9999 ]]; then |
475 |
+ S="${WORKDIR}/${PN}-${PV/_/-}" |
476 |
+fi |
477 |
+ |
478 |
+pkg_pretend() { |
479 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
480 |
+ use openmp && ! tc-has-openmp && \ |
481 |
+ die "Please switch to an openmp compatible compiler" |
482 |
+} |
483 |
+ |
484 |
+src_unpack() { |
485 |
+ if [[ ${PV} != *9999 ]]; then |
486 |
+ default |
487 |
+ else |
488 |
+ git-r3_src_unpack |
489 |
+ if use test; then |
490 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
491 |
+ EGIT_BRANCH="${EGIT_BRANCH}" \ |
492 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
493 |
+ git-r3_src_unpack |
494 |
+ fi |
495 |
+ fi |
496 |
+} |
497 |
+ |
498 |
+src_prepare() { |
499 |
+ #notes/todos |
500 |
+ # -on apple: there is framework support |
501 |
+ |
502 |
+ xdg_environment_reset #591952 |
503 |
+ |
504 |
+ cmake-utils_src_prepare |
505 |
+ |
506 |
+ use cuda && cuda_src_prepare |
507 |
+ |
508 |
+ GMX_DIRS="" |
509 |
+ use single-precision && GMX_DIRS+=" float" |
510 |
+ use double-precision && GMX_DIRS+=" double" |
511 |
+ |
512 |
+ if use test; then |
513 |
+ for x in ${GMX_DIRS}; do |
514 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
515 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
516 |
+ done |
517 |
+ fi |
518 |
+ |
519 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
520 |
+} |
521 |
+ |
522 |
+src_configure() { |
523 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
524 |
+ |
525 |
+ #go from slowest to fastest acceleration |
526 |
+ local acce="None" |
527 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
528 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
529 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
530 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
531 |
+ use cpu_flags_x86_avx2 && acce="AVX2_256" |
532 |
+ |
533 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
534 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
535 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
536 |
+ |
537 |
+ if use fftw; then |
538 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
539 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
540 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
541 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
542 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
543 |
+ ) |
544 |
+ elif use mkl; then |
545 |
+ local bits=$(get_libdir) |
546 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
547 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
548 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
549 |
+ ) |
550 |
+ else |
551 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
552 |
+ fi |
553 |
+ |
554 |
+ mycmakeargs_pre+=( |
555 |
+ "${fft_opts[@]}" |
556 |
+ -DGMX_X11=$(usex X) |
557 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
558 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
559 |
+ -DGMX_OPENMP=$(usex openmp) |
560 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
561 |
+ -DGMX_USE_TNG=$(usex tng) |
562 |
+ -DGMX_BUILD_MANUAL=$(usex doc) |
563 |
+ -DGMX_HWLOC=$(usex hwloc) |
564 |
+ -DGMX_DEFAULT_SUFFIX=off |
565 |
+ -DGMX_SIMD="$acce" |
566 |
+ -DGMX_LIB_INSTALL_DIR="$(get_libdir)" |
567 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
568 |
+ -DBUILD_TESTING=$(usex test) |
569 |
+ -DGMX_BUILD_UNITTESTS=$(usex test) |
570 |
+ ${extra} |
571 |
+ ) |
572 |
+ |
573 |
+ for x in ${GMX_DIRS}; do |
574 |
+ einfo "Configuring for ${x} precision" |
575 |
+ local suffix="" |
576 |
+ #if we build single and double - double is suffixed |
577 |
+ use double-precision && use single-precision && \ |
578 |
+ [[ ${x} = "double" ]] && suffix="_d" |
579 |
+ local p |
580 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
581 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
582 |
+ [[ ${x} = "float" ]] && use cuda && \ |
583 |
+ cuda=( "-DGMX_GPU=ON" ) |
584 |
+ local opencl=( "-DGMX_USE_OPENCL=OFF" ) |
585 |
+ use opencl && opencl=( "-DGMX_USE_OPENCL=ON" ) cuda=( "-DGMX_GPU=ON" ) |
586 |
+ mycmakeargs=( |
587 |
+ ${mycmakeargs_pre[@]} ${p} |
588 |
+ -DGMX_MPI=OFF |
589 |
+ -DGMX_THREAD_MPI=$(usex threads) |
590 |
+ "${opencl[@]}" |
591 |
+ "${cuda[@]}" |
592 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
593 |
+ -DGMX_BINARY_SUFFIX="${suffix}" |
594 |
+ -DGMX_LIBS_SUFFIX="${suffix}" |
595 |
+ ) |
596 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
597 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
598 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die |
599 |
+ use mpi || continue |
600 |
+ einfo "Configuring for ${x} precision with mpi" |
601 |
+ mycmakeargs=( |
602 |
+ ${mycmakeargs_pre[@]} ${p} |
603 |
+ -DGMX_THREAD_MPI=OFF |
604 |
+ -DGMX_MPI=ON ${cuda} |
605 |
+ -DGMX_OPENMM=OFF |
606 |
+ -DGMX_BUILD_MDRUN_ONLY=ON |
607 |
+ -DBUILD_SHARED_LIBS=OFF |
608 |
+ -DGMX_BUILD_MANUAL=OFF |
609 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" |
610 |
+ -DGMX_LIBS_SUFFIX="_mpi${suffix}" |
611 |
+ ) |
612 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
613 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
614 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die |
615 |
+ done |
616 |
+} |
617 |
+ |
618 |
+src_compile() { |
619 |
+ for x in ${GMX_DIRS}; do |
620 |
+ einfo "Compiling for ${x} precision" |
621 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
622 |
+ cmake-utils_src_compile |
623 |
+ # not 100% necessary for rel ebuilds as available from website |
624 |
+ if use doc; then |
625 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
626 |
+ cmake-utils_src_compile manual |
627 |
+ fi |
628 |
+ use mpi || continue |
629 |
+ einfo "Compiling for ${x} precision with mpi" |
630 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
631 |
+ cmake-utils_src_compile |
632 |
+ done |
633 |
+} |
634 |
+ |
635 |
+src_test() { |
636 |
+ for x in ${GMX_DIRS}; do |
637 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
638 |
+ cmake-utils_src_make check |
639 |
+ done |
640 |
+} |
641 |
+ |
642 |
+src_install() { |
643 |
+ for x in ${GMX_DIRS}; do |
644 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
645 |
+ cmake-utils_src_install |
646 |
+ if use doc; then |
647 |
+ newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" |
648 |
+ fi |
649 |
+ use mpi || continue |
650 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
651 |
+ cmake-utils_src_install |
652 |
+ done |
653 |
+ |
654 |
+ if use tng; then |
655 |
+ insinto /usr/include/tng |
656 |
+ doins src/external/tng_io/include/tng/*h |
657 |
+ fi |
658 |
+ # drop unneeded stuff |
659 |
+ rm "${ED}"usr/bin/GMXRC* || die |
660 |
+ for x in "${ED}"usr/bin/gmx-completion-*.bash ; do |
661 |
+ local n=${x##*/gmx-completion-} |
662 |
+ n="${n%.bash}" |
663 |
+ cat "${ED}"usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die |
664 |
+ newbashcomp "${T}"/"${n}" "${n}" |
665 |
+ done |
666 |
+ rm "${ED}"usr/bin/gmx-completion*.bash || die |
667 |
+ readme.gentoo_create_doc |
668 |
+} |
669 |
+ |
670 |
+pkg_postinst() { |
671 |
+ einfo |
672 |
+ einfo "Please read and cite:" |
673 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
674 |
+ einfo "https://dx.doi.org/10.1021/ct700301q" |
675 |
+ einfo |
676 |
+ readme.gentoo_print_elog |
677 |
+} |
678 |
|
679 |
diff --git a/sci-chemistry/gromacs/metadata.xml b/sci-chemistry/gromacs/metadata.xml |
680 |
index c9beb4a5a32..844b34dd014 100644 |
681 |
--- a/sci-chemistry/gromacs/metadata.xml |
682 |
+++ b/sci-chemistry/gromacs/metadata.xml |
683 |
@@ -15,6 +15,7 @@ |
684 |
</maintainer> |
685 |
<use> |
686 |
<flag name="cuda">Enable cuda non-bonded kernels</flag> |
687 |
+ <flag name="opencl">Enable opencl non-bonded kernels</flag> |
688 |
<flag name="double-precision">More precise calculations at the expense of speed</flag> |
689 |
<flag name="single-precision">Single precision version of gromacs (default)</flag> |
690 |
<flag name="boost">Enable external boost library</flag> |