1 |
commit: 91c6f2af341a0c3d7c900bcbd7a8826279541ef5 |
2 |
Author: Andrew Savchenko <bircoph <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Oct 24 14:50:12 2018 +0000 |
4 |
Commit: Andrew Savchenko <bircoph <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Oct 24 14:50:12 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=91c6f2af |
7 |
|
8 |
sci-chemistry/gamess: version bump |
9 |
|
10 |
- Update for September 30, 2018 R3 release. |
11 |
- Add optional openmp support. |
12 |
- Optionally enable vb2000 and msucc solvers. |
13 |
MSUCC is not well tested yet and requires lots of RAM. |
14 |
|
15 |
Signed-off-by: Andrew Savchenko <bircoph <AT> gentoo.org> |
16 |
Package-Manager: Portage-2.3.51, Repoman-2.3.11 |
17 |
|
18 |
.../gamess/files/gamess-20180930.3.gentoo.patch | 185 ++++++++++ |
19 |
sci-chemistry/gamess/gamess-20180930.3.ebuild | 372 +++++++++++++++++++++ |
20 |
sci-chemistry/gamess/metadata.xml | 3 + |
21 |
3 files changed, 560 insertions(+) |
22 |
|
23 |
diff --git a/sci-chemistry/gamess/files/gamess-20180930.3.gentoo.patch b/sci-chemistry/gamess/files/gamess-20180930.3.gentoo.patch |
24 |
new file mode 100644 |
25 |
index 000000000..883e6d862 |
26 |
--- /dev/null |
27 |
+++ b/sci-chemistry/gamess/files/gamess-20180930.3.gentoo.patch |
28 |
@@ -0,0 +1,185 @@ |
29 |
+diff -Naurd gamess.orig/comp gamess/comp |
30 |
+--- gamess.orig/comp 2018-10-01 06:45:26.000000000 +0300 |
31 |
++++ gamess/comp 2018-10-23 17:24:42.094888310 +0300 |
32 |
+@@ -1585,7 +1585,7 @@ |
33 |
+ # |
34 |
+ case gfortran: |
35 |
+ # |
36 |
+- set OPT='-O2' |
37 |
++ set gentoo-OPT='-O2' |
38 |
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling |
39 |
+ |
40 |
+ set EXTRAOPT=" " |
41 |
+@@ -1698,7 +1698,7 @@ |
42 |
+ # optimizations in 32 bit mode, as a function of the ifort version. |
43 |
+ # |
44 |
+ case ifort: |
45 |
+- set OPT = '-O3' |
46 |
++ set gentoo-OPT = '-O2' |
47 |
+ if ($MODULE == delocl) set OPT='-O0' # from Cheol |
48 |
+ if ($MODULE == prpamm) set OPT='-O0' # for exam13 |
49 |
+ if ($MODULE == zheev) set OPT='-O0' |
50 |
+@@ -1944,7 +1944,7 @@ |
51 |
+ # |
52 |
+ # first, initialize OPT and EXTRAOPT |
53 |
+ # |
54 |
+- set OPT='-O2' |
55 |
++ set gentoo-OPT='-O2' |
56 |
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling |
57 |
+ |
58 |
+ set EXTRAOPT=" " |
59 |
+@@ -2109,7 +2109,7 @@ |
60 |
+ # -WB means warn but don't fail on out-of-bounds array references |
61 |
+ # -ftz flushes underflow results to zero |
62 |
+ # |
63 |
+- set OPT = '-O2' |
64 |
++ set gentoo-OPT = '-O2' |
65 |
+ if (".$GMS_DEBUG_FLAGS" != .) set OPT="$GMS_DEBUG_FLAGS" |
66 |
+ # alas, I'm so tired of hearing about so many versions failing to |
67 |
+ # diagonalize, that this time critical code is run w/o optimization. |
68 |
+@@ -2331,6 +2331,10 @@ |
69 |
+ case 5.1: |
70 |
+ case 5.2: |
71 |
+ case 5.3: |
72 |
++ case 5.4: |
73 |
++ case 6.0: |
74 |
++ case 6.1: |
75 |
++ case 6.2: |
76 |
+ if ($MODULE == cosmo) set OPT='-O0' |
77 |
+ if ($MODULE == dcscf) set OPT='-O0' |
78 |
+ if ($MODULE == tddgrd) set OPT='-O0' |
79 |
+diff -Naurd gamess.orig/ddi/compddi gamess/ddi/compddi |
80 |
+--- gamess.orig/ddi/compddi 2018-08-07 10:23:20.000000000 +0300 |
81 |
++++ gamess/ddi/compddi 2018-10-23 17:14:31.801671875 +0300 |
82 |
+@@ -696,7 +696,7 @@ |
83 |
+ |
84 |
+ set FORTRAN=$GMS_FORTRAN # might be g77, gfortran, ifort, pgf77, f2c |
85 |
+ |
86 |
+- set CC = 'gcc' |
87 |
++ set gentoo-CC = 'gcc' |
88 |
+ set CFLAGS = "-DLINUX -O3 -fstrict-aliasing -I./" |
89 |
+ set CLIBS = "-lpthread" |
90 |
+ |
91 |
+@@ -751,7 +751,7 @@ |
92 |
+ if (`uname -p` == ia64) set ARCH='' |
93 |
+ if (`uname -p` == aarch64) set ARCH='-mcpu=native' |
94 |
+ |
95 |
+- set CC = 'gcc' |
96 |
++ set gentoo-CC = 'gcc' |
97 |
+ set CFLAGS = "-DLINUX $ARCH -O3 -fstrict-aliasing -I./" |
98 |
+ set CLIBS = "-lpthread" |
99 |
+ |
100 |
+diff -Naurd gamess.orig/ddi/kickoff/ddikick.c gamess/ddi/kickoff/ddikick.c |
101 |
+--- gamess.orig/ddi/kickoff/ddikick.c 2018-02-08 00:15:23.000000000 +0300 |
102 |
++++ gamess/ddi/kickoff/ddikick.c 2018-10-23 17:14:31.801671875 +0300 |
103 |
+@@ -105,7 +105,7 @@ |
104 |
+ remoteshell = argv[++i]; |
105 |
+ } else { |
106 |
+ if((remoteshell = getenv("DDI_RSH")) == NULL) { |
107 |
+- remoteshell = (char *) strdup("rsh"); |
108 |
++ remoteshell = (char *) strdup("ssh"); |
109 |
+ } |
110 |
+ } |
111 |
+ |
112 |
+diff -Naurd gamess.orig/gms-files.csh gamess/gms-files.csh |
113 |
+--- gamess.orig/gms-files.csh 2018-10-01 06:45:26.000000000 +0300 |
114 |
++++ gamess/gms-files.csh 2018-10-23 17:14:31.802671840 +0300 |
115 |
+@@ -28,7 +28,7 @@ |
116 |
+ # to see all the file definitions (one is just below). |
117 |
+ # |
118 |
+ #---quiet---set echo |
119 |
+-setenv AUXDATA $GMSPATH/auxdata |
120 |
++setenv AUXDATA /usr/share/gamess |
121 |
+ setenv EXTBAS /dev/null |
122 |
+ setenv NUCBAS /dev/null |
123 |
+ setenv EXTCAB /dev/null |
124 |
+diff -Naurd gamess.orig/lked gamess/lked |
125 |
+--- gamess.orig/lked 2018-10-01 06:45:26.000000000 +0300 |
126 |
++++ gamess/lked 2018-10-23 17:28:20.981434120 +0300 |
127 |
+@@ -368,12 +368,12 @@ |
128 |
+ switch ($GMS_FORTRAN) |
129 |
+ case gfortran: |
130 |
+ set LDR='gfortran' |
131 |
+- set LDOPTS=' ' |
132 |
++ set gentoo-LDOPTS=' ' |
133 |
+ set FORTLIBS=' ' |
134 |
+ breaksw |
135 |
+ case ifort: |
136 |
+ set LDR='ifort' |
137 |
+- set LDOPTS=' ' # add '-Wl,-M' to see load map |
138 |
++ set gentoo-LDOPTS=' ' # add '-Wl,-M' to see load map |
139 |
+ set FORTLIBS='-Vaxlib' |
140 |
+ breaksw |
141 |
+ case pgfortran: |
142 |
+@@ -432,12 +432,7 @@ |
143 |
+ # Otherwise, attempt a link against shared object libs. |
144 |
+ # See the 64 bit Atlas below for a way to fix the linker's |
145 |
+ # not being able to locate -lf77blas, if that happens. |
146 |
+- if (-e $GMS_MATHLIB_PATH/libf77blas.a) then |
147 |
+- set MATHLIBS="$GMS_MATHLIB_PATH/libf77blas.a" |
148 |
+- set MATHLIBS="$MATHLIBS $GMS_MATHLIB_PATH/libatlas.a" |
149 |
+- else |
150 |
+- set MATHLIBS="-L$GMS_MATHLIB_PATH -lf77blas -latlas" |
151 |
+- endif |
152 |
++ set MATHLIBS=`${PKG_CONFIG} --libs blas` |
153 |
+ set BLAS=' ' |
154 |
+ breaksw |
155 |
+ |
156 |
+@@ -506,13 +501,13 @@ |
157 |
+ switch ($GMS_FORTRAN) |
158 |
+ case gfortran: |
159 |
+ set LDR='gfortran' |
160 |
+- set LDOPTS=' ' |
161 |
++ set gentoo-LDOPTS=' ' |
162 |
+ set FORTLIBS=' ' |
163 |
+ if ($GMS_OPENMP == true) set LDOPTS="$LDOPTS -fopenmp" |
164 |
+ breaksw |
165 |
+ case ifort: |
166 |
+ set LDR='ifort' |
167 |
+- set LDOPTS='-i8' # -Wl,-M generates a load map |
168 |
++ set gentoo-LDOPTS=' ' # -Wl,-M generates a load map |
169 |
+ # this auxiliary library seems to have disappeared in ifort 10 |
170 |
+ set FORTLIBS=' ' |
171 |
+ if ($GMS_IFORT_VERNO < 10) set FORTLIBS='-Vaxlib' |
172 |
+@@ -672,12 +667,7 @@ |
173 |
+ # ln -s liblapack_atlas.so.3.0 liblapack.so |
174 |
+ # ln -s liblapack.so.3.0 liblapack.so |
175 |
+ # It is strange the RPM's don't do these soft links for us. |
176 |
+- if (-e $GMS_MATHLIB_PATH/libf77blas.a) then |
177 |
+- set MATHLIBS="$GMS_MATHLIB_PATH/libf77blas.a" |
178 |
+- set MATHLIBS="$MATHLIBS $GMS_MATHLIB_PATH/libatlas.a" |
179 |
+- else |
180 |
+- set MATHLIBS="-L$GMS_MATHLIB_PATH -lf77blas -latlas" |
181 |
+- endif |
182 |
++ set MATHLIBS=`${PKG_CONFIG} --libs blas` |
183 |
+ if ($CCHEM == true) then |
184 |
+ set MATHLIBS="-L$GMS_MATHLIB_PATH -Wl,--start-group -lf77blas -latlas -lcblas -llapack -Wl,--end-group" |
185 |
+ endif |
186 |
+diff -Naurd gamess.orig/runall gamess/runall |
187 |
+--- gamess.orig/runall 2018-02-08 00:15:24.000000000 +0300 |
188 |
++++ gamess/runall 2018-10-23 17:14:31.802671840 +0300 |
189 |
+@@ -46,7 +46,7 @@ |
190 |
+ xgms -v $VERNO -q $QUEUE -l exam$NUM.log exam$NUM |
191 |
+ sleep 2 |
192 |
+ else |
193 |
+- ./rungms exam$NUM $VERNO 1 >& exam$NUM.log |
194 |
++ rungms exam$NUM $VERNO 1 >& exam$NUM.log |
195 |
+ endif |
196 |
+ @ i++ |
197 |
+ end |
198 |
+diff -Naurd gamess.orig/rungms gamess/rungms |
199 |
+--- gamess.orig/rungms 2018-10-01 06:45:26.000000000 +0300 |
200 |
++++ gamess/rungms 2018-10-23 17:29:37.732820347 +0300 |
201 |
+@@ -61,9 +61,9 @@ |
202 |
+ # See also a very old LoadLeveler "ll-gms" for some IBM systems. |
203 |
+ # |
204 |
+ set TARGET=sockets |
205 |
+-set SCR=/scr1/$USER |
206 |
+-set USERSCR=~/gamess-devv |
207 |
+-set GMSPATH=~/gamess-devv |
208 |
++set SCR=`pwd` |
209 |
++set USERSCR=`pwd` |
210 |
++set GMSPATH=/usr/bin |
211 |
+ # |
212 |
+ set JOB=$1 # name of the input file xxx.inp, give only the xxx part |
213 |
+ set VERNO=$2 # revision number of the executable created by 'lked' step |
214 |
|
215 |
diff --git a/sci-chemistry/gamess/gamess-20180930.3.ebuild b/sci-chemistry/gamess/gamess-20180930.3.ebuild |
216 |
new file mode 100644 |
217 |
index 000000000..ce3b8eba8 |
218 |
--- /dev/null |
219 |
+++ b/sci-chemistry/gamess/gamess-20180930.3.ebuild |
220 |
@@ -0,0 +1,372 @@ |
221 |
+# Copyright 1999-2018 Gentoo Authors |
222 |
+# Distributed under the terms of the GNU General Public License v2 |
223 |
+ |
224 |
+EAPI=6 |
225 |
+ |
226 |
+inherit fortran-2 flag-o-matic pax-utils toolchain-funcs |
227 |
+ |
228 |
+DESCRIPTION="A powerful quantum chemistry package" |
229 |
+HOMEPAGE="http://www.msg.chem.iastate.edu/GAMESS/GAMESS.html" |
230 |
+SRC_URI=" |
231 |
+ ${P}.tar.gz |
232 |
+ qmmm-tinker? ( tinker.tar.gz )" |
233 |
+ |
234 |
+SLOT="0" |
235 |
+LICENSE="gamess" |
236 |
+# NOTE: PLEASE do not stabilize gamess. It does not make sense |
237 |
+# since the tarball has fetch restrictions and upstream only |
238 |
+# provides the latest version. In other words: As soon as a |
239 |
+# new version comes out the stable version will be useless since |
240 |
+# users can not get at the tarball any more. |
241 |
+KEYWORDS="~amd64 ~x86" |
242 |
+IUSE="mpi msucc neo openmp pax_kernel qmmm-tinker vb2000" |
243 |
+ |
244 |
+CDEPEND=" |
245 |
+ app-shells/tcsh |
246 |
+ mpi? ( virtual/mpi ) |
247 |
+ virtual/blas" |
248 |
+DEPEND="${CDEPEND} |
249 |
+ virtual/pkgconfig" |
250 |
+RDEPEND="${CDEPEND} |
251 |
+ net-misc/openssh" |
252 |
+ |
253 |
+REQUIRED_USE="( |
254 |
+ openmp? ( !neo !vb2000 ) )" |
255 |
+ |
256 |
+S="${WORKDIR}/${PN}" |
257 |
+ |
258 |
+RESTRICT="fetch" |
259 |
+ |
260 |
+GAMESS_DOWNLOAD="http://www.msg.ameslab.gov/GAMESS/License_Agreement.html" |
261 |
+GAMESS_VERSION="September 30, 2018 R3" |
262 |
+ |
263 |
+pkg_nofetch() { |
264 |
+ echo |
265 |
+ elog "Please download ${PN}-current.tar.gz from" |
266 |
+ elog "${GAMESS_DOWNLOAD}." |
267 |
+ elog "Be sure to select the version ${GAMESS_VERSION} tarball!!" |
268 |
+ elog "Then move the tarball to" |
269 |
+ elog "${DISTDIR}/${P}.tar.gz" |
270 |
+ if use qmmm-tinker ; then |
271 |
+ elog "Also download http://www.msg.ameslab.gov/GAMESS/tinker.tar.gz" |
272 |
+ elog "and place tinker.tar.gz to ${DISTDIR}" |
273 |
+ fi |
274 |
+ echo |
275 |
+} |
276 |
+ |
277 |
+get_fcomp() { |
278 |
+ case $(tc-getFC) in |
279 |
+ *gfortran* ) |
280 |
+ FCOMP="gfortran" ;; |
281 |
+ ifort ) |
282 |
+ FCOMP="ifc" ;; |
283 |
+ * ) |
284 |
+ FCOMP=$(tc-getFC) ;; |
285 |
+ esac |
286 |
+} |
287 |
+ |
288 |
+pkg_setup() { |
289 |
+ fortran-2_pkg_setup |
290 |
+ get_fcomp |
291 |
+ # currently amd64 is only supported with gfortran |
292 |
+ if [[ "${ARCH}" == "amd64" ]] && [[ ${FCOMP} != *gfortran* ]]; |
293 |
+ then die "You will need gfortran to compile gamess on amd64" |
294 |
+ fi |
295 |
+ |
296 |
+ # note about qmmm-tinker |
297 |
+ if use qmmm-tinker; then |
298 |
+ einfo "By default MM subsistem is restricted to 1000 atoms" |
299 |
+ einfo "if you want larger MM subsystems then you should set" |
300 |
+ einfo "QMMM_GAMESS_MAXMM variable to needed value in your make.conf" |
301 |
+ einfo "By default maximum number of atom classes types and size of" |
302 |
+ einfo "hessian are restricted to 250, 500 and 1000000 respectively" |
303 |
+ einfo "If you want larger sizes set:" |
304 |
+ einfo "QMMM_GAMESS_MAXCLASS" |
305 |
+ einfo "QMMM_GAMESS_MAXCTYP" |
306 |
+ einfo "QMMM_GAMESS_MAXHESS" |
307 |
+ einfo "in your make.conf" |
308 |
+ fi |
309 |
+ |
310 |
+ #note about mpi |
311 |
+ if use mpi; then |
312 |
+ ewarn "" |
313 |
+ ewarn "You should adjust rungms script for your mpi implentation" |
314 |
+ ewarn "because deafult one will not work" |
315 |
+ ewarn "" |
316 |
+ fi |
317 |
+ |
318 |
+ if use openmp; then |
319 |
+ tc-has-openmp || die "Please use an openmp capable compiler like gcc[openmp]" |
320 |
+ fi |
321 |
+} |
322 |
+ |
323 |
+src_unpack() { |
324 |
+ unpack ${A} |
325 |
+ |
326 |
+ if use qmmm-tinker; then |
327 |
+ mv tinker gamess/ || die "failed to move tinker directory" |
328 |
+ fi |
329 |
+} |
330 |
+ |
331 |
+src_prepare() { |
332 |
+ tc-export PKG_CONFIG |
333 |
+ # apply LINUX-arch patches to gamess makesfiles |
334 |
+ eapply "${FILESDIR}/${P}.gentoo.patch" |
335 |
+ eapply_user |
336 |
+ # select arch |
337 |
+ # NOTE: please leave lked alone; it should be good as is!! |
338 |
+ cd "${S}" |
339 |
+ local active_arch; |
340 |
+ if [[ "${ARCH}" == "amd64" ]]; then |
341 |
+ active_arch="linux64"; |
342 |
+ else |
343 |
+ active_arch="linux32"; |
344 |
+ fi |
345 |
+ |
346 |
+ # fix "relocation truncated to fit" problem |
347 |
+ append-flags -mcmodel=medium |
348 |
+ append-ldflags -mcmodel=medium |
349 |
+ |
350 |
+ # for hardened-gcc let't turn off ssp, since it breakes |
351 |
+ # a few routines |
352 |
+ if use pax_kernel && [[ ${FCOMP} == g77 ]]; then |
353 |
+ FFLAGS="${FFLAGS} -fno-stack-protector-all" |
354 |
+ fi |
355 |
+ |
356 |
+ # Enable mpi stuff |
357 |
+ if use mpi; then |
358 |
+ sed -e "s:set COMM = sockets:set COMM = mpi:g" \ |
359 |
+ -i ddi/compddi || die "Enabling mpi build failed" |
360 |
+ sed -e "s:MPI_INCLUDE_PATH = ' ':MPI_INCLUDE_PATH = '-I/usr/include ':g" \ |
361 |
+ -i ddi/compddi || die "Enabling mpi build failed" |
362 |
+ sed -e "s:MSG_LIBRARIES='../ddi/libddi.a -lpthread':MSG_LIBRARIES='../ddi/libddi.a -lmpi -lpthread':g" \ |
363 |
+ -i lked || die "Enabling mpi build failed" |
364 |
+ fi |
365 |
+ |
366 |
+ # enable NEO |
367 |
+ if use neo; then |
368 |
+ sed -e "s:NEO=false:NEO=true:" -i compall lked || \ |
369 |
+ die "Failed to enable NEO code" |
370 |
+ else |
371 |
+ sed -e "s:NEO=true:NEO=false:" -i compall lked || \ |
372 |
+ die "Failed to disable NEO code" |
373 |
+ fi |
374 |
+ # enable VB2000 |
375 |
+ if use vb2000; then |
376 |
+ sed -e "s:VB2000=false:VB2000=true:" -i compall lked || \ |
377 |
+ die "Failed to enable VB2000 code" |
378 |
+ else |
379 |
+ sed -e "s:VB2000=true:VB2000=false:" -i compall lked || \ |
380 |
+ die "Failed to disable VB2000 code" |
381 |
+ fi |
382 |
+ # enable GAMESS-qmmm |
383 |
+ if use qmmm-tinker; then |
384 |
+ eapply "${FILESDIR}/${PN}-qmmm-tinker-fix-idate.patch" |
385 |
+ sed -e "s:TINKER=false:TINKER=true:" -i compall lked || \ |
386 |
+ die "Failed to enable TINKER code" |
387 |
+ if [ "x$QMMM_GAMESS_MAXMM" == "x" ]; then |
388 |
+ einfo "No QMMM_GAMESS_MAXMM set. Using default value = 1000" |
389 |
+ else |
390 |
+ einfo "Setting QMMM_GAMESS_MAXMM to $QMMM_GAMESS_MAXMM" |
391 |
+ sed -e "s:maxatm=1000:maxatm=$QMMM_GAMESS_MAXMM:g" \ |
392 |
+ -i tinker/sizes.i \ |
393 |
+ || die "Setting QMMM_GAMESS_MAXMM failed" |
394 |
+ sed -e "s:MAXATM=1000:MAXATM=$QMMM_GAMESS_MAXMM:g" \ |
395 |
+ -i source/inputb.src \ |
396 |
+ || die "Setting QMMM_GAMESS_MAXMM failed" |
397 |
+ fi |
398 |
+ if [ "x$QMMM_GAMESS_MAXCLASS" == "x" ]; then |
399 |
+ einfo "No QMMM_GAMESS_MAXMM set. Using default value = 250" |
400 |
+ else |
401 |
+ sed -e "s:maxclass=250:maxclass=$QMMM_GAMESS_MAXCLASS:g" \ |
402 |
+ -i tinker/sizes.i \ |
403 |
+ || die "Setting QMMM_GAMESS_MAXCLASS failed" |
404 |
+ fi |
405 |
+ if [ "x$QMMM_GAMESS_MAXCTYP" == "x" ]; then |
406 |
+ einfo "No QMMM_GAMESS_MAXCTYP set. Using default value = 500" |
407 |
+ else |
408 |
+ sed -e "s:maxtyp=500:maxtyp=$QMMM_GAMESS_MAXCTYP:g" \ |
409 |
+ -i tinker/sizes.i \ |
410 |
+ || die "Setting QMMM_GAMESS_MAXCTYP failed" |
411 |
+ fi |
412 |
+ if [ "x$QMMM_GAMESS_MAXHESS" == "x" ]; then |
413 |
+ einfo "No QMMM_GAMESS_MAXHESS set. Usingdefault value = 1000000" |
414 |
+ else |
415 |
+ sed -e "s:maxhess=1000000:maxhess=$QMMM_GAMESS_MAXHESS:g" \ |
416 |
+ -i tinker/sizes.i \ |
417 |
+ || die "Setting QMMM_GAMESS_MAXHESS failed" |
418 |
+ fi |
419 |
+ fi |
420 |
+ # create proper activate sourcefile |
421 |
+ cp "./tools/actvte.code" "./tools/actvte.f" || \ |
422 |
+ die "Failed to create actvte.f" |
423 |
+ sed -e "s/^\*UNX/ /" -i "./tools/actvte.f" || \ |
424 |
+ die "Failed to perform UNX substitutions in actvte.f" |
425 |
+ |
426 |
+ # fix GAMESS' compall script to use proper CC |
427 |
+ sed -e "s|\$CCOMP -c \$extraflags source/zunix.c|$(tc-getCC) -c \$extraflags source/zunix.c|" \ |
428 |
+ -i compall || die "Failed setting up compall script" |
429 |
+ |
430 |
+ # insert proper FFLAGS into GAMESS' comp makefile |
431 |
+ # in case we're using ifc let's strip all the gcc |
432 |
+ # specific stuff |
433 |
+ if [[ ${FCOMP} == "ifort" ]]; then |
434 |
+ sed -e "s/gentoo-OPT = '-O2'/OPT = '${FFLAGS} -quiet'/" \ |
435 |
+ -i comp || die "Failed setting up comp script" |
436 |
+ elif ! use x86; then |
437 |
+ sed -e "s/-malign-double //" \ |
438 |
+ -e "s/gentoo-OPT='-O2'/OPT='${FFLAGS}'/" \ |
439 |
+ -i comp || die "Failed setting up comp script" |
440 |
+ else |
441 |
+ sed -e "s/gentoo-OPT = '-O2'/OPT = '${FFLAGS}'/" \ |
442 |
+ -i comp || die "Failed setting up comp script" |
443 |
+ fi |
444 |
+ |
445 |
+ # fix up GAMESS' linker script; |
446 |
+ sed -e "s/gentoo-LDOPTS=' '/LDOPTS='${LDFLAGS}'/" \ |
447 |
+ -i lked || die "Failed setting up lked script" |
448 |
+ # fix up GAMESS' ddi TCP/IP socket build |
449 |
+ sed -e "s/gentoo-CC = 'gcc'/CC = '$(tc-getCC)'/" \ |
450 |
+ -i ddi/compddi || die "Failed setting up compddi script" |
451 |
+ # Creating install.info |
452 |
+ cat > install.info <<-EOF |
453 |
+ #!/bin/csh |
454 |
+ setenv GMS_PATH $WORKDIR/gamess |
455 |
+ setenv GMS_BUILD_DIR $WORKDIR/gamess |
456 |
+ setenv GMS_TARGET $active_arch |
457 |
+ setenv GMS_FORTRAN $FCOMP |
458 |
+ setenv GMS_GFORTRAN_VERNO $(gcc-major-version).$(gcc-minor-version) |
459 |
+ setenv GMS_MATHLIB atlas |
460 |
+ setenv GMS_MATHLIB_PATH /usr/$(get_libdir)/atlas |
461 |
+ setenv GMS_DDI_COMM sockets |
462 |
+ setenv GMS_LIBCCHEM false |
463 |
+ setenv GMS_PHI false |
464 |
+ setenv GMS_SHMTYPE sysv |
465 |
+ setenv GMS_OPENMP $(usex openmp true false) |
466 |
+ setenv GMS_MSUCC $(usex msucc true false) |
467 |
+ EOF |
468 |
+ |
469 |
+} |
470 |
+ |
471 |
+src_compile() { |
472 |
+ # build actvte |
473 |
+ cd "${S}"/tools |
474 |
+ ${FCOMP} -o actvte.x actvte.f || \ |
475 |
+ die "Failed to compile actvte.x" |
476 |
+ |
477 |
+ # for hardened (PAX) users and ifc we need to turn |
478 |
+ # MPROTECT off |
479 |
+ if [[ ${FCOMP} == "ifort" ]] && use pax_kernel; then |
480 |
+ pax-mark -PemRxS actvte.x |
481 |
+ fi |
482 |
+ |
483 |
+ # build gamess |
484 |
+ cd "${S}" |
485 |
+ ./compall || die "compall failed" |
486 |
+ |
487 |
+ # build the ddi TCP/IP socket stuff |
488 |
+ cd ${S}/"ddi" |
489 |
+ ./compddi || die "compddi failed" |
490 |
+ |
491 |
+ # finally, link it all together |
492 |
+ cd "${S}" |
493 |
+ ./lked || die "lked failed" |
494 |
+ |
495 |
+ # for hardened (PAX) users and ifc we need to turn |
496 |
+ # MPROTECT off |
497 |
+ if [[ ${FCOMP} == "ifort" ]] && use pax_kernel; then |
498 |
+ pax-mark -PemRxS ${PN}.00.x |
499 |
+ fi |
500 |
+} |
501 |
+ |
502 |
+src_install() { |
503 |
+ # the executables |
504 |
+ dobin ${PN}.00.x rungms gms-files.csh \ |
505 |
+ || die "Failed installing binaries" |
506 |
+ if use !mpi; then |
507 |
+ dobin ddi/ddikick.x \ |
508 |
+ || die "Failed installing binaries" |
509 |
+ fi |
510 |
+ |
511 |
+ # the docs |
512 |
+ dodoc *.DOC qmnuc/*.DOC |
513 |
+ |
514 |
+ # install ericftm |
515 |
+ insinto /usr/share/${PN} |
516 |
+ doins auxdata/ericfmt.dat |
517 |
+ |
518 |
+ # install mcpdata |
519 |
+ insinto /usr/share/${PN}/MCP |
520 |
+ doins auxdata/MCP/* |
521 |
+ |
522 |
+ # install BASES |
523 |
+ insinto /usr/share/${PN}/BASES |
524 |
+ doins auxdata/BASES/* |
525 |
+ |
526 |
+ # install QUANPOL |
527 |
+ insinto /usr/share/${PN}/QUANPOL |
528 |
+ doins auxdata/QUANPOL/* |
529 |
+ |
530 |
+ # install tinker params in case of qmmm |
531 |
+ if use qmmm-tinker ; then |
532 |
+ dodoc tinker/simomm.doc |
533 |
+ insinto /usr/share/${PN} |
534 |
+ doins -r tinker/params51 |
535 |
+ fi |
536 |
+ |
537 |
+ # install the tests the user should run, and |
538 |
+ # fix up the runscript; also grab a copy of rungms |
539 |
+ # so the user is ready to run the tests |
540 |
+ insinto /usr/share/${PN}/tests |
541 |
+ insopts -m0644 |
542 |
+ doins -r tests/* |
543 |
+ insopts -m0744 |
544 |
+ doins runall |
545 |
+ #doins tools/checktst/checktst tools/checktst/chkabs || \ |
546 |
+ # die "Failed to install main test checker" |
547 |
+ #doins tools/checktst/exam* || \ |
548 |
+ # die "Failed to install individual test files" |
549 |
+ |
550 |
+ insinto /usr/share/${PN}/neotests |
551 |
+ insopts -m0644 |
552 |
+ doins -r qmnuc/neotests/* |
553 |
+ |
554 |
+ if use vb2000; then |
555 |
+ insinto /usr/share/${PN}/vb2000 |
556 |
+ insopts -m0644 |
557 |
+ doins -r vb2000/{MAP,VBOLIB,test_results,tests} |
558 |
+ insopts -m0744 |
559 |
+ doins -r vb2000/{checktst,checkvbtst,runallvb} |
560 |
+ docinto vb2000 |
561 |
+ dodoc vb2000/DOC/* |
562 |
+ fi |
563 |
+} |
564 |
+ |
565 |
+pkg_postinst() { |
566 |
+ echo |
567 |
+ einfo "Before you use GAMESS for any serious work you HAVE" |
568 |
+ einfo "to run the supplied test files located in" |
569 |
+ einfo "/usr/share/gamess/tests and check them thoroughly." |
570 |
+ einfo "Otherwise all scientific publications resulting from" |
571 |
+ einfo "your GAMESS runs should be immediately rejected :)" |
572 |
+ einfo "To do so copy the content of /usr/share/gamess/tests" |
573 |
+ einfo "to some temporary location and execute './runall'. " |
574 |
+ einfo "Then run the checktst script in the same directory to" |
575 |
+ einfo "validate the tests." |
576 |
+ einfo "Please consult TEST.DOC and the other docs!" |
577 |
+ |
578 |
+ if [[ ${FCOMP} == "ifort" ]]; then |
579 |
+ echo |
580 |
+ ewarn "IMPORTANT NOTE: We STRONGLY recommend to stay away" |
581 |
+ ewarn "from ifc-9.0 for now and use the ifc-8.1 series of" |
582 |
+ ewarn "compilers UNLESS you can run through ALL of the " |
583 |
+ ewarn "test cases (see above) successfully." |
584 |
+ fi |
585 |
+ |
586 |
+ echo |
587 |
+ einfo "If you want to run on more than a single CPU" |
588 |
+ einfo "you will have to acquaint yourself with the way GAMESS" |
589 |
+ einfo "does multiprocessor runs and adjust rungms according to" |
590 |
+ einfo "your target network architecture." |
591 |
+ echo |
592 |
+} |
593 |
|
594 |
diff --git a/sci-chemistry/gamess/metadata.xml b/sci-chemistry/gamess/metadata.xml |
595 |
index f52930757..7c7fbea32 100644 |
596 |
--- a/sci-chemistry/gamess/metadata.xml |
597 |
+++ b/sci-chemistry/gamess/metadata.xml |
598 |
@@ -10,8 +10,11 @@ |
599 |
<name>Gentoo Chemistry Project</name> |
600 |
</maintainer> |
601 |
<use> |
602 |
+ <flag name="msucc">Build Michigan State University CCT3 and CCSD3A methods. |
603 |
+ This will increase build time and memory requirements by multiple times</flag> |
604 |
<flag name="neo">Enable NEO for nuclear basis support</flag> |
605 |
<flag name="pax_kernel">Make this package work on PAX kernels</flag> |
606 |
<flag name="qmmm-tinker">Enable tinker qmmm code</flag> |
607 |
+ <flag name="vb2000">Enable Valence Bond method using VB2000 code</flag> |
608 |
</use> |
609 |
</pkgmetadata> |