1 |
commit: 09caee99e72a59b302d2636dab5553b6fc394b7d |
2 |
Author: Christoph Junghans <ottxor <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Jul 13 16:57:14 2016 +0000 |
4 |
Commit: Christoph Junghans <ottxor <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jul 13 16:57:57 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09caee99 |
7 |
|
8 |
sci-chemistry/gromacs: import live builds from sci overlay |
9 |
|
10 |
Package-Manager: portage-2.2.28 |
11 |
|
12 |
sci-chemistry/gromacs/Manifest | 2 + |
13 |
sci-chemistry/gromacs/gromacs-2016.9999.ebuild | 266 +++++++++++++++++++++++ |
14 |
sci-chemistry/gromacs/gromacs-2016_rc1.ebuild | 266 +++++++++++++++++++++++ |
15 |
sci-chemistry/gromacs/gromacs-4.6.9999.ebuild | 263 +++++++++++++++++++++++ |
16 |
sci-chemistry/gromacs/gromacs-5.0.9999.ebuild | 284 +++++++++++++++++++++++++ |
17 |
sci-chemistry/gromacs/gromacs-5.1.9999.ebuild | 269 +++++++++++++++++++++++ |
18 |
sci-chemistry/gromacs/gromacs-9999.ebuild | 266 +++++++++++++++++++++++ |
19 |
sci-chemistry/gromacs/metadata.xml | 3 +- |
20 |
8 files changed, 1618 insertions(+), 1 deletion(-) |
21 |
|
22 |
diff --git a/sci-chemistry/gromacs/Manifest b/sci-chemistry/gromacs/Manifest |
23 |
index ae53fba..c0c3d23 100644 |
24 |
--- a/sci-chemistry/gromacs/Manifest |
25 |
+++ b/sci-chemistry/gromacs/Manifest |
26 |
@@ -1,6 +1,8 @@ |
27 |
+DIST gromacs-2016-rc1.tar.gz 27322876 SHA256 69a307009cd9015b09af3c39ed4b193e71c59deccc3b34e758b3b9b5a34f7a47 SHA512 9c74ab718c9c894525524c0612aac93246be8aff86491f4b4854783d5e112c346b8c6bd185ec951a76aa398fdb2132abf42bb27b644440ceb6f6baeeede9c3a0 WHIRLPOOL cdb4d417770720069c6e1de2930d36f3a952ce9b2d111d1dd9a2f3b87d28cc199a17745db2c580da6606eb9dd59dfd9c4ddb5297de08202067dee0160a3a985e |
28 |
DIST gromacs-5.0.4.tar.gz 26342095 SHA256 78068eeccc0b950018ddb45c41280e53c8bedae4639dca48e17c940f8896b23b SHA512 bc62b623bf71dcaa948aaf7563a3d3afa973da0702062848a20323db202e862dcee413197dacd1472866ccb40fce7709e283177b1c6c49514064f23e6c46b5ee WHIRLPOOL d8458d3d563e015e830622ae0c924e896765a6329ffe4cb1a31c7aef3c804f392d29e3f1db5617051e85058403422f7d69a160a6c7cc810564696d88f9d50bd4 |
29 |
DIST gromacs-5.0.7.tar.gz 26358119 SHA256 23bc5ae28e0e274965966f0a00e44ec6ffbc28c5cd2d6b64a0aa0a2bc59472ec SHA512 612dba608fe6fd3a6fd69d1edeb97ec2975361ab44ea5219990901cecafbbe542a2c8bc6acc3f89b7fdcda77ab1b0762977ddc48cc1523155f7033e4e000660f WHIRLPOOL 26292f8751c2238f4fd9a63cb64888c2d236237dc140f08b45997b87b917b096d3d7c8451e5e0633e71cd770d7e7336dbbd3056777e290d0232a902ee4018e4b |
30 |
DIST gromacs-5.1.2.tar.gz 26562718 SHA256 39d6f1d7ae8ba38cea6089da40676bfa4049a49903d21551abc030992a58f304 SHA512 ddd29bba97eaf8c32f7f5daa441c1aac85222881a9cf7757f55ef7f1a15f8f45cdc600eb90059053205d71652281c85601e107ff5928425afdb0c13e8ef1de69 WHIRLPOOL 12f217e480bd04cd0cfb68c22345cfe2cd77f9417f0f873ff61aeea734aa33d61810db4e1539cd265f1ffcf2df123353592c6176aa8dce236b64de74a97a76e0 |
31 |
+DIST regressiontests-2016-rc1.tar.gz 66629314 SHA256 63fcf8fcb1371478b705dd8f44f2c284ac8c6f3e7eb8146f751f6e0e0f2db415 SHA512 8900efb605d69aa723bab398556a9b0d94da2b25d55948a3903f2d5a47c0f89306fffe3b0c7e780508b301463243bc73191a9dee6494ab288ca89831e71f741a WHIRLPOOL a205113884c65de4e9a75f0af59a1be910cf82a7fca8ba561c13815793f98ee0af342a0318044c49c757c8b25cfebb8b42299e885345e7f1af695f2e2b591297 |
32 |
DIST regressiontests-5.0.4.tar.gz 65193251 SHA256 89ad9bc067035ac8f340319b538c446983d937b910067e871911d7afe2ecb3f0 SHA512 747725fa28c1c9525596bdeeb8809e45268e19036c11dac67d043aa1c51748688ca37eb6014eb7e819eb927a8b9ca2631d0ace4cdff8ed491b08c316c530ab65 WHIRLPOOL e15ccab0a0beefac41aeff11e2e596e971167f1590eed159ff82c4a8e3aec1d234287be597026951904ecfe6099f30ef3bcd48f2098b9f5201bde62e15fbc4f9 |
33 |
DIST regressiontests-5.0.7.tar.gz 65204051 SHA256 831c5f52b941826842a5312e3c6cd74a6410938bc5876d3f32d53215d64fb084 SHA512 2e93c84f62772eaf6facd45db67f51f751b4fa80923c71bc4fb293b33361b1314d714020bd8d50a1d0859aeedd67ce76f593e82ef31372128cbb8555eb6446b1 WHIRLPOOL b050f80946a76e752d53ccadd378ec0869f3221706a29f87d262a46fb11941b600d27b5388a5311a4fde53d60560f907150f884212e2d49a3df4b2519d1ceb3e |
34 |
DIST regressiontests-5.1.2.tar.gz 66704132 SHA256 3e4704308da282e2e8e2550f6acae029353bf42ede4b1eccb20b157e399f3cf7 SHA512 b53fb36d5ce00361998ca9eb2121efc0d616e628ad81bf08c7fdc2cc43929cbc2e528cdd8260036235960ad96363b496aadd345d55fc100cdf02d680b2cca996 WHIRLPOOL 0859db2e0e51d56752f17d6021c2e5f6a6b820236aff731dd18335b3bde94899985c96bbe98f62c9144d8ff88fcc7e6f3091cf78618d7734345cfe71f0f6a026 |
35 |
|
36 |
diff --git a/sci-chemistry/gromacs/gromacs-2016.9999.ebuild b/sci-chemistry/gromacs/gromacs-2016.9999.ebuild |
37 |
new file mode 100644 |
38 |
index 0000000..1ca0343 |
39 |
--- /dev/null |
40 |
+++ b/sci-chemistry/gromacs/gromacs-2016.9999.ebuild |
41 |
@@ -0,0 +1,266 @@ |
42 |
+# Copyright 1999-2016 Gentoo Foundation |
43 |
+# Distributed under the terms of the GNU General Public License v2 |
44 |
+# $Id$ |
45 |
+ |
46 |
+EAPI=6 |
47 |
+ |
48 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
49 |
+ |
50 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs |
51 |
+ |
52 |
+if [[ $PV = *9999* ]]; then |
53 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
54 |
+ https://gerrit.gromacs.org/gromacs.git |
55 |
+ git://github.com/gromacs/gromacs.git |
56 |
+ http://repo.or.cz/r/gromacs.git" |
57 |
+ [[ $PV = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:1}-${PV:2:1}" |
58 |
+ inherit git-r3 |
59 |
+ KEYWORDS="" |
60 |
+else |
61 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz |
62 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${PV/_/-}.tar.gz )" |
63 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" |
64 |
+fi |
65 |
+ |
66 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" |
67 |
+ |
68 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
69 |
+HOMEPAGE="http://www.gromacs.org/" |
70 |
+ |
71 |
+# see COPYING for details |
72 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
73 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
74 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
75 |
+SLOT="0/${PV}" |
76 |
+IUSE="X blas cuda +doc -double-precision +fftw +hwloc lapack mkl mpi +offensive openmp +single-precision test +threads +tng ${ACCE_IUSE}" |
77 |
+ |
78 |
+CDEPEND=" |
79 |
+ X? ( |
80 |
+ x11-libs/libX11 |
81 |
+ x11-libs/libSM |
82 |
+ x11-libs/libICE |
83 |
+ ) |
84 |
+ blas? ( virtual/blas ) |
85 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
86 |
+ fftw? ( sci-libs/fftw:3.0 ) |
87 |
+ hwloc? ( sys-apps/hwloc ) |
88 |
+ lapack? ( virtual/lapack ) |
89 |
+ mkl? ( sci-libs/mkl ) |
90 |
+ mpi? ( virtual/mpi ) |
91 |
+ " |
92 |
+DEPEND="${CDEPEND} |
93 |
+ virtual/pkgconfig |
94 |
+ doc? ( |
95 |
+ app-doc/doxygen |
96 |
+ dev-texlive/texlive-latex |
97 |
+ dev-texlive/texlive-latexextra |
98 |
+ media-gfx/imagemagick |
99 |
+ )" |
100 |
+RDEPEND="${CDEPEND}" |
101 |
+ |
102 |
+REQUIRED_USE=" |
103 |
+ || ( single-precision double-precision ) |
104 |
+ cuda? ( single-precision ) |
105 |
+ mkl? ( !blas !fftw !lapack )" |
106 |
+ |
107 |
+DOCS=( AUTHORS README ) |
108 |
+ |
109 |
+if [[ ${PV} != *9999 ]]; then |
110 |
+ S="${WORKDIR}/${PN}-${PV/_/-}" |
111 |
+fi |
112 |
+ |
113 |
+pkg_pretend() { |
114 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
115 |
+ use openmp && ! tc-has-openmp && \ |
116 |
+ die "Please switch to an openmp compatible compiler" |
117 |
+} |
118 |
+ |
119 |
+src_unpack() { |
120 |
+ if [[ ${PV} != *9999 ]]; then |
121 |
+ default |
122 |
+ else |
123 |
+ git-r3_src_unpack |
124 |
+ if use test; then |
125 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
126 |
+ EGIT_BRANCH="${EGIT_BRANCH}" \ |
127 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
128 |
+ git-r3_src_unpack |
129 |
+ fi |
130 |
+ fi |
131 |
+} |
132 |
+ |
133 |
+src_prepare() { |
134 |
+ #notes/todos |
135 |
+ # -on apple: there is framework support |
136 |
+ |
137 |
+ cmake-utils_src_prepare |
138 |
+ |
139 |
+ use cuda && cuda_src_prepare |
140 |
+ |
141 |
+ GMX_DIRS="" |
142 |
+ use single-precision && GMX_DIRS+=" float" |
143 |
+ use double-precision && GMX_DIRS+=" double" |
144 |
+ |
145 |
+ if use test; then |
146 |
+ for x in ${GMX_DIRS}; do |
147 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
148 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
149 |
+ done |
150 |
+ fi |
151 |
+ |
152 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
153 |
+} |
154 |
+ |
155 |
+src_configure() { |
156 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
157 |
+ |
158 |
+ #go from slowest to fastest acceleration |
159 |
+ local acce="None" |
160 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
161 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
162 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
163 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
164 |
+ use cpu_flags_x86_avx2 && acce="AVX2_256" |
165 |
+ |
166 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
167 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
168 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
169 |
+ |
170 |
+ if use fftw; then |
171 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
172 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
173 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
174 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
175 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
176 |
+ ) |
177 |
+ elif use mkl; then |
178 |
+ local bits=$(get_libdir) |
179 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
180 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
181 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
182 |
+ ) |
183 |
+ else |
184 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
185 |
+ fi |
186 |
+ |
187 |
+ mycmakeargs_pre+=( |
188 |
+ "${fft_opts[@]}" |
189 |
+ -DGMX_X11=$(usex X) |
190 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
191 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
192 |
+ -DGMX_OPENMP=$(usex openmp) |
193 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
194 |
+ -DGMX_USE_TNG=$(usex tng) |
195 |
+ -DGMX_BUILD_MANUAL=$(usex doc) |
196 |
+ -DGMX_HWLOC=$(usex hwloc) |
197 |
+ -DGMX_DEFAULT_SUFFIX=off |
198 |
+ -DGMX_SIMD="$acce" |
199 |
+ -DGMX_LIB_INSTALL_DIR="$(get_libdir)" |
200 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
201 |
+ -DBUILD_TESTING=OFF |
202 |
+ -DGMX_BUILD_UNITTESTS=OFF |
203 |
+ ${extra} |
204 |
+ ) |
205 |
+ |
206 |
+ for x in ${GMX_DIRS}; do |
207 |
+ einfo "Configuring for ${x} precision" |
208 |
+ local suffix="" |
209 |
+ #if we build single and double - double is suffixed |
210 |
+ use double-precision && use single-precision && \ |
211 |
+ [[ ${x} = "double" ]] && suffix="_d" |
212 |
+ local p |
213 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
214 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
215 |
+ [[ ${x} = "float" ]] && use cuda && \ |
216 |
+ cuda=( -DGMX_GPU=ON ) |
217 |
+ mycmakeargs=( |
218 |
+ ${mycmakeargs_pre[@]} ${p} |
219 |
+ -DGMX_MPI=OFF |
220 |
+ -DGMX_THREAD_MPI=$(usex threads) |
221 |
+ "${cuda[@]}" |
222 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
223 |
+ -DGMX_BINARY_SUFFIX="${suffix}" |
224 |
+ -DGMX_LIBS_SUFFIX="${suffix}" |
225 |
+ ) |
226 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
227 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
228 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die |
229 |
+ use mpi || continue |
230 |
+ einfo "Configuring for ${x} precision with mpi" |
231 |
+ mycmakeargs=( |
232 |
+ ${mycmakeargs_pre[@]} ${p} |
233 |
+ -DGMX_THREAD_MPI=OFF |
234 |
+ -DGMX_MPI=ON ${cuda} |
235 |
+ -DGMX_OPENMM=OFF |
236 |
+ -DGMX_BUILD_MDRUN_ONLY=ON |
237 |
+ -DBUILD_SHARED_LIBS=OFF |
238 |
+ -DGMX_BUILD_MANUAL=OFF |
239 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" |
240 |
+ -DGMX_LIBS_SUFFIX="_mpi${suffix}" |
241 |
+ ) |
242 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
243 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
244 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die |
245 |
+ done |
246 |
+} |
247 |
+ |
248 |
+src_compile() { |
249 |
+ for x in ${GMX_DIRS}; do |
250 |
+ einfo "Compiling for ${x} precision" |
251 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
252 |
+ cmake-utils_src_compile |
253 |
+ # not 100% necessary for rel ebuilds as available from website |
254 |
+ if use doc; then |
255 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
256 |
+ cmake-utils_src_compile manual |
257 |
+ fi |
258 |
+ use mpi || continue |
259 |
+ einfo "Compiling for ${x} precision with mpi" |
260 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
261 |
+ cmake-utils_src_compile |
262 |
+ done |
263 |
+} |
264 |
+ |
265 |
+src_test() { |
266 |
+ for x in ${GMX_DIRS}; do |
267 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
268 |
+ cmake-utils_src_make check |
269 |
+ done |
270 |
+} |
271 |
+ |
272 |
+src_install() { |
273 |
+ for x in ${GMX_DIRS}; do |
274 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
275 |
+ cmake-utils_src_install |
276 |
+ if use doc; then |
277 |
+ newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" |
278 |
+ fi |
279 |
+ use mpi || continue |
280 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
281 |
+ cmake-utils_src_install |
282 |
+ done |
283 |
+ |
284 |
+ if use tng; then |
285 |
+ insinto /usr/include/tng |
286 |
+ doins src/external/tng_io/include/tng/*h |
287 |
+ fi |
288 |
+ # drop unneeded stuff |
289 |
+ rm "${ED}"usr/bin/GMXRC* || die |
290 |
+ for x in "${ED}"usr/bin/gmx-completion-*.bash ; do |
291 |
+ local n=${x##*/gmx-completion-} |
292 |
+ n="${n%.bash}" |
293 |
+ cat "${ED}"usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die |
294 |
+ newbashcomp "${T}"/"${n}" "${n}" |
295 |
+ done |
296 |
+ rm "${ED}"usr/bin/gmx-completion*.bash || die |
297 |
+ readme.gentoo_create_doc |
298 |
+} |
299 |
+ |
300 |
+pkg_postinst() { |
301 |
+ einfo |
302 |
+ einfo "Please read and cite:" |
303 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
304 |
+ einfo "http://dx.doi.org/10.1021/ct700301q" |
305 |
+ einfo |
306 |
+ readme.gentoo_print_elog |
307 |
+} |
308 |
|
309 |
diff --git a/sci-chemistry/gromacs/gromacs-2016_rc1.ebuild b/sci-chemistry/gromacs/gromacs-2016_rc1.ebuild |
310 |
new file mode 100644 |
311 |
index 0000000..1ca0343 |
312 |
--- /dev/null |
313 |
+++ b/sci-chemistry/gromacs/gromacs-2016_rc1.ebuild |
314 |
@@ -0,0 +1,266 @@ |
315 |
+# Copyright 1999-2016 Gentoo Foundation |
316 |
+# Distributed under the terms of the GNU General Public License v2 |
317 |
+# $Id$ |
318 |
+ |
319 |
+EAPI=6 |
320 |
+ |
321 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
322 |
+ |
323 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs |
324 |
+ |
325 |
+if [[ $PV = *9999* ]]; then |
326 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
327 |
+ https://gerrit.gromacs.org/gromacs.git |
328 |
+ git://github.com/gromacs/gromacs.git |
329 |
+ http://repo.or.cz/r/gromacs.git" |
330 |
+ [[ $PV = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:1}-${PV:2:1}" |
331 |
+ inherit git-r3 |
332 |
+ KEYWORDS="" |
333 |
+else |
334 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz |
335 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${PV/_/-}.tar.gz )" |
336 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" |
337 |
+fi |
338 |
+ |
339 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" |
340 |
+ |
341 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
342 |
+HOMEPAGE="http://www.gromacs.org/" |
343 |
+ |
344 |
+# see COPYING for details |
345 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
346 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
347 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
348 |
+SLOT="0/${PV}" |
349 |
+IUSE="X blas cuda +doc -double-precision +fftw +hwloc lapack mkl mpi +offensive openmp +single-precision test +threads +tng ${ACCE_IUSE}" |
350 |
+ |
351 |
+CDEPEND=" |
352 |
+ X? ( |
353 |
+ x11-libs/libX11 |
354 |
+ x11-libs/libSM |
355 |
+ x11-libs/libICE |
356 |
+ ) |
357 |
+ blas? ( virtual/blas ) |
358 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
359 |
+ fftw? ( sci-libs/fftw:3.0 ) |
360 |
+ hwloc? ( sys-apps/hwloc ) |
361 |
+ lapack? ( virtual/lapack ) |
362 |
+ mkl? ( sci-libs/mkl ) |
363 |
+ mpi? ( virtual/mpi ) |
364 |
+ " |
365 |
+DEPEND="${CDEPEND} |
366 |
+ virtual/pkgconfig |
367 |
+ doc? ( |
368 |
+ app-doc/doxygen |
369 |
+ dev-texlive/texlive-latex |
370 |
+ dev-texlive/texlive-latexextra |
371 |
+ media-gfx/imagemagick |
372 |
+ )" |
373 |
+RDEPEND="${CDEPEND}" |
374 |
+ |
375 |
+REQUIRED_USE=" |
376 |
+ || ( single-precision double-precision ) |
377 |
+ cuda? ( single-precision ) |
378 |
+ mkl? ( !blas !fftw !lapack )" |
379 |
+ |
380 |
+DOCS=( AUTHORS README ) |
381 |
+ |
382 |
+if [[ ${PV} != *9999 ]]; then |
383 |
+ S="${WORKDIR}/${PN}-${PV/_/-}" |
384 |
+fi |
385 |
+ |
386 |
+pkg_pretend() { |
387 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
388 |
+ use openmp && ! tc-has-openmp && \ |
389 |
+ die "Please switch to an openmp compatible compiler" |
390 |
+} |
391 |
+ |
392 |
+src_unpack() { |
393 |
+ if [[ ${PV} != *9999 ]]; then |
394 |
+ default |
395 |
+ else |
396 |
+ git-r3_src_unpack |
397 |
+ if use test; then |
398 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
399 |
+ EGIT_BRANCH="${EGIT_BRANCH}" \ |
400 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
401 |
+ git-r3_src_unpack |
402 |
+ fi |
403 |
+ fi |
404 |
+} |
405 |
+ |
406 |
+src_prepare() { |
407 |
+ #notes/todos |
408 |
+ # -on apple: there is framework support |
409 |
+ |
410 |
+ cmake-utils_src_prepare |
411 |
+ |
412 |
+ use cuda && cuda_src_prepare |
413 |
+ |
414 |
+ GMX_DIRS="" |
415 |
+ use single-precision && GMX_DIRS+=" float" |
416 |
+ use double-precision && GMX_DIRS+=" double" |
417 |
+ |
418 |
+ if use test; then |
419 |
+ for x in ${GMX_DIRS}; do |
420 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
421 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
422 |
+ done |
423 |
+ fi |
424 |
+ |
425 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
426 |
+} |
427 |
+ |
428 |
+src_configure() { |
429 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
430 |
+ |
431 |
+ #go from slowest to fastest acceleration |
432 |
+ local acce="None" |
433 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
434 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
435 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
436 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
437 |
+ use cpu_flags_x86_avx2 && acce="AVX2_256" |
438 |
+ |
439 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
440 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
441 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
442 |
+ |
443 |
+ if use fftw; then |
444 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
445 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
446 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
447 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
448 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
449 |
+ ) |
450 |
+ elif use mkl; then |
451 |
+ local bits=$(get_libdir) |
452 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
453 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
454 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
455 |
+ ) |
456 |
+ else |
457 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
458 |
+ fi |
459 |
+ |
460 |
+ mycmakeargs_pre+=( |
461 |
+ "${fft_opts[@]}" |
462 |
+ -DGMX_X11=$(usex X) |
463 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
464 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
465 |
+ -DGMX_OPENMP=$(usex openmp) |
466 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
467 |
+ -DGMX_USE_TNG=$(usex tng) |
468 |
+ -DGMX_BUILD_MANUAL=$(usex doc) |
469 |
+ -DGMX_HWLOC=$(usex hwloc) |
470 |
+ -DGMX_DEFAULT_SUFFIX=off |
471 |
+ -DGMX_SIMD="$acce" |
472 |
+ -DGMX_LIB_INSTALL_DIR="$(get_libdir)" |
473 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
474 |
+ -DBUILD_TESTING=OFF |
475 |
+ -DGMX_BUILD_UNITTESTS=OFF |
476 |
+ ${extra} |
477 |
+ ) |
478 |
+ |
479 |
+ for x in ${GMX_DIRS}; do |
480 |
+ einfo "Configuring for ${x} precision" |
481 |
+ local suffix="" |
482 |
+ #if we build single and double - double is suffixed |
483 |
+ use double-precision && use single-precision && \ |
484 |
+ [[ ${x} = "double" ]] && suffix="_d" |
485 |
+ local p |
486 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
487 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
488 |
+ [[ ${x} = "float" ]] && use cuda && \ |
489 |
+ cuda=( -DGMX_GPU=ON ) |
490 |
+ mycmakeargs=( |
491 |
+ ${mycmakeargs_pre[@]} ${p} |
492 |
+ -DGMX_MPI=OFF |
493 |
+ -DGMX_THREAD_MPI=$(usex threads) |
494 |
+ "${cuda[@]}" |
495 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
496 |
+ -DGMX_BINARY_SUFFIX="${suffix}" |
497 |
+ -DGMX_LIBS_SUFFIX="${suffix}" |
498 |
+ ) |
499 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
500 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
501 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die |
502 |
+ use mpi || continue |
503 |
+ einfo "Configuring for ${x} precision with mpi" |
504 |
+ mycmakeargs=( |
505 |
+ ${mycmakeargs_pre[@]} ${p} |
506 |
+ -DGMX_THREAD_MPI=OFF |
507 |
+ -DGMX_MPI=ON ${cuda} |
508 |
+ -DGMX_OPENMM=OFF |
509 |
+ -DGMX_BUILD_MDRUN_ONLY=ON |
510 |
+ -DBUILD_SHARED_LIBS=OFF |
511 |
+ -DGMX_BUILD_MANUAL=OFF |
512 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" |
513 |
+ -DGMX_LIBS_SUFFIX="_mpi${suffix}" |
514 |
+ ) |
515 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
516 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
517 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die |
518 |
+ done |
519 |
+} |
520 |
+ |
521 |
+src_compile() { |
522 |
+ for x in ${GMX_DIRS}; do |
523 |
+ einfo "Compiling for ${x} precision" |
524 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
525 |
+ cmake-utils_src_compile |
526 |
+ # not 100% necessary for rel ebuilds as available from website |
527 |
+ if use doc; then |
528 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
529 |
+ cmake-utils_src_compile manual |
530 |
+ fi |
531 |
+ use mpi || continue |
532 |
+ einfo "Compiling for ${x} precision with mpi" |
533 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
534 |
+ cmake-utils_src_compile |
535 |
+ done |
536 |
+} |
537 |
+ |
538 |
+src_test() { |
539 |
+ for x in ${GMX_DIRS}; do |
540 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
541 |
+ cmake-utils_src_make check |
542 |
+ done |
543 |
+} |
544 |
+ |
545 |
+src_install() { |
546 |
+ for x in ${GMX_DIRS}; do |
547 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
548 |
+ cmake-utils_src_install |
549 |
+ if use doc; then |
550 |
+ newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" |
551 |
+ fi |
552 |
+ use mpi || continue |
553 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
554 |
+ cmake-utils_src_install |
555 |
+ done |
556 |
+ |
557 |
+ if use tng; then |
558 |
+ insinto /usr/include/tng |
559 |
+ doins src/external/tng_io/include/tng/*h |
560 |
+ fi |
561 |
+ # drop unneeded stuff |
562 |
+ rm "${ED}"usr/bin/GMXRC* || die |
563 |
+ for x in "${ED}"usr/bin/gmx-completion-*.bash ; do |
564 |
+ local n=${x##*/gmx-completion-} |
565 |
+ n="${n%.bash}" |
566 |
+ cat "${ED}"usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die |
567 |
+ newbashcomp "${T}"/"${n}" "${n}" |
568 |
+ done |
569 |
+ rm "${ED}"usr/bin/gmx-completion*.bash || die |
570 |
+ readme.gentoo_create_doc |
571 |
+} |
572 |
+ |
573 |
+pkg_postinst() { |
574 |
+ einfo |
575 |
+ einfo "Please read and cite:" |
576 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
577 |
+ einfo "http://dx.doi.org/10.1021/ct700301q" |
578 |
+ einfo |
579 |
+ readme.gentoo_print_elog |
580 |
+} |
581 |
|
582 |
diff --git a/sci-chemistry/gromacs/gromacs-4.6.9999.ebuild b/sci-chemistry/gromacs/gromacs-4.6.9999.ebuild |
583 |
new file mode 100644 |
584 |
index 0000000..e00c4f9 |
585 |
--- /dev/null |
586 |
+++ b/sci-chemistry/gromacs/gromacs-4.6.9999.ebuild |
587 |
@@ -0,0 +1,263 @@ |
588 |
+# Copyright 1999-2016 Gentoo Foundation |
589 |
+# Distributed under the terms of the GNU General Public License v2 |
590 |
+# $Id$ |
591 |
+ |
592 |
+EAPI=6 |
593 |
+ |
594 |
+TEST_PV="4.6.6" |
595 |
+MANUAL_PV="4.6.6" |
596 |
+ |
597 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
598 |
+ |
599 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs |
600 |
+ |
601 |
+if [[ $PV = *9999* ]]; then |
602 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
603 |
+ https://gerrit.gromacs.org/gromacs.git |
604 |
+ git://github.com/gromacs/gromacs.git |
605 |
+ http://repo.or.cz/r/gromacs.git" |
606 |
+ EGIT_BRANCH="release-4-6" |
607 |
+ inherit git-r3 |
608 |
+ LIVE_DEPEND="doc? ( |
609 |
+ app-doc/doxygen |
610 |
+ dev-texlive/texlive-latex |
611 |
+ dev-texlive/texlive-latexextra |
612 |
+ media-gfx/imagemagick |
613 |
+ sys-apps/coreutils |
614 |
+ )" |
615 |
+ KEYWORDS="" |
616 |
+else |
617 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz |
618 |
+ doc? ( ftp://ftp.gromacs.org/pub/manual/manual-${MANUAL_PV}.pdf -> ${PN}-manual-${MANUAL_PV}.pdf ) |
619 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${TEST_PV}.tar.gz )" |
620 |
+ LIVE_DEPEND="" |
621 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" |
622 |
+fi |
623 |
+ |
624 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx" |
625 |
+ |
626 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
627 |
+HOMEPAGE="http://www.gromacs.org/" |
628 |
+ |
629 |
+# see COPYING for details |
630 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
631 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
632 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
633 |
+SLOT="0/${PV}" |
634 |
+IUSE="X blas cuda doc -double-precision +fftw gsl lapack mkl mpi +offensive openmp +single-precision test +threads zsh-completion ${ACCE_IUSE}" |
635 |
+ |
636 |
+CDEPEND=" |
637 |
+ X? ( |
638 |
+ x11-libs/libX11 |
639 |
+ x11-libs/libSM |
640 |
+ x11-libs/libICE |
641 |
+ ) |
642 |
+ blas? ( virtual/blas ) |
643 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
644 |
+ fftw? ( sci-libs/fftw:3.0 ) |
645 |
+ gsl? ( sci-libs/gsl ) |
646 |
+ lapack? ( virtual/lapack ) |
647 |
+ mkl? ( sci-libs/mkl ) |
648 |
+ mpi? ( virtual/mpi )" |
649 |
+DEPEND="${CDEPEND} |
650 |
+ virtual/pkgconfig |
651 |
+ ${LIVE_DEPEND} |
652 |
+ doc? ( app-doc/doxygen )" |
653 |
+RDEPEND="${CDEPEND}" |
654 |
+ |
655 |
+REQUIRED_USE=" |
656 |
+ || ( single-precision double-precision ) |
657 |
+ cuda? ( single-precision ) |
658 |
+ mkl? ( !blas !fftw !lapack )" |
659 |
+ |
660 |
+DOCS=( AUTHORS README ) |
661 |
+HTML_DOCS=( "${ED}"/usr/share/gromacs/html/ ) |
662 |
+ |
663 |
+pkg_pretend() { |
664 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
665 |
+ use openmp && ! tc-has-openmp && \ |
666 |
+ die "Please switch to an openmp compatible compiler" |
667 |
+} |
668 |
+ |
669 |
+src_unpack() { |
670 |
+ if [[ ${PV} != *9999 ]]; then |
671 |
+ default |
672 |
+ else |
673 |
+ git-r3_src_unpack |
674 |
+ if use doc; then |
675 |
+ EGIT_REPO_URI="git://git.gromacs.org/manual.git" \ |
676 |
+ EGIT_BRANCH="release-4-6" EGIT_COMMIT="release-4-6" \ |
677 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/manual"\ |
678 |
+ git-r3_src_unpack |
679 |
+ fi |
680 |
+ if use test; then |
681 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
682 |
+ EGIT_BRANCH="release-4-6" EGIT_COMMIT="release-4-6" \ |
683 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
684 |
+ git-r3_src_unpack |
685 |
+ fi |
686 |
+ fi |
687 |
+} |
688 |
+ |
689 |
+src_prepare() { |
690 |
+ #notes/todos |
691 |
+ # -on apple: there is framework support |
692 |
+ |
693 |
+ cmake-utils_src_prepare |
694 |
+ |
695 |
+ use cuda && cuda_src_prepare |
696 |
+ |
697 |
+ GMX_DIRS="" |
698 |
+ use single-precision && GMX_DIRS+=" float" |
699 |
+ use double-precision && GMX_DIRS+=" double" |
700 |
+ |
701 |
+ if use test; then |
702 |
+ for x in ${GMX_DIRS}; do |
703 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
704 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
705 |
+ done |
706 |
+ fi |
707 |
+ |
708 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
709 |
+} |
710 |
+ |
711 |
+src_configure() { |
712 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
713 |
+ |
714 |
+ #go from slowest to fastest acceleration |
715 |
+ local acce="None" |
716 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
717 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
718 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
719 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
720 |
+ |
721 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
722 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
723 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
724 |
+ |
725 |
+ if use fftw; then |
726 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
727 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
728 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
729 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
730 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
731 |
+ ) |
732 |
+ elif use mkl; then |
733 |
+ local bits=$(get_libdir) |
734 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
735 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
736 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
737 |
+ ) |
738 |
+ else |
739 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
740 |
+ fi |
741 |
+ |
742 |
+ mycmakeargs_pre+=( |
743 |
+ "${fft_opts[@]}" |
744 |
+ -DGMX_X11=$(usex X) |
745 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
746 |
+ -DGMX_GSL=$(usex gsl) |
747 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
748 |
+ -DGMX_OPENMP=$(usex openmp) |
749 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
750 |
+ -DGMX_DEFAULT_SUFFIX=off |
751 |
+ -DGMX_ACCELERATION="$acce" |
752 |
+ -DGMXLIB="$(get_libdir)" |
753 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
754 |
+ -DGMX_PREFIX_LIBMD=ON |
755 |
+ -DGMX_X86_AVX_GCC_MASKLOAD_BUG=OFF |
756 |
+ -DGMX_USE_GCC44_BUG_WORKAROUND=OFF |
757 |
+ ${extra} |
758 |
+ ) |
759 |
+ |
760 |
+ for x in ${GMX_DIRS}; do |
761 |
+ einfo "Configuring for ${x} precision" |
762 |
+ local suffix="" |
763 |
+ #if we build single and double - double is suffixed |
764 |
+ use double-precision && use single-precision && \ |
765 |
+ [[ ${x} = "double" ]] && suffix="_d" |
766 |
+ local p |
767 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
768 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
769 |
+ [[ ${x} = "float" ]] && use cuda && \ |
770 |
+ cuda=( -DGMX_GPU=ON ) |
771 |
+ mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_MPI=OFF |
772 |
+ -DGMX_THREAD_MPI=$(usex threads) "${cuda[@]}" -DGMX_OPENMM=OFF |
773 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
774 |
+ -DGMX_BINARY_SUFFIX="${suffix}" -DGMX_LIBS_SUFFIX="${suffix}" ) |
775 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
776 |
+ use mpi || continue |
777 |
+ einfo "Configuring for ${x} precision with mpi" |
778 |
+ mycmakeargs=( ${mycmakeargs_pre[@]} ${p} -DGMX_THREAD_MPI=OFF |
779 |
+ -DGMX_MPI=ON ${cuda} -DGMX_OPENMM=OFF |
780 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" -DGMX_LIBS_SUFFIX="_mpi${suffix}" ) |
781 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
782 |
+ done |
783 |
+} |
784 |
+ |
785 |
+src_compile() { |
786 |
+ for x in ${GMX_DIRS}; do |
787 |
+ einfo "Compiling for ${x} precision" |
788 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
789 |
+ cmake-utils_src_compile |
790 |
+ use mpi || continue |
791 |
+ einfo "Compiling for ${x} precision with mpi" |
792 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
793 |
+ cmake-utils_src_compile mdrun |
794 |
+ done |
795 |
+} |
796 |
+ |
797 |
+src_test() { |
798 |
+ for x in ${GMX_DIRS}; do |
799 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
800 |
+ cmake-utils_src_make check |
801 |
+ done |
802 |
+} |
803 |
+ |
804 |
+src_install() { |
805 |
+ for x in ${GMX_DIRS}; do |
806 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
807 |
+ cmake-utils_src_install |
808 |
+ #manual can only be build after gromacs was installed once in image |
809 |
+ if use doc && [[ $PV = *9999* && ! -d ${WORKDIR}/manual_build ]]; then |
810 |
+ mycmakeargs=( -DGMXBIN="${ED}"/usr/bin -DGMXSRC="${WORKDIR}/${P}" ) |
811 |
+ BUILD_DIR="${WORKDIR}"/manual_build \ |
812 |
+ CMAKE_USE_DIR="${WORKDIR}/manual" cmake-utils_src_configure |
813 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
814 |
+ export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}${DYLD_LIBRARY_PATH:+:}${ED}/usr/$(get_libdir)" |
815 |
+ BUILD_DIR="${WORKDIR}"/manual_build cmake-utils_src_make |
816 |
+ [[ ${CHOST} = *-darwin* ]] && DYLD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" |
817 |
+ newdoc "${WORKDIR}"/manual_build/gromacs.pdf "${PN}-manual-${PV}.pdf" |
818 |
+ fi |
819 |
+ use mpi || continue |
820 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
821 |
+ DESTDIR="${D}" cmake-utils_src_make install-mdrun |
822 |
+ done |
823 |
+ |
824 |
+ use doc && [[ $PV != *9999* ]] && dodoc "${DISTDIR}/${PN}-manual-${MANUAL_PV}.pdf" |
825 |
+ newbashcomp "${ED}"/usr/bin/completion.bash ${PN} |
826 |
+ if use zsh-completion ; then |
827 |
+ insinto /usr/share/zsh/site-functions |
828 |
+ newins "${ED}"/usr/bin/completion.zsh _${PN} |
829 |
+ fi |
830 |
+ rm -f "${ED}"usr/bin/completion.* |
831 |
+ rm -rf "${ED}"usr/share/gromacs/html |
832 |
+ rm -f "${ED}"usr/bin/g_options* |
833 |
+ rm -f "${ED}"usr/bin/GMXRC* |
834 |
+ |
835 |
+ readme.gentoo_create_doc |
836 |
+} |
837 |
+ |
838 |
+pkg_postinst() { |
839 |
+ einfo |
840 |
+ einfo "Please read and cite:" |
841 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
842 |
+ einfo "http://dx.doi.org/10.1021/ct700301q" |
843 |
+ if use offensive; then |
844 |
+ einfo |
845 |
+ einfo $(g_luck) |
846 |
+ einfo "For more Gromacs cool quotes (gcq) add g_luck to your .bashrc" |
847 |
+ fi |
848 |
+ einfo |
849 |
+ readme.gentoo_print_elog |
850 |
+} |
851 |
|
852 |
diff --git a/sci-chemistry/gromacs/gromacs-5.0.9999.ebuild b/sci-chemistry/gromacs/gromacs-5.0.9999.ebuild |
853 |
new file mode 100644 |
854 |
index 0000000..5d1717e |
855 |
--- /dev/null |
856 |
+++ b/sci-chemistry/gromacs/gromacs-5.0.9999.ebuild |
857 |
@@ -0,0 +1,284 @@ |
858 |
+# Copyright 1999-2016 Gentoo Foundation |
859 |
+# Distributed under the terms of the GNU General Public License v2 |
860 |
+# $Id$ |
861 |
+ |
862 |
+EAPI=6 |
863 |
+ |
864 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
865 |
+ |
866 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs |
867 |
+ |
868 |
+if [[ $PV = *9999* ]]; then |
869 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
870 |
+ https://gerrit.gromacs.org/gromacs.git |
871 |
+ git://github.com/gromacs/gromacs.git |
872 |
+ http://repo.or.cz/r/gromacs.git" |
873 |
+ EGIT_BRANCH="release-5-0" |
874 |
+ inherit git-r3 |
875 |
+ KEYWORDS="" |
876 |
+else |
877 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz |
878 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${PV}.tar.gz )" |
879 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" |
880 |
+fi |
881 |
+ |
882 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" |
883 |
+ |
884 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
885 |
+HOMEPAGE="http://www.gromacs.org/" |
886 |
+ |
887 |
+# see COPYING for details |
888 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
889 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
890 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
891 |
+SLOT="0/${PV}" |
892 |
+IUSE="X blas boost cuda +doc -double-precision +fftw lapack +make-symlinks mkl mpi +offensive openmp +single-precision test +threads +tng ${ACCE_IUSE}" |
893 |
+ |
894 |
+CDEPEND=" |
895 |
+ X? ( |
896 |
+ x11-libs/libX11 |
897 |
+ x11-libs/libSM |
898 |
+ x11-libs/libICE |
899 |
+ ) |
900 |
+ blas? ( virtual/blas ) |
901 |
+ boost? ( >=dev-libs/boost-1.55 ) |
902 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
903 |
+ fftw? ( sci-libs/fftw:3.0 ) |
904 |
+ lapack? ( virtual/lapack ) |
905 |
+ mkl? ( sci-libs/mkl ) |
906 |
+ mpi? ( virtual/mpi ) |
907 |
+ " |
908 |
+DEPEND="${CDEPEND} |
909 |
+ virtual/pkgconfig |
910 |
+ doc? ( |
911 |
+ app-doc/doxygen |
912 |
+ dev-texlive/texlive-latex |
913 |
+ dev-texlive/texlive-latexextra |
914 |
+ media-gfx/imagemagick |
915 |
+ )" |
916 |
+RDEPEND="${CDEPEND}" |
917 |
+ |
918 |
+REQUIRED_USE=" |
919 |
+ || ( single-precision double-precision ) |
920 |
+ cuda? ( single-precision ) |
921 |
+ mkl? ( !blas !fftw !lapack )" |
922 |
+ |
923 |
+DOCS=( AUTHORS README ) |
924 |
+ |
925 |
+if [[ ${PV} != *9999 ]]; then |
926 |
+ S="${WORKDIR}/${PN}-${PV/_/-}" |
927 |
+fi |
928 |
+ |
929 |
+pkg_pretend() { |
930 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
931 |
+ use openmp && ! tc-has-openmp && \ |
932 |
+ die "Please switch to an openmp compatible compiler" |
933 |
+} |
934 |
+ |
935 |
+src_unpack() { |
936 |
+ if [[ ${PV} != *9999 ]]; then |
937 |
+ default |
938 |
+ else |
939 |
+ git-r3_src_unpack |
940 |
+ if use test; then |
941 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
942 |
+ EGIT_BRANCH="master" EGIT_COMMIT="master" \ |
943 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
944 |
+ git-r3_src_unpack |
945 |
+ fi |
946 |
+ fi |
947 |
+} |
948 |
+ |
949 |
+src_prepare() { |
950 |
+ #notes/todos |
951 |
+ # -on apple: there is framework support |
952 |
+ |
953 |
+ cmake-utils_src_prepare |
954 |
+ |
955 |
+ use cuda && cuda_src_prepare |
956 |
+ |
957 |
+ GMX_DIRS="" |
958 |
+ use single-precision && GMX_DIRS+=" float" |
959 |
+ use double-precision && GMX_DIRS+=" double" |
960 |
+ |
961 |
+ if use test; then |
962 |
+ for x in ${GMX_DIRS}; do |
963 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
964 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
965 |
+ done |
966 |
+ fi |
967 |
+ |
968 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
969 |
+} |
970 |
+ |
971 |
+src_configure() { |
972 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
973 |
+ |
974 |
+ #go from slowest to fastest acceleration |
975 |
+ local acce="None" |
976 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
977 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
978 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
979 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
980 |
+ use cpu_flags_x86_avx2 && acce="AVX2_256" |
981 |
+ |
982 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
983 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
984 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
985 |
+ |
986 |
+ if use fftw; then |
987 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
988 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
989 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
990 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
991 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
992 |
+ ) |
993 |
+ elif use mkl; then |
994 |
+ local bits=$(get_libdir) |
995 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
996 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
997 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
998 |
+ ) |
999 |
+ else |
1000 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
1001 |
+ fi |
1002 |
+ |
1003 |
+ mycmakeargs_pre+=( |
1004 |
+ "${fft_opts[@]}" |
1005 |
+ -DGMX_X11=$(usex X) |
1006 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
1007 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
1008 |
+ -DGMX_OPENMP=$(usex openmp) |
1009 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
1010 |
+ -DGMX_EXTERNAL_BOOST=$(usex boost) |
1011 |
+ -DGMX_USE_TNG=$(usex tng) |
1012 |
+ -DGMX_BUILD_MANUAL=$(usex doc) |
1013 |
+ -DGMX_SYMLINK_OLD_BINARY_NAMES=$(usex make-symlinks) |
1014 |
+ -DGMX_DEFAULT_SUFFIX=off |
1015 |
+ -DGMX_SIMD="$acce" |
1016 |
+ -DGMX_LIB_INSTALL_DIR="$(get_libdir)" |
1017 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
1018 |
+ -DGMX_X86_AVX_GCC_MASKLOAD_BUG=OFF |
1019 |
+ -DGMX_USE_GCC44_BUG_WORKAROUND=OFF |
1020 |
+ -DBUILD_TESTING=OFF |
1021 |
+ -DGMX_BUILD_UNITTESTS=OFF |
1022 |
+ ${extra} |
1023 |
+ ) |
1024 |
+ |
1025 |
+ for x in ${GMX_DIRS}; do |
1026 |
+ einfo "Configuring for ${x} precision" |
1027 |
+ local suffix="" |
1028 |
+ #if we build single and double - double is suffixed |
1029 |
+ use double-precision && use single-precision && \ |
1030 |
+ [[ ${x} = "double" ]] && suffix="_d" |
1031 |
+ local p |
1032 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
1033 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
1034 |
+ [[ ${x} = "float" ]] && use cuda && \ |
1035 |
+ cuda=( -DGMX_GPU=ON ) |
1036 |
+ mycmakeargs=( |
1037 |
+ ${mycmakeargs_pre[@]} ${p} |
1038 |
+ -DGMX_MPI=OFF |
1039 |
+ -DGMX_THREAD_MPI=$(usex threads) |
1040 |
+ "${cuda[@]}" |
1041 |
+ -DGMX_OPENMM=OFF |
1042 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
1043 |
+ -DGMX_BINARY_SUFFIX="${suffix}" |
1044 |
+ -DGMX_LIBS_SUFFIX="${suffix}" |
1045 |
+ ) |
1046 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
1047 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
1048 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die |
1049 |
+ use mpi || continue |
1050 |
+ einfo "Configuring for ${x} precision with mpi" |
1051 |
+ mycmakeargs=( |
1052 |
+ ${mycmakeargs_pre[@]} ${p} |
1053 |
+ -DGMX_THREAD_MPI=OFF |
1054 |
+ -DGMX_MPI=ON ${cuda} |
1055 |
+ -DGMX_OPENMM=OFF |
1056 |
+ -DGMX_BUILD_MDRUN_ONLY=ON |
1057 |
+ -DBUILD_SHARED_LIBS=OFF |
1058 |
+ -DGMX_BUILD_MANUAL=OFF |
1059 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" |
1060 |
+ -DGMX_LIBS_SUFFIX="_mpi${suffix}" |
1061 |
+ ) |
1062 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
1063 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
1064 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die |
1065 |
+ done |
1066 |
+} |
1067 |
+ |
1068 |
+src_compile() { |
1069 |
+ for x in ${GMX_DIRS}; do |
1070 |
+ einfo "Compiling for ${x} precision" |
1071 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1072 |
+ cmake-utils_src_compile |
1073 |
+ # generate bash completion, not 100% necessary for |
1074 |
+ # rel ebuilds as bundled |
1075 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1076 |
+ cmake-utils_src_compile completion |
1077 |
+ # not 100% necessary for rel ebuilds as available from website |
1078 |
+ if use doc; then |
1079 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1080 |
+ cmake-utils_src_compile manual |
1081 |
+ fi |
1082 |
+ use mpi || continue |
1083 |
+ einfo "Compiling for ${x} precision with mpi" |
1084 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
1085 |
+ cmake-utils_src_compile |
1086 |
+ done |
1087 |
+} |
1088 |
+ |
1089 |
+src_test() { |
1090 |
+ for x in ${GMX_DIRS}; do |
1091 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1092 |
+ cmake-utils_src_make check |
1093 |
+ done |
1094 |
+} |
1095 |
+ |
1096 |
+src_install() { |
1097 |
+ for x in ${GMX_DIRS}; do |
1098 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
1099 |
+ cmake-utils_src_install |
1100 |
+ if use doc; then |
1101 |
+ newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" |
1102 |
+ fi |
1103 |
+ #release ebuild does this automatically |
1104 |
+ if [[ $PV = *9999* ]]; then |
1105 |
+ cp "${WORKDIR}/${P}_${x}"/src/programs/completion/gmx-completion.bash "${ED}/usr/bin" || die |
1106 |
+ echo "complete -o nospace -F _gmx_compl gmx" > "${ED}/usr/bin/gmx-completion-gmx.bash" || die |
1107 |
+ fi |
1108 |
+ use mpi || continue |
1109 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
1110 |
+ cmake-utils_src_install |
1111 |
+ done |
1112 |
+ |
1113 |
+ if use tng; then |
1114 |
+ insinto /usr/include/tng |
1115 |
+ doins src/external/tng_io/include/tng/*h |
1116 |
+ fi |
1117 |
+ # drop unneeded stuff |
1118 |
+ rm "${ED}"usr/bin/GMXRC* || die |
1119 |
+ #concatenate all gmx-completion*, starting with gmx-completion.bash (fct defs) |
1120 |
+ #little hacckery as some gmx-completion* newlines ,so cat won't work |
1121 |
+ for x in "${ED}"usr/bin/gmx-completion{,?*}.bash ; do |
1122 |
+ echo $(<${x}) |
1123 |
+ done > "${T}"/gmx-bashcomp || die |
1124 |
+ newbashcomp "${T}"/gmx-bashcomp gmx |
1125 |
+ bashcomp_alias gmx mdrun |
1126 |
+ rm "${ED}"usr/bin/gmx-completion{,?*}.bash || die |
1127 |
+ if use double-precision && use single-precision; then |
1128 |
+ bashcomp_alias gmx gmx_d |
1129 |
+ bashcomp_alias gmx mdrun_d |
1130 |
+ fi |
1131 |
+ readme.gentoo_create_doc |
1132 |
+} |
1133 |
+ |
1134 |
+pkg_postinst() { |
1135 |
+ einfo |
1136 |
+ einfo "Please read and cite:" |
1137 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
1138 |
+ einfo "http://dx.doi.org/10.1021/ct700301q" |
1139 |
+ einfo |
1140 |
+ readme.gentoo_print_elog |
1141 |
+} |
1142 |
|
1143 |
diff --git a/sci-chemistry/gromacs/gromacs-5.1.9999.ebuild b/sci-chemistry/gromacs/gromacs-5.1.9999.ebuild |
1144 |
new file mode 100644 |
1145 |
index 0000000..9711c22 |
1146 |
--- /dev/null |
1147 |
+++ b/sci-chemistry/gromacs/gromacs-5.1.9999.ebuild |
1148 |
@@ -0,0 +1,269 @@ |
1149 |
+# Copyright 1999-2016 Gentoo Foundation |
1150 |
+# Distributed under the terms of the GNU General Public License v2 |
1151 |
+# $Id$ |
1152 |
+ |
1153 |
+EAPI=6 |
1154 |
+ |
1155 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
1156 |
+ |
1157 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs |
1158 |
+ |
1159 |
+if [[ $PV = *9999* ]]; then |
1160 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
1161 |
+ https://gerrit.gromacs.org/gromacs.git |
1162 |
+ git://github.com/gromacs/gromacs.git |
1163 |
+ http://repo.or.cz/r/gromacs.git" |
1164 |
+ [[ $PV = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:1}-${PV:2:1}" |
1165 |
+ inherit git-r3 |
1166 |
+ KEYWORDS="" |
1167 |
+else |
1168 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz |
1169 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${PV}.tar.gz )" |
1170 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" |
1171 |
+fi |
1172 |
+ |
1173 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" |
1174 |
+ |
1175 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
1176 |
+HOMEPAGE="http://www.gromacs.org/" |
1177 |
+ |
1178 |
+# see COPYING for details |
1179 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
1180 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
1181 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
1182 |
+SLOT="0/${PV}" |
1183 |
+IUSE="X blas boost cuda +doc -double-precision +fftw lapack mkl mpi +offensive openmp +single-precision test +threads +tng ${ACCE_IUSE}" |
1184 |
+ |
1185 |
+CDEPEND=" |
1186 |
+ X? ( |
1187 |
+ x11-libs/libX11 |
1188 |
+ x11-libs/libSM |
1189 |
+ x11-libs/libICE |
1190 |
+ ) |
1191 |
+ blas? ( virtual/blas ) |
1192 |
+ boost? ( >=dev-libs/boost-1.55 ) |
1193 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
1194 |
+ fftw? ( sci-libs/fftw:3.0 ) |
1195 |
+ lapack? ( virtual/lapack ) |
1196 |
+ mkl? ( sci-libs/mkl ) |
1197 |
+ mpi? ( virtual/mpi ) |
1198 |
+ " |
1199 |
+DEPEND="${CDEPEND} |
1200 |
+ virtual/pkgconfig |
1201 |
+ doc? ( |
1202 |
+ app-doc/doxygen |
1203 |
+ dev-texlive/texlive-latex |
1204 |
+ dev-texlive/texlive-latexextra |
1205 |
+ media-gfx/imagemagick |
1206 |
+ )" |
1207 |
+RDEPEND="${CDEPEND}" |
1208 |
+ |
1209 |
+REQUIRED_USE=" |
1210 |
+ || ( single-precision double-precision ) |
1211 |
+ cuda? ( single-precision ) |
1212 |
+ mkl? ( !blas !fftw !lapack )" |
1213 |
+ |
1214 |
+DOCS=( AUTHORS README ) |
1215 |
+ |
1216 |
+if [[ ${PV} != *9999 ]]; then |
1217 |
+ S="${WORKDIR}/${PN}-${PV/_/-}" |
1218 |
+fi |
1219 |
+ |
1220 |
+pkg_pretend() { |
1221 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
1222 |
+ use openmp && ! tc-has-openmp && \ |
1223 |
+ die "Please switch to an openmp compatible compiler" |
1224 |
+} |
1225 |
+ |
1226 |
+src_unpack() { |
1227 |
+ if [[ ${PV} != *9999 ]]; then |
1228 |
+ default |
1229 |
+ else |
1230 |
+ git-r3_src_unpack |
1231 |
+ if use test; then |
1232 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
1233 |
+ EGIT_BRANCH="${EGIT_BRANCH}" \ |
1234 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
1235 |
+ git-r3_src_unpack |
1236 |
+ fi |
1237 |
+ fi |
1238 |
+} |
1239 |
+ |
1240 |
+src_prepare() { |
1241 |
+ #notes/todos |
1242 |
+ # -on apple: there is framework support |
1243 |
+ |
1244 |
+ cmake-utils_src_prepare |
1245 |
+ |
1246 |
+ use cuda && cuda_src_prepare |
1247 |
+ |
1248 |
+ GMX_DIRS="" |
1249 |
+ use single-precision && GMX_DIRS+=" float" |
1250 |
+ use double-precision && GMX_DIRS+=" double" |
1251 |
+ |
1252 |
+ if use test; then |
1253 |
+ for x in ${GMX_DIRS}; do |
1254 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
1255 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
1256 |
+ done |
1257 |
+ fi |
1258 |
+ |
1259 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
1260 |
+} |
1261 |
+ |
1262 |
+src_configure() { |
1263 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
1264 |
+ |
1265 |
+ #go from slowest to fastest acceleration |
1266 |
+ local acce="None" |
1267 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
1268 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
1269 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
1270 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
1271 |
+ use cpu_flags_x86_avx2 && acce="AVX2_256" |
1272 |
+ |
1273 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
1274 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
1275 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
1276 |
+ |
1277 |
+ if use fftw; then |
1278 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
1279 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
1280 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
1281 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
1282 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
1283 |
+ ) |
1284 |
+ elif use mkl; then |
1285 |
+ local bits=$(get_libdir) |
1286 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
1287 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
1288 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
1289 |
+ ) |
1290 |
+ else |
1291 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
1292 |
+ fi |
1293 |
+ |
1294 |
+ mycmakeargs_pre+=( |
1295 |
+ "${fft_opts[@]}" |
1296 |
+ -DGMX_X11=$(usex X) |
1297 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
1298 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
1299 |
+ -DGMX_OPENMP=$(usex openmp) |
1300 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
1301 |
+ -DGMX_EXTERNAL_BOOST=$(usex boost) |
1302 |
+ -DGMX_USE_TNG=$(usex tng) |
1303 |
+ -DGMX_BUILD_MANUAL=$(usex doc) |
1304 |
+ -DGMX_DEFAULT_SUFFIX=off |
1305 |
+ -DGMX_SIMD="$acce" |
1306 |
+ -DGMX_LIB_INSTALL_DIR="$(get_libdir)" |
1307 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
1308 |
+ -DGMX_X86_AVX_GCC_MASKLOAD_BUG=OFF |
1309 |
+ -DGMX_USE_GCC44_BUG_WORKAROUND=OFF |
1310 |
+ -DBUILD_TESTING=OFF |
1311 |
+ -DGMX_BUILD_UNITTESTS=OFF |
1312 |
+ ${extra} |
1313 |
+ ) |
1314 |
+ |
1315 |
+ for x in ${GMX_DIRS}; do |
1316 |
+ einfo "Configuring for ${x} precision" |
1317 |
+ local suffix="" |
1318 |
+ #if we build single and double - double is suffixed |
1319 |
+ use double-precision && use single-precision && \ |
1320 |
+ [[ ${x} = "double" ]] && suffix="_d" |
1321 |
+ local p |
1322 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
1323 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
1324 |
+ [[ ${x} = "float" ]] && use cuda && \ |
1325 |
+ cuda=( -DGMX_GPU=ON ) |
1326 |
+ mycmakeargs=( |
1327 |
+ ${mycmakeargs_pre[@]} ${p} |
1328 |
+ -DGMX_MPI=OFF |
1329 |
+ -DGMX_THREAD_MPI=$(usex threads) |
1330 |
+ "${cuda[@]}" |
1331 |
+ -DGMX_OPENMM=OFF |
1332 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
1333 |
+ -DGMX_BINARY_SUFFIX="${suffix}" |
1334 |
+ -DGMX_LIBS_SUFFIX="${suffix}" |
1335 |
+ ) |
1336 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
1337 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
1338 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die |
1339 |
+ use mpi || continue |
1340 |
+ einfo "Configuring for ${x} precision with mpi" |
1341 |
+ mycmakeargs=( |
1342 |
+ ${mycmakeargs_pre[@]} ${p} |
1343 |
+ -DGMX_THREAD_MPI=OFF |
1344 |
+ -DGMX_MPI=ON ${cuda} |
1345 |
+ -DGMX_OPENMM=OFF |
1346 |
+ -DGMX_BUILD_MDRUN_ONLY=ON |
1347 |
+ -DBUILD_SHARED_LIBS=OFF |
1348 |
+ -DGMX_BUILD_MANUAL=OFF |
1349 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" |
1350 |
+ -DGMX_LIBS_SUFFIX="_mpi${suffix}" |
1351 |
+ ) |
1352 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
1353 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
1354 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die |
1355 |
+ done |
1356 |
+} |
1357 |
+ |
1358 |
+src_compile() { |
1359 |
+ for x in ${GMX_DIRS}; do |
1360 |
+ einfo "Compiling for ${x} precision" |
1361 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1362 |
+ cmake-utils_src_compile |
1363 |
+ # not 100% necessary for rel ebuilds as available from website |
1364 |
+ if use doc; then |
1365 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1366 |
+ cmake-utils_src_compile manual |
1367 |
+ fi |
1368 |
+ use mpi || continue |
1369 |
+ einfo "Compiling for ${x} precision with mpi" |
1370 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
1371 |
+ cmake-utils_src_compile |
1372 |
+ done |
1373 |
+} |
1374 |
+ |
1375 |
+src_test() { |
1376 |
+ for x in ${GMX_DIRS}; do |
1377 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1378 |
+ cmake-utils_src_make check |
1379 |
+ done |
1380 |
+} |
1381 |
+ |
1382 |
+src_install() { |
1383 |
+ for x in ${GMX_DIRS}; do |
1384 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
1385 |
+ cmake-utils_src_install |
1386 |
+ if use doc; then |
1387 |
+ newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" |
1388 |
+ fi |
1389 |
+ use mpi || continue |
1390 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
1391 |
+ cmake-utils_src_install |
1392 |
+ done |
1393 |
+ |
1394 |
+ if use tng; then |
1395 |
+ insinto /usr/include/tng |
1396 |
+ doins src/external/tng_io/include/tng/*h |
1397 |
+ fi |
1398 |
+ # drop unneeded stuff |
1399 |
+ rm "${ED}"usr/bin/GMXRC* || die |
1400 |
+ for x in "${ED}"usr/bin/gmx-completion-*.bash ; do |
1401 |
+ local n=${x##*/gmx-completion-} |
1402 |
+ n="${n%.bash}" |
1403 |
+ cat "${ED}"usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die |
1404 |
+ newbashcomp "${T}"/"${n}" "${n}" |
1405 |
+ done |
1406 |
+ rm "${ED}"usr/bin/gmx-completion*.bash || die |
1407 |
+ readme.gentoo_create_doc |
1408 |
+} |
1409 |
+ |
1410 |
+pkg_postinst() { |
1411 |
+ einfo |
1412 |
+ einfo "Please read and cite:" |
1413 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
1414 |
+ einfo "http://dx.doi.org/10.1021/ct700301q" |
1415 |
+ einfo |
1416 |
+ readme.gentoo_print_elog |
1417 |
+} |
1418 |
|
1419 |
diff --git a/sci-chemistry/gromacs/gromacs-9999.ebuild b/sci-chemistry/gromacs/gromacs-9999.ebuild |
1420 |
new file mode 100644 |
1421 |
index 0000000..1ca0343 |
1422 |
--- /dev/null |
1423 |
+++ b/sci-chemistry/gromacs/gromacs-9999.ebuild |
1424 |
@@ -0,0 +1,266 @@ |
1425 |
+# Copyright 1999-2016 Gentoo Foundation |
1426 |
+# Distributed under the terms of the GNU General Public License v2 |
1427 |
+# $Id$ |
1428 |
+ |
1429 |
+EAPI=6 |
1430 |
+ |
1431 |
+CMAKE_MAKEFILE_GENERATOR="ninja" |
1432 |
+ |
1433 |
+inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo-r1 toolchain-funcs |
1434 |
+ |
1435 |
+if [[ $PV = *9999* ]]; then |
1436 |
+ EGIT_REPO_URI="git://git.gromacs.org/gromacs.git |
1437 |
+ https://gerrit.gromacs.org/gromacs.git |
1438 |
+ git://github.com/gromacs/gromacs.git |
1439 |
+ http://repo.or.cz/r/gromacs.git" |
1440 |
+ [[ $PV = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:1}-${PV:2:1}" |
1441 |
+ inherit git-r3 |
1442 |
+ KEYWORDS="" |
1443 |
+else |
1444 |
+ SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz |
1445 |
+ test? ( http://gerrit.gromacs.org/download/regressiontests-${PV/_/-}.tar.gz )" |
1446 |
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" |
1447 |
+fi |
1448 |
+ |
1449 |
+ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2" |
1450 |
+ |
1451 |
+DESCRIPTION="The ultimate molecular dynamics simulation package" |
1452 |
+HOMEPAGE="http://www.gromacs.org/" |
1453 |
+ |
1454 |
+# see COPYING for details |
1455 |
+# http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING |
1456 |
+# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib |
1457 |
+LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )" |
1458 |
+SLOT="0/${PV}" |
1459 |
+IUSE="X blas cuda +doc -double-precision +fftw +hwloc lapack mkl mpi +offensive openmp +single-precision test +threads +tng ${ACCE_IUSE}" |
1460 |
+ |
1461 |
+CDEPEND=" |
1462 |
+ X? ( |
1463 |
+ x11-libs/libX11 |
1464 |
+ x11-libs/libSM |
1465 |
+ x11-libs/libICE |
1466 |
+ ) |
1467 |
+ blas? ( virtual/blas ) |
1468 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 ) |
1469 |
+ fftw? ( sci-libs/fftw:3.0 ) |
1470 |
+ hwloc? ( sys-apps/hwloc ) |
1471 |
+ lapack? ( virtual/lapack ) |
1472 |
+ mkl? ( sci-libs/mkl ) |
1473 |
+ mpi? ( virtual/mpi ) |
1474 |
+ " |
1475 |
+DEPEND="${CDEPEND} |
1476 |
+ virtual/pkgconfig |
1477 |
+ doc? ( |
1478 |
+ app-doc/doxygen |
1479 |
+ dev-texlive/texlive-latex |
1480 |
+ dev-texlive/texlive-latexextra |
1481 |
+ media-gfx/imagemagick |
1482 |
+ )" |
1483 |
+RDEPEND="${CDEPEND}" |
1484 |
+ |
1485 |
+REQUIRED_USE=" |
1486 |
+ || ( single-precision double-precision ) |
1487 |
+ cuda? ( single-precision ) |
1488 |
+ mkl? ( !blas !fftw !lapack )" |
1489 |
+ |
1490 |
+DOCS=( AUTHORS README ) |
1491 |
+ |
1492 |
+if [[ ${PV} != *9999 ]]; then |
1493 |
+ S="${WORKDIR}/${PN}-${PV/_/-}" |
1494 |
+fi |
1495 |
+ |
1496 |
+pkg_pretend() { |
1497 |
+ [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs" |
1498 |
+ use openmp && ! tc-has-openmp && \ |
1499 |
+ die "Please switch to an openmp compatible compiler" |
1500 |
+} |
1501 |
+ |
1502 |
+src_unpack() { |
1503 |
+ if [[ ${PV} != *9999 ]]; then |
1504 |
+ default |
1505 |
+ else |
1506 |
+ git-r3_src_unpack |
1507 |
+ if use test; then |
1508 |
+ EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \ |
1509 |
+ EGIT_BRANCH="${EGIT_BRANCH}" \ |
1510 |
+ EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\ |
1511 |
+ git-r3_src_unpack |
1512 |
+ fi |
1513 |
+ fi |
1514 |
+} |
1515 |
+ |
1516 |
+src_prepare() { |
1517 |
+ #notes/todos |
1518 |
+ # -on apple: there is framework support |
1519 |
+ |
1520 |
+ cmake-utils_src_prepare |
1521 |
+ |
1522 |
+ use cuda && cuda_src_prepare |
1523 |
+ |
1524 |
+ GMX_DIRS="" |
1525 |
+ use single-precision && GMX_DIRS+=" float" |
1526 |
+ use double-precision && GMX_DIRS+=" double" |
1527 |
+ |
1528 |
+ if use test; then |
1529 |
+ for x in ${GMX_DIRS}; do |
1530 |
+ mkdir -p "${WORKDIR}/${P}_${x}" || die |
1531 |
+ cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die |
1532 |
+ done |
1533 |
+ fi |
1534 |
+ |
1535 |
+ DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats" |
1536 |
+} |
1537 |
+ |
1538 |
+src_configure() { |
1539 |
+ local mycmakeargs_pre=( ) extra fft_opts=( ) |
1540 |
+ |
1541 |
+ #go from slowest to fastest acceleration |
1542 |
+ local acce="None" |
1543 |
+ use cpu_flags_x86_sse2 && acce="SSE2" |
1544 |
+ use cpu_flags_x86_sse4_1 && acce="SSE4.1" |
1545 |
+ use cpu_flags_x86_fma4 && acce="AVX_128_FMA" |
1546 |
+ use cpu_flags_x86_avx && acce="AVX_256" |
1547 |
+ use cpu_flags_x86_avx2 && acce="AVX2_256" |
1548 |
+ |
1549 |
+ #to create man pages, build tree binaries are executed (bug #398437) |
1550 |
+ [[ ${CHOST} = *-darwin* ]] && \ |
1551 |
+ extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF" |
1552 |
+ |
1553 |
+ if use fftw; then |
1554 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftw3 ) |
1555 |
+ elif use mkl && has_version "=sci-libs/mkl-10*"; then |
1556 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
1557 |
+ -DMKL_INCLUDE_DIR="${MKLROOT}/include" |
1558 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)" |
1559 |
+ ) |
1560 |
+ elif use mkl; then |
1561 |
+ local bits=$(get_libdir) |
1562 |
+ fft_opts=( -DGMX_FFT_LIBRARY=mkl |
1563 |
+ -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)" |
1564 |
+ -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)" |
1565 |
+ ) |
1566 |
+ else |
1567 |
+ fft_opts=( -DGMX_FFT_LIBRARY=fftpack ) |
1568 |
+ fi |
1569 |
+ |
1570 |
+ mycmakeargs_pre+=( |
1571 |
+ "${fft_opts[@]}" |
1572 |
+ -DGMX_X11=$(usex X) |
1573 |
+ -DGMX_EXTERNAL_BLAS=$(usex blas) |
1574 |
+ -DGMX_EXTERNAL_LAPACK=$(usex lapack) |
1575 |
+ -DGMX_OPENMP=$(usex openmp) |
1576 |
+ -DGMX_COOL_QUOTES=$(usex offensive) |
1577 |
+ -DGMX_USE_TNG=$(usex tng) |
1578 |
+ -DGMX_BUILD_MANUAL=$(usex doc) |
1579 |
+ -DGMX_HWLOC=$(usex hwloc) |
1580 |
+ -DGMX_DEFAULT_SUFFIX=off |
1581 |
+ -DGMX_SIMD="$acce" |
1582 |
+ -DGMX_LIB_INSTALL_DIR="$(get_libdir)" |
1583 |
+ -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/" |
1584 |
+ -DBUILD_TESTING=OFF |
1585 |
+ -DGMX_BUILD_UNITTESTS=OFF |
1586 |
+ ${extra} |
1587 |
+ ) |
1588 |
+ |
1589 |
+ for x in ${GMX_DIRS}; do |
1590 |
+ einfo "Configuring for ${x} precision" |
1591 |
+ local suffix="" |
1592 |
+ #if we build single and double - double is suffixed |
1593 |
+ use double-precision && use single-precision && \ |
1594 |
+ [[ ${x} = "double" ]] && suffix="_d" |
1595 |
+ local p |
1596 |
+ [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF" |
1597 |
+ local cuda=( "-DGMX_GPU=OFF" ) |
1598 |
+ [[ ${x} = "float" ]] && use cuda && \ |
1599 |
+ cuda=( -DGMX_GPU=ON ) |
1600 |
+ mycmakeargs=( |
1601 |
+ ${mycmakeargs_pre[@]} ${p} |
1602 |
+ -DGMX_MPI=OFF |
1603 |
+ -DGMX_THREAD_MPI=$(usex threads) |
1604 |
+ "${cuda[@]}" |
1605 |
+ "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")" |
1606 |
+ -DGMX_BINARY_SUFFIX="${suffix}" |
1607 |
+ -DGMX_LIBS_SUFFIX="${suffix}" |
1608 |
+ ) |
1609 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure |
1610 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
1611 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die |
1612 |
+ use mpi || continue |
1613 |
+ einfo "Configuring for ${x} precision with mpi" |
1614 |
+ mycmakeargs=( |
1615 |
+ ${mycmakeargs_pre[@]} ${p} |
1616 |
+ -DGMX_THREAD_MPI=OFF |
1617 |
+ -DGMX_MPI=ON ${cuda} |
1618 |
+ -DGMX_OPENMM=OFF |
1619 |
+ -DGMX_BUILD_MDRUN_ONLY=ON |
1620 |
+ -DBUILD_SHARED_LIBS=OFF |
1621 |
+ -DGMX_BUILD_MANUAL=OFF |
1622 |
+ -DGMX_BINARY_SUFFIX="_mpi${suffix}" |
1623 |
+ -DGMX_LIBS_SUFFIX="_mpi${suffix}" |
1624 |
+ ) |
1625 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure |
1626 |
+ [[ ${CHOST} != *-darwin* ]] || \ |
1627 |
+ sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die |
1628 |
+ done |
1629 |
+} |
1630 |
+ |
1631 |
+src_compile() { |
1632 |
+ for x in ${GMX_DIRS}; do |
1633 |
+ einfo "Compiling for ${x} precision" |
1634 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1635 |
+ cmake-utils_src_compile |
1636 |
+ # not 100% necessary for rel ebuilds as available from website |
1637 |
+ if use doc; then |
1638 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1639 |
+ cmake-utils_src_compile manual |
1640 |
+ fi |
1641 |
+ use mpi || continue |
1642 |
+ einfo "Compiling for ${x} precision with mpi" |
1643 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\ |
1644 |
+ cmake-utils_src_compile |
1645 |
+ done |
1646 |
+} |
1647 |
+ |
1648 |
+src_test() { |
1649 |
+ for x in ${GMX_DIRS}; do |
1650 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}"\ |
1651 |
+ cmake-utils_src_make check |
1652 |
+ done |
1653 |
+} |
1654 |
+ |
1655 |
+src_install() { |
1656 |
+ for x in ${GMX_DIRS}; do |
1657 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}" \ |
1658 |
+ cmake-utils_src_install |
1659 |
+ if use doc; then |
1660 |
+ newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf" |
1661 |
+ fi |
1662 |
+ use mpi || continue |
1663 |
+ BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \ |
1664 |
+ cmake-utils_src_install |
1665 |
+ done |
1666 |
+ |
1667 |
+ if use tng; then |
1668 |
+ insinto /usr/include/tng |
1669 |
+ doins src/external/tng_io/include/tng/*h |
1670 |
+ fi |
1671 |
+ # drop unneeded stuff |
1672 |
+ rm "${ED}"usr/bin/GMXRC* || die |
1673 |
+ for x in "${ED}"usr/bin/gmx-completion-*.bash ; do |
1674 |
+ local n=${x##*/gmx-completion-} |
1675 |
+ n="${n%.bash}" |
1676 |
+ cat "${ED}"usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die |
1677 |
+ newbashcomp "${T}"/"${n}" "${n}" |
1678 |
+ done |
1679 |
+ rm "${ED}"usr/bin/gmx-completion*.bash || die |
1680 |
+ readme.gentoo_create_doc |
1681 |
+} |
1682 |
+ |
1683 |
+pkg_postinst() { |
1684 |
+ einfo |
1685 |
+ einfo "Please read and cite:" |
1686 |
+ einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). " |
1687 |
+ einfo "http://dx.doi.org/10.1021/ct700301q" |
1688 |
+ einfo |
1689 |
+ readme.gentoo_print_elog |
1690 |
+} |
1691 |
|
1692 |
diff --git a/sci-chemistry/gromacs/metadata.xml b/sci-chemistry/gromacs/metadata.xml |
1693 |
index 0c7b107..e98cd51 100644 |
1694 |
--- a/sci-chemistry/gromacs/metadata.xml |
1695 |
+++ b/sci-chemistry/gromacs/metadata.xml |
1696 |
@@ -17,7 +17,8 @@ |
1697 |
<flag name="cuda">Enable cuda non-bonded kernels</flag> |
1698 |
<flag name="double-precision">More precise calculations at the expense of speed</flag> |
1699 |
<flag name="single-precision">Single precision version of gromacs (default)</flag> |
1700 |
- <flag name="boost">Enable external boost library</flag> |
1701 |
+ <flag name="boost">Enable external boost library</flag> |
1702 |
+ <flag name="hwloc">Enable HWLoc lib support</flag> |
1703 |
<flag name="tng">Enable new trajectory format - tng</flag> |
1704 |
<flag name="make-symlinks">Create symbolic links for pre-5.0 binary names</flag> |
1705 |
<!-- acceleration optimization flags --> |