Gentoo Archives: gentoo-commits

From: "Alexey Shvetsov (alexxy)" <alexxy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sci-chemistry/gromacs: metadata.xml gromacs-5.0.ebuild ChangeLog
Date: Mon, 30 Jun 2014 03:24:09
Message-Id: 20140630032405.2C71720036@flycatcher.gentoo.org
1 alexxy 14/06/30 03:24:05
2
3 Modified: metadata.xml ChangeLog
4 Added: gromacs-5.0.ebuild
5 Log:
6 [sci-chemistry/gromacs] GROMACS 5.0 finaly relesed
7
8 (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key F82F92E6)
9
10 Revision Changes Path
11 1.20 sci-chemistry/gromacs/metadata.xml
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/metadata.xml?rev=1.20&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/metadata.xml?rev=1.20&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/metadata.xml?r1=1.19&r2=1.20
16
17 Index: metadata.xml
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/metadata.xml,v
20 retrieving revision 1.19
21 retrieving revision 1.20
22 diff -u -r1.19 -r1.20
23 --- metadata.xml 31 Dec 2013 23:35:05 -0000 1.19
24 +++ metadata.xml 30 Jun 2014 03:24:04 -0000 1.20
25 @@ -1,21 +1,27 @@
26 <?xml version="1.0" encoding="UTF-8"?>
27 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
28 <pkgmetadata>
29 - <herd>sci-chemistry</herd>
30 - <maintainer>
31 - <email>ottxor@g.o</email>
32 - <name>Christoph Junghans</name>
33 - </maintainer>
34 - <use>
35 - <flag name="cuda">Enable cuda non-bonded kernels</flag>
36 - <flag name="double-precision">More precise calculations at the expense of speed</flag>
37 - <flag name="single-precision">Single precision version of gromacs (default)</flag>
38 - <!-- acceleration optimization flags -->
39 - <flag name="sse4_1">Enable sse4.1 acceleration</flag>
40 - <flag name="avx128fma">Enable 128bit avx with fma (e.g. AMD BullDozer)</flag>
41 - <flag name="avx256">Enable 256bit avx (e.g. Intel Sandy Bridge)</flag>
42 - <flag name="offensive">Enable gromacs partly offensive quotes</flag>
43 - <flag name="openmm">Add acceleration through <pkg>sci-libs/openmm</pkg></flag>
44 - <flag name="mkl">Use <pkg>sci-libs/mkl</pkg> for fft, blas, lapack routines</flag>
45 - </use>
46 + <herd>sci-chemistry</herd>
47 + <maintainer>
48 + <email>ottxor@g.o</email>
49 + <name>Christoph Junghans</name>
50 + </maintainer>
51 + <use>
52 + <flag name="cuda">Enable cuda non-bonded kernels</flag>
53 + <flag name="double-precision">More precise calculations at the expense of speed</flag>
54 + <flag name="single-precision">Single precision version of gromacs (default)</flag>
55 + <flag name="boost">Enable external boost library</flag>
56 + <flag name="tng">Enable new trajectory format - tng</flag>
57 + <flag name="make-symlinks">Create symbolic links for pre-5.0 binary names</flag>
58 + <!-- acceleration optimization flags -->
59 + <flag name="sse4_1">Enable sse4.1 acceleration</flag>
60 + <flag name="avx128fma">Enable 128bit avx with fma (e.g. AMD BullDozer)</flag>
61 + <flag name="avx_128_fma">Enable 128bit avx with fma (e.g. AMD BullDozer)</flag>
62 + <flag name="avx256">Enable 256bit avx (e.g. Intel Sandy Bridge)</flag>
63 + <flag name="avx_256">Enable 256bit avx (e.g. Intel Sandy Bridge)</flag>
64 + <flag name="avx2_256">Enable 256bit avx2 (e.g. Intel Haswell)</flag>
65 + <flag name="offensive">Enable gromacs partly offensive quotes</flag>
66 + <flag name="openmm">Add acceleration through <pkg>sci-libs/openmm</pkg></flag>
67 + <flag name="mkl">Use <pkg>sci-libs/mkl</pkg> for fft, blas, lapack routines</flag>
68 + </use>
69 </pkgmetadata>
70
71
72
73 1.140 sci-chemistry/gromacs/ChangeLog
74
75 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/ChangeLog?rev=1.140&view=markup
76 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/ChangeLog?rev=1.140&content-type=text/plain
77 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/ChangeLog?r1=1.139&r2=1.140
78
79 Index: ChangeLog
80 ===================================================================
81 RCS file: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v
82 retrieving revision 1.139
83 retrieving revision 1.140
84 diff -u -r1.139 -r1.140
85 --- ChangeLog 26 Mar 2014 21:42:49 -0000 1.139
86 +++ ChangeLog 30 Jun 2014 03:24:04 -0000 1.140
87 @@ -1,6 +1,12 @@
88 # ChangeLog for sci-chemistry/gromacs
89 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
90 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.139 2014/03/26 21:42:49 maekke Exp $
91 +# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.140 2014/06/30 03:24:04 alexxy Exp $
92 +
93 +*gromacs-5.0 (30 Jun 2014)
94 +
95 + 30 Jun 2014; Alexey Shvetsov <alexxy@g.o> +gromacs-5.0.ebuild,
96 + metadata.xml:
97 + [sci-chemistry/gromacs] GROMACS 5.0 finaly relesed
98
99 26 Mar 2014; Markus Meier <maekke@g.o> gromacs-4.6.5.ebuild:
100 arm stable, bug #496632
101
102
103
104 1.1 sci-chemistry/gromacs/gromacs-5.0.ebuild
105
106 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/gromacs-5.0.ebuild?rev=1.1&view=markup
107 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/gromacs/gromacs-5.0.ebuild?rev=1.1&content-type=text/plain
108
109 Index: gromacs-5.0.ebuild
110 ===================================================================
111 # Copyright 1999-2014 Gentoo Foundation
112 # Distributed under the terms of the GNU General Public License v2
113 # $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-5.0.ebuild,v 1.1 2014/06/30 03:24:04 alexxy Exp $
114
115 EAPI=5
116
117 TEST_PV="5.0"
118
119 CMAKE_MAKEFILE_GENERATOR="ninja"
120
121 inherit bash-completion-r1 cmake-utils cuda eutils multilib readme.gentoo toolchain-funcs
122
123 if [[ $PV = *9999* ]]; then
124 EGIT_REPO_URI="git://git.gromacs.org/gromacs.git
125 https://gerrit.gromacs.org/gromacs.git
126 git://github.com/gromacs/gromacs.git
127 http://repo.or.cz/r/gromacs.git"
128 EGIT_BRANCH="release-5-0"
129 inherit git-r3
130 else
131 SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${PN}-${PV/_/-}.tar.gz
132 test? ( http://gerrit.gromacs.org/download/regressiontests-${TEST_PV}.tar.gz )"
133 fi
134
135 ACCE_IUSE="sse2 sse4_1 avx_128_fma avx_256 avx2_256"
136
137 DESCRIPTION="The ultimate molecular dynamics simulation package"
138 HOMEPAGE="http://www.gromacs.org/"
139
140 # see COPYING for details
141 # http://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING
142 # base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib
143 LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )"
144 SLOT="0/${PV}"
145 KEYWORDS="~alpha ~amd64 ~arm ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos"
146 IUSE="X blas boost cuda +doc -double-precision +fftw lapack +make-symlinks mkl mpi +offensive openmp +single-precision test +threads +tng ${ACCE_IUSE}"
147
148 CDEPEND="
149 X? (
150 x11-libs/libX11
151 x11-libs/libSM
152 x11-libs/libICE
153 )
154 blas? ( virtual/blas )
155 boost? ( >=dev-libs/boost-1.55 )
156 cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 )
157 fftw? ( sci-libs/fftw:3.0 )
158 lapack? ( virtual/lapack )
159 mkl? ( sci-libs/mkl )
160 mpi? ( virtual/mpi )
161 "
162 DEPEND="${CDEPEND}
163 virtual/pkgconfig
164 doc? (
165 app-doc/doxygen
166 dev-texlive/texlive-latex
167 dev-texlive/texlive-latexextra
168 media-gfx/imagemagick
169 )"
170 RDEPEND="${CDEPEND}"
171
172 REQUIRED_USE="
173 || ( single-precision double-precision )
174 cuda? ( single-precision )
175 mkl? ( !blas !fftw !lapack )"
176
177 DOCS=( AUTHORS README )
178
179 if [[ ${PV} != *9999 ]]; then
180 S="${WORKDIR}/${PN}-${PV/_/-}"
181 fi
182
183 pkg_pretend() {
184 [[ $(gcc-version) == "4.1" ]] && die "gcc 4.1 is not supported by gromacs"
185 use openmp && ! tc-has-openmp && \
186 die "Please switch to an openmp compatible compiler"
187 }
188
189 src_unpack() {
190 if [[ ${PV} != *9999 ]]; then
191 default
192 else
193 git-r3_src_unpack
194 if use test; then
195 EGIT_REPO_URI="git://git.gromacs.org/regressiontests.git" \
196 EGIT_BRANCH="master" EGIT_NOUNPACK="yes" EGIT_COMMIT="master" \
197 EGIT_SOURCEDIR="${WORKDIR}/regressiontests"\
198 git-r3_src_unpack
199 fi
200 fi
201 }
202
203 src_prepare() {
204 #notes/todos
205 # -on apple: there is framework support
206
207 cmake-utils_src_prepare
208
209 use cuda && cuda_src_prepare
210
211 GMX_DIRS=""
212 use single-precision && GMX_DIRS+=" float"
213 use double-precision && GMX_DIRS+=" double"
214
215 if use test; then
216 for x in ${GMX_DIRS}; do
217 mkdir -p "${WORKDIR}/${P}_${x}" || die
218 cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die
219 done
220 fi
221
222 DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats"
223 }
224
225 src_configure() {
226 local mycmakeargs_pre=( ) extra fft_opts=( )
227
228 #go from slowest to fastest acceleration
229 local acce="None"
230 use sse2 && acce="SSE2"
231 use sse4_1 && acce="SSE4.1"
232 use avx_128_fma && acce="AVX_128_FMA"
233 use avx_256 && acce="AVX_256"
234 use avx2_256 && acee="AVX2_256"
235
236 #to create man pages, build tree binaries are executed (bug #398437)
237 [[ ${CHOST} = *-darwin* ]] && \
238 extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF"
239
240 if use fftw; then
241 fft_opts=( -DGMX_FFT_LIBRARY=fftw3 )
242 elif use mkl && has_version "=sci-libs/mkl-10*"; then
243 fft_opts=( -DGMX_FFT_LIBRARY=mkl
244 -DMKL_INCLUDE_DIR="${MKLROOT}/include"
245 -DMKL_LIBRARIES="$(echo /opt/intel/mkl/10.0.5.025/lib/*/libmkl.so);$(echo /opt/intel/mkl/10.0.5.025/lib/*/libiomp*.so)"
246 )
247 elif use mkl; then
248 local bits=$(get_libdir)
249 fft_opts=( -DGMX_FFT_LIBRARY=mkl
250 -DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)"
251 -DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)"
252 )
253 else
254 fft_opts=( -DGMX_FFT_LIBRARY=fftpack )
255 fi
256
257 mycmakeargs_pre+=(
258 "${fft_opts[@]}"
259 $(cmake-utils_use X GMX_X11)
260 $(cmake-utils_use blas GMX_EXTERNAL_BLAS)
261 $(cmake-utils_use lapack GMX_EXTERNAL_LAPACK)
262 $(cmake-utils_use openmp GMX_OPENMP)
263 $(cmake-utils_use offensive GMX_COOL_QUOTES)
264 $(cmake-utils_use boost GMX_EXTERNAL_BOOST)
265 $(cmake-utils_use tng GMX_USE_TNG)
266 $(cmake-utils_use doc GMX_BUILD_MANUAL)
267 $(cmake-utils_use make-symlinks GMX_SYMLINK_OLD_BINARY_NAMES)
268 -DGMX_DEFAULT_SUFFIX=off
269 -DGMX_SIMD="$acce"
270 -DGMX_LIB_INSTALL_DIR="$(get_libdir)"
271 -DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/"
272 -DGMX_X86_AVX_GCC_MASKLOAD_BUG=OFF
273 -DGMX_USE_GCC44_BUG_WORKAROUND=OFF
274 -DBUILD_TESTING=OFF
275 -DGMX_BUILD_UNITTESTS=OFF
276 ${extra}
277 )
278
279 for x in ${GMX_DIRS}; do
280 einfo "Configuring for ${x} precision"
281 local suffix=""
282 #if we build single and double - double is suffixed
283 use double-precision && use single-precision && \
284 [[ ${x} = "double" ]] && suffix="_d"
285 local p
286 [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF"
287 local cuda=( "-DGMX_GPU=OFF" )
288 [[ ${x} = "float" ]] && use cuda && \
289 cuda=( -DGMX_GPU=ON )
290 mycmakeargs=(
291 ${mycmakeargs_pre[@]} ${p}
292 -DGMX_MPI=OFF
293 $(cmake-utils_use threads GMX_THREAD_MPI)
294 "${cuda[@]}"
295 -DGMX_OPENMM=OFF
296 "$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
297 -DGMX_BINARY_SUFFIX="${suffix}"
298 -DGMX_LIBS_SUFFIX="${suffix}"
299 )
300 BUILD_DIR="${WORKDIR}/${P}_${x}" cmake-utils_src_configure
301 use mpi || continue
302 einfo "Configuring for ${x} precision with mpi"
303 mycmakeargs=(
304 ${mycmakeargs_pre[@]} ${p}
305 -DGMX_THREAD_MPI=OFF
306 -DGMX_MPI=ON ${cuda}
307 -DGMX_OPENMM=OFF
308 -DGMX_BUILD_MDRUN_ONLY=ON
309 -DBUILD_SHARED_LIBS=OFF
310 -DGMX_BUILD_MANUAL=OFF
311 -DGMX_BINARY_SUFFIX="_mpi${suffix}"
312 -DGMX_LIBS_SUFFIX="_mpi${suffix}"
313 )
314 BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake-utils_src_configure
315 done
316 }
317
318 src_compile() {
319 for x in ${GMX_DIRS}; do
320 einfo "Compiling for ${x} precision"
321 BUILD_DIR="${WORKDIR}/${P}_${x}"\
322 cmake-utils_src_compile
323 # generate bash completion
324 BUILD_DIR="${WORKDIR}/${P}_${x}"\
325 cmake-utils_src_compile completion
326 if use doc; then
327 BUILD_DIR="${WORKDIR}/${P}_${x}"\
328 cmake-utils_src_compile manual
329 fi
330 use mpi || continue
331 einfo "Compiling for ${x} precision with mpi"
332 BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\
333 cmake-utils_src_compile
334 done
335 }
336
337 src_test() {
338 for x in ${GMX_DIRS}; do
339 BUILD_DIR="${WORKDIR}/${P}_${x}"\
340 cmake-utils_src_make check
341 done
342 }
343
344 src_install() {
345 for x in ${GMX_DIRS}; do
346 BUILD_DIR="${WORKDIR}/${P}_${x}" \
347 cmake-utils_src_install
348 if use doc; then
349 newdoc "${WORKDIR}/${P}_${x}"/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
350 fi
351 newbashcomp "${WORKDIR}/${P}_${x}"/src/programs/completion/gmx-completion.bash gromacs
352 use mpi || continue
353 BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \
354 cmake-utils_src_install
355 done
356 # drop unneeded stuff
357 rm -f "${ED}"usr/bin/gmx-completion*
358 rm -f "${ED}"usr/bin/g_options*
359 rm -f "${ED}"usr/bin/GMXRC*
360 rm -f "${ED}"usr/$(get_libdir)/libtng*.a
361
362 readme.gentoo_create_doc
363 }
364
365 pkg_postinst() {
366 einfo
367 einfo "Please read and cite:"
368 einfo "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). "
369 einfo "http://dx.doi.org/10.1021/ct700301q"
370 einfo
371 readme.gentoo_print_elog
372 }