diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /sci-chemistry/gamess | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sci-chemistry/gamess')
-rw-r--r-- | sci-chemistry/gamess/Manifest | 2 | ||||
-rw-r--r-- | sci-chemistry/gamess/files/gamess-20110811.1.gentoo.patch | 263 | ||||
-rw-r--r-- | sci-chemistry/gamess/files/gamess-checktst.patch | 21 | ||||
-rw-r--r-- | sci-chemistry/gamess/files/gamess-qmmm-tinker-fix-idate.patch | 20 | ||||
-rw-r--r-- | sci-chemistry/gamess/gamess-20110811.1.ebuild | 337 | ||||
-rw-r--r-- | sci-chemistry/gamess/metadata.xml | 14 |
6 files changed, 657 insertions, 0 deletions
diff --git a/sci-chemistry/gamess/Manifest b/sci-chemistry/gamess/Manifest new file mode 100644 index 000000000000..d6cb7f6ac130 --- /dev/null +++ b/sci-chemistry/gamess/Manifest @@ -0,0 +1,2 @@ +DIST gamess-20110811.1.tar.gz 21105973 SHA256 b7b7af0eb141c140da31bcd9ef29fbafd82fbe45c087cadd7948d4c0a3cefe57 +DIST tinker.tar.Z 1902051 SHA256 7c52454ade7dd81d1b70a7e7722eda3672c644a3ba67ab444824a0212b4a7a8c diff --git a/sci-chemistry/gamess/files/gamess-20110811.1.gentoo.patch b/sci-chemistry/gamess/files/gamess-20110811.1.gentoo.patch new file mode 100644 index 000000000000..7bf5797bf513 --- /dev/null +++ b/sci-chemistry/gamess/files/gamess-20110811.1.gentoo.patch @@ -0,0 +1,263 @@ +diff -urN gamess.orig/comp gamess/comp +--- gamess.orig/comp 2011-08-11 17:37:48.000000000 +0200 ++++ gamess/comp 2011-10-11 15:17:23.349829478 +0200 +@@ -1444,7 +1444,7 @@ + # g77 does not support FORTRAN logical units above 99, or 128 bit math. + # + case g77: +- set OPT = '-O2' ++ set gentoo-OPT = '-O2' + if ($MODULE == ormas1) set OPT='-O2 -fno-move-all-movables' # RH9, g77 3.3 + if ($MODULE == zheev) set OPT='-O0' # defensive compiling + if (($MODULE == qeigen) || ($MODULE == int2c)) then +@@ -1474,7 +1474,7 @@ + # -std=legacy suppresses warnings about use of f77 constructs. + # + case gfortran: +- set OPT='-O2' ++ set gentoo-OPT = '-O2' + if ($MODULE == zheev) set OPT='-O0' # defensive compiling + if ($MODULE == pcmcv2) set OPT='-O1' # EFP+CPCM, ala Francois, v4.1.2 + if (($MODULE == qeigen) || ($MODULE == int2c)) then +@@ -1500,7 +1500,7 @@ + # optimizations in 32 bit mode, as a function of the ifort version. + # + case ifort: +- set OPT = '-O3' ++ set gentoo-OPT = '-O2' + if ($MODULE == delocl) set OPT='-O0' # from Cheol + if ($MODULE == prpamm) set OPT='-O0' # for exam13 + if ($MODULE == zheev) set OPT='-O0' +@@ -1617,7 +1617,7 @@ + case gfortran: + # -finit-real=<zero|inf|-inf|nan> could be interesting debug opt + # -fno-automatic forces static storage of all local variables +- set OPT='-O2' ++ set gentoo-OPT = '-O2' + if (".$GMS_DEBUG_FLAGS" != .) set OPT="$GMS_DEBUG_FLAGS" + if ($MODULE == zheev) set OPT='-O0' # defensive compiling + if (($MODULE == qeigen) || ($MODULE == int2c)) then +@@ -1648,7 +1648,7 @@ + # -WB means warn but don't fail on out-of-bounds array references + # -ftz flushes underflow results to zero + # +- set OPT = '-O2' ++ set gentoo-OPT = '-O2' + if (".$GMS_DEBUG_FLAGS" != .) set OPT="$GMS_DEBUG_FLAGS" + # alas, I'm so tired of hearing about so many versions failing to + # diagonalize, that this time critical code is run w/o optimization. +diff -urN gamess.orig/compall gamess/compall +--- gamess.orig/compall 2011-05-17 22:53:33.000000000 +0200 ++++ gamess/compall 2011-10-11 12:13:30.041087251 +0200 +@@ -84,12 +84,11 @@ + endif + endif + if ($TARGET == linux32) set extraflags='-DLINUX32' +-if ($TARGET == linux64) then ++if ($TARGET == linux64) then ++ set chip=`uname -m` + # Ubuntu uses the non-standard -m flag, its -p replies "unknown" +- set chip=`uname -p` +- if ($chip == unknown) set chip=`uname -m` +- if ($chip == x86_64) set extraflags='-DLINUX64 -m64' +- if ($chip == ia64) set extraflags='-DLINUX64' # this always 64 bits ++ if ($chip == x86_64) set extraflags='-DLINUX64 -m64' ++ if ($chip == ia64) set extraflags='-DLINUX64' # this always 64 bits + endif + if ($TARGET == mac32) set extraflags='-DLINUX32' + if ($TARGET == mac64) set extraflags='-DLINUX64 -m64 -I/usr/include/malloc' +diff -urN gamess.orig/ddi/compddi gamess/ddi/compddi +--- gamess.orig/ddi/compddi 2011-02-15 21:31:30.000000000 +0100 ++++ gamess/ddi/compddi 2011-10-11 12:23:45.513796580 +0200 +@@ -634,7 +634,7 @@ + + set FORTRAN=$GMS_FORTRAN # might be g77, gfortran, ifort, pgf77, f2c + +- set CC = 'gcc' ++ set gentoo-CC = 'gcc' + set CFLAGS = "-DLINUX -O3 -fstrict-aliasing -I./" + set CLIBS = "-lpthread" + +@@ -687,7 +687,7 @@ + set ARCH='-m64' + if (`uname -p` == ia64) set ARCH='' + +- set CC = 'gcc' ++ set gentoo-CC = 'gcc' + set CFLAGS = "-DLINUX $ARCH -O3 -fstrict-aliasing -I./" + set CLIBS = "-lpthread" + +diff -urN gamess.orig/ddi/kickoff/ddikick.c gamess/ddi/kickoff/ddikick.c +--- gamess.orig/ddi/kickoff/ddikick.c 2008-05-06 12:16:12.000000000 +0200 ++++ gamess/ddi/kickoff/ddikick.c 2011-10-11 12:25:11.862714681 +0200 +@@ -105,7 +105,7 @@ + remoteshell = argv[++i]; + } else { + if((remoteshell = getenv("DDI_RSH")) == NULL) { +- remoteshell = (char *) strdup("rsh"); ++ remoteshell = (char *) strdup("ssh"); + } + } + +diff -urN gamess.orig/lked gamess/lked +--- gamess.orig/lked 2011-08-11 17:41:02.000000000 +0200 ++++ gamess/lked 2011-10-11 12:26:38.564634821 +0200 +@@ -53,7 +53,7 @@ + # + # 3. optional Nuclear-Electronic Orbital method, using NEO code + # +-set NEO=false ++set NEO=true + # + # 4. optional Nvidia/CUDA code, for closed shell SCF Fock construction + # see ~/gamess/libcchem/aaa.readme.1st for more information +@@ -356,17 +356,17 @@ + switch ($GMS_FORTRAN) + case g77: + set LDR='g77' +- set LDOPTS=' ' # add '-Wl,-M' to see load map ++ set gentoo-LDOPTS=' ' # add '-Wl,-M' to see load map + set FORTLIBS=' ' + breaksw + case gfortran: + set LDR='gfortran' +- set LDOPTS=' ' ++ set gentoo-LDOPTS=' ' + set FORTLIBS=' ' + breaksw + case ifort: + set LDR='ifort' +- set LDOPTS=' ' # add '-Wl,-M' to see load map ++ set gentoo-LDOPTS=' ' # add '-Wl,-M' to see load map + set FORTLIBS='-Vaxlib' + breaksw + case pgf77: +@@ -376,7 +376,7 @@ + breaksw + case f2c: + set LDR='gcc' +- set LDOPTS=' ' ++ set gentoo-LDOPTS=' ' + set FORTLIBS='-lf2c -lm' + breaksw + default: +@@ -427,12 +427,7 @@ + # Otherwise, attempt a link against shared object libs. + # See the 64 bit Atlas below for a way to fix the linker's + # not being able to locate -lf77blas, if that happens. +- if (-e $GMS_MATHLIB_PATH/libf77blas.a) then +- set MATHLIBS="$GMS_MATHLIB_PATH/libf77blas.a" +- set MATHLIBS="$MATHLIBS $GMS_MATHLIB_PATH/libatlas.a" +- else +- set MATHLIBS="-L$GMS_MATHLIB_PATH -lf77blas -latlas" +- endif ++ set MATHLIBS=`${PKG_CONFIG} --libs blas` + set BLAS=' ' + breaksw + +@@ -466,12 +461,12 @@ + switch ($GMS_FORTRAN) + case gfortran: + set LDR='gfortran' +- set LDOPTS=' ' ++ set gentoo-LDOPTS=' ' + set FORTLIBS=' ' + breaksw + case ifort: + set LDR='ifort' +- set LDOPTS='-i8' # -Wl,-M generates a load map ++ set gentoo-LDOPTS=' ' # -Wl,-M generates a load map + # this auxiliary library seems to have disappeared in ifort 10 + set FORTLIBS=' ' + if($GMS_IFORT_VERNO < 10) set FORTLIBS='-Vaxlib' +@@ -556,12 +551,7 @@ + # ln -s liblapack_atlas.so.3.0 liblapack.so + # ln -s liblapack.so.3.0 liblapack.so + # It is strange the RPM's don't do these soft links for us. +- if (-e $GMS_MATHLIB_PATH/libf77blas.a) then +- set MATHLIBS="$GMS_MATHLIB_PATH/libf77blas.a" +- set MATHLIBS="$MATHLIBS $GMS_MATHLIB_PATH/libatlas.a" +- else +- set MATHLIBS="-L$GMS_MATHLIB_PATH -lf77blas -latlas" +- endif ++ set MATHLIBS=`${PKG_CONFIG} --libs blas` + set BLAS=' ' + breaksw + +diff -urN gamess.orig/runall gamess/runall +--- gamess.orig/runall 2009-02-28 00:57:18.000000000 +0100 ++++ gamess/runall 2011-10-11 12:27:32.195586568 +0200 +@@ -10,7 +10,6 @@ + # + # Only the following two lines need to be customized: + # +-chdir /u1/mike/gamess + set VERNO=00 + # + # Loop over all Ntest jobs supplied with GAMESS +@@ -27,7 +26,7 @@ + gms -v $VERNO -q ti -l exam$NUM.log exam$NUM + sleep 5 + else +- ./rungms exam$NUM $VERNO 1 >& exam$NUM.log ++ rungms exam$NUM $VERNO 1 >& exam$NUM.log + endif + @ i++ + end +diff -urN gamess.orig/rungms gamess/rungms +--- gamess.orig/rungms 2011-08-04 21:03:11.000000000 +0200 ++++ gamess/rungms 2011-10-11 12:30:05.244448126 +0200 +@@ -55,7 +55,7 @@ + # one for LoadLeveler "ll-gms" on the IBM SP line. + # + set TARGET=sockets +-set SCR=/scr/$USER ++set SCR=`pwd` + # + set JOB=$1 # name of the input file xxx.inp, give only the xxx part + set VERNO=$2 # revision number of the executable created by 'lked' step +@@ -144,7 +144,7 @@ + # used by the NEO method. See NEO's documentation for more details. + # + set echo +-setenv AUXDATA ~mike/gamess/auxdata ++setenv AUXDATA /usr/share/gamess + setenv EXTBAS /dev/null + setenv NUCBAS /dev/null + setenv POSBAS /dev/null +@@ -153,12 +153,12 @@ + setenv MCPPATH $AUXDATA/MCP + setenv BASPATH $AUXDATA/BASES + setenv QUANPOL $AUXDATA/QUANPOL +-setenv MAKEFP ~$USER/scr/$JOB.efp +-setenv GAMMA ~$USER/scr/$JOB.gamma +-setenv TRAJECT ~$USER/scr/$JOB.trj +-setenv RESTART ~$USER/scr/$JOB.rst ++setenv MAKEFP $SCR/$JOB.efp ++setenv GAMMA $SCR/$JOB.gamma ++setenv TRAJECT $SCR/$JOB.trj ++setenv RESTART $SCR/$JOB.rst + setenv INPUT $SCR/$JOB.F05 +-setenv PUNCH ~$USER/scr/$JOB.dat ++setenv PUNCH $SCR/$JOB.dat + setenv AOINTS $SCR/$JOB.F08 + setenv MOINTS $SCR/$JOB.F09 + setenv DICTNRY $SCR/$JOB.F10 +@@ -347,7 +347,7 @@ + if (null$4 == null) set ELGNAME=ELGFILE + set echo + setenv AOINTS $SCR/$ELGNAME.F08 +- setenv ELGDOS ~$USER/scr/$JOB.ldos ++ setenv ELGDOS $SCR/$JOB.ldos + setenv ELGDAT $SCR/$ELGNAME.F71 + setenv ELGPAR $SCR/$ELGNAME.F72 + setenv ELGCUT $SCR/$ELGNAME.F74 +@@ -500,7 +500,7 @@ + if ($os == AIX) set GMSPATH=/u1/mike/gamess + if ($os == Darwin) set GMSPATH=/Users/mike/desktop/gamess + if ($os == HP-UX) set GMSPATH=/zr/mike/gamess +- if ($os == Linux) set GMSPATH=/cu/mike/gamess ++ if ($os == Linux) set GMSPATH=/usr/bin + if ($os == OSF1) set GMSPATH=/in/mike/gamess + if ($os == SunOS) set GMSPATH=/hf/mike/gamess + # special compilation for Sun E450 uSPARC (uname also= SunOS) diff --git a/sci-chemistry/gamess/files/gamess-checktst.patch b/sci-chemistry/gamess/files/gamess-checktst.patch new file mode 100644 index 000000000000..9fc1547e4540 --- /dev/null +++ b/sci-chemistry/gamess/files/gamess-checktst.patch @@ -0,0 +1,21 @@ +--- gamess.orig/tools/checktst/checktst 2008-12-30 16:33:09.000000000 +0100 ++++ gamess/tools/checktst/checktst 2011-10-11 22:06:26.019798622 +0200 +@@ -6,7 +6,6 @@ + # + # Only the path name in the very next line needs to be customized. + # +-set GMSPATH=~/gamess + + # The Ntest outputs are assumed to be named exam01.log, exam02.log, ... + # but the user will be allowed to specify the directory containing them. +@@ -66,8 +65,8 @@ + setenv tolW 0.1 + setenv tolX 0.00001 + +-set script=$GMSPATH/tools/checktst/exam +-setenv chkabs $GMSPATH/tools/checktst/chkabs ++set script=./exam ++setenv chkabs ./chkabs + + # If we don't see the message about GAMESS exiting normally, + # then there is surely a mistake, and we want to focus the diff --git a/sci-chemistry/gamess/files/gamess-qmmm-tinker-fix-idate.patch b/sci-chemistry/gamess/files/gamess-qmmm-tinker-fix-idate.patch new file mode 100644 index 000000000000..34f291382d41 --- /dev/null +++ b/sci-chemistry/gamess/files/gamess-qmmm-tinker-fix-idate.patch @@ -0,0 +1,20 @@ +diff -urN gamess/tinker.orig/Libtad.f gamess/tinker/Libtad.f +--- gamess/tinker.orig/Libtad.f 2010-05-12 21:41:56.000000000 +0400 ++++ gamess/tinker/Libtad.f 2010-12-08 01:05:31.000000000 +0300 +@@ -1332,11 +1332,15 @@ + c and for Macintosh under Absoft Pro Fortran 5.0 + c + integer hms(3) ++ integer tarray(3) + call itime (hms) + hour = hms(1) + minute = hms(2) + second = hms(3) +- call idate (month,day,year) ++ call idate (tarray) ++ month = tarray(1) ++ day = tarray(2) ++ year = tarray(3) + c + c code for IBM RS/6000 under AIX appends an underscore + c diff --git a/sci-chemistry/gamess/gamess-20110811.1.ebuild b/sci-chemistry/gamess/gamess-20110811.1.ebuild new file mode 100644 index 000000000000..363353adb793 --- /dev/null +++ b/sci-chemistry/gamess/gamess-20110811.1.ebuild @@ -0,0 +1,337 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +inherit eutils fortran-2 flag-o-matic pax-utils toolchain-funcs + +DESCRIPTION="A powerful quantum chemistry package" +LICENSE="gamess" +HOMEPAGE="http://www.msg.chem.iastate.edu/GAMESS/GAMESS.html" +SRC_URI=" + ${P}.tar.gz + qmmm-tinker? ( tinker.tar.Z )" + +SLOT="0" +# NOTE: PLEASE do not stabilize gamess. It does not make sense +# since the tarball has fetch restrictions and upstream only +# provides the latest version. In other words: As soon as a +# new version comes out the stable version will be useless since +# users can not get at the tarball any more. +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="mpi neo pax_kernel qmmm-tinker" + +CDEPEND=" + app-shells/tcsh + mpi? ( virtual/mpi ) + virtual/blas" +DEPEND="${CDEPEND} + virtual/pkgconfig" +RDEPEND="${CDEPEND} + net-misc/openssh" + +S="${WORKDIR}/${PN}" + +RESTRICT="fetch" + +GAMESS_DOWNLOAD="http://www.msg.ameslab.gov/GAMESS/License_Agreement.html" +GAMESS_VERSION="1 AUG 2011 (R1)" + +pkg_nofetch() { + echo + elog "Please download ${PN}-current.tar.gz from" + elog "${GAMESS_DOWNLOAD}." + elog "Be sure to select the version ${GAMESS_VERSION} tarball!!" + elog "Then move the tarball to" + elog "${DISTDIR}/${P}.tar.gz" + if use qmmm-tinker ; then + elog "Also download http://www.msg.ameslab.gov/GAMESS/tinker.tar.Z" + elog "and place tinker.tar.Z to ${DISTDIR}" + fi + echo +} + +get_fcomp() { + case $(tc-getFC) in + *gfortran* ) + FCOMP="gfortran" ;; + ifort ) + FCOMP="ifc" ;; + * ) + FCOMP=$(tc-getFC) ;; + esac +} + +pkg_setup() { + fortran-2_pkg_setup + get_fcomp + # currently amd64 is only supported with gfortran + if [[ "${ARCH}" == "amd64" ]] && [[ ${FCOMP} != *gfortran* ]]; + then die "You will need gfortran to compile gamess on amd64" + fi + + # note about qmmm-tinker + if use qmmm-tinker; then + einfo "By default MM subsistem is restricted to 1000 atoms" + einfo "if you want larger MM subsystems then you should set" + einfo "QMMM_GAMESS_MAXMM variable to needed value in your make.conf" + einfo "By default maximum number of atom classes types and size of" + einfo "hessian are restricted to 250, 500 and 1000000 respectively" + einfo "If you want larger sizes set:" + einfo "QMMM_GAMESS_MAXCLASS" + einfo "QMMM_GAMESS_MAXCTYP" + einfo "QMMM_GAMESS_MAXHESS" + einfo "in your make.conf" + fi + + #note about mpi + if use mpi; then + ewarn "" + ewarn "You should adjust rungms script for your mpi implentation" + ewarn "because deafult one will not work" + ewarn "" + fi +} + +src_unpack() { + unpack ${A} + + if use qmmm-tinker; then + mv tinker gamess/ || die "failed to move tinker directory" + fi +} + +src_prepare() { + tc-export PKG_CONFIG + # apply LINUX-arch patches to gamess makesfiles + epatch "${FILESDIR}/${P}.gentoo.patch" + epatch "${FILESDIR}/${PN}-checktst.patch" + # select arch + # NOTE: please leave lked alone; it should be good as is!! + cd "${S}" + local active_arch; + if [[ "${ARCH}" == "amd64" ]]; then + active_arch="linux64"; + else + active_arch="linux32"; + fi + + # for hardened-gcc let't turn off ssp, since it breakes + # a few routines + if use pax_kernel && [[ ${FCOMP} == g77 ]]; then + FFLAGS="${FFLAGS} -fno-stack-protector-all" + fi + + # Enable mpi stuff + if use mpi; then + sed -e "s:set COMM = sockets:set COMM = mpi:g" \ + -i ddi/compddi || die "Enabling mpi build failed" + sed -e "s:MPI_INCLUDE_PATH = ' ':MPI_INCLUDE_PATH = '-I/usr/include ':g" \ + -i ddi/compddi || die "Enabling mpi build failed" + sed -e "s:MSG_LIBRARIES='../ddi/libddi.a -lpthread':MSG_LIBRARIES='../ddi/libddi.a -lmpi -lpthread':g" \ + -i lked || die "Enabling mpi build failed" + fi + + # enable NEO + if use neo; then + sed -e "s:NEO=false:NEO=true:" -i compall lked || \ + die "Failed to enable NEO code" + else + sed -e "s:NEO=true:NEO=false:" -i compall lked || \ + die "Failed to disable NEO code" + fi + # enable GAMESS-qmmm + if use qmmm-tinker; then + epatch "${FILESDIR}/${PN}-qmmm-tinker-fix-idate.patch" + sed -e "s:TINKER=false:TINKER=true:" -i compall lked || \ + die "Failed to enable TINKER code" + if [ "x$QMMM_GAMESS_MAXMM" == "x" ]; then + einfo "No QMMM_GAMESS_MAXMM set. Using default value = 1000" + else + einfo "Setting QMMM_GAMESS_MAXMM to $QMMM_GAMESS_MAXMM" + sed -e "s:maxatm=1000:maxatm=$QMMM_GAMESS_MAXMM:g" \ + -i tinker/sizes.i \ + || die "Setting QMMM_GAMESS_MAXMM failed" + sed -e "s:MAXATM=1000:MAXATM=$QMMM_GAMESS_MAXMM:g" \ + -i source/inputb.src \ + || die "Setting QMMM_GAMESS_MAXMM failed" + fi + if [ "x$QMMM_GAMESS_MAXCLASS" == "x" ]; then + einfo "No QMMM_GAMESS_MAXMM set. Using default value = 250" + else + sed -e "s:maxclass=250:maxclass=$QMMM_GAMESS_MAXCLASS:g" \ + -i tinker/sizes.i \ + || die "Setting QMMM_GAMESS_MAXCLASS failed" + fi + if [ "x$QMMM_GAMESS_MAXCTYP" == "x" ]; then + einfo "No QMMM_GAMESS_MAXCTYP set. Using default value = 500" + else + sed -e "s:maxtyp=500:maxtyp=$QMMM_GAMESS_MAXCTYP:g" \ + -i tinker/sizes.i \ + || die "Setting QMMM_GAMESS_MAXCTYP failed" + fi + if [ "x$QMMM_GAMESS_MAXHESS" == "x" ]; then + einfo "No QMMM_GAMESS_MAXHESS set. Usingdefault value = 1000000" + else + sed -e "s:maxhess=1000000:maxhess=$QMMM_GAMESS_MAXHESS:g" \ + -i tinker/sizes.i \ + || die "Setting QMMM_GAMESS_MAXHESS failed" + fi + fi + # greate proper activate sourcefile + cp "./tools/actvte.code" "./tools/actvte.f" || \ + die "Failed to create actvte.f" + sed -e "s/^\*UNX/ /" -i "./tools/actvte.f" || \ + die "Failed to perform UNX substitutions in actvte.f" + + # fix GAMESS' compall script to use proper CC + sed -e "s|\$CCOMP -c \$extraflags source/zunix.c|$(tc-getCC) -c \$extraflags source/zunix.c|" \ + -i compall || die "Failed setting up compall script" + + # insert proper FFLAGS into GAMESS' comp makefile + # in case we're using ifc let's strip all the gcc + # specific stuff + if [[ ${FCOMP} == "ifort" ]]; then + sed -e "s/gentoo-OPT = '-O2'/OPT = '${FFLAGS} -quiet'/" \ + -i comp || die "Failed setting up comp script" + elif ! use x86; then + sed -e "s/-malign-double //" \ + -e "s/gentoo-OPT = '-O2'/OPT = '${FFLAGS}'/" \ + -i comp || die "Failed setting up comp script" + else + sed -e "s/gentoo-OPT = '-O2'/OPT = '${FFLAGS}'/" \ + -i comp || die "Failed setting up comp script" + fi + + # fix up GAMESS' linker script; + sed -e "s/gentoo-LDOPTS=' '/LDOPTS='${LDFLAGS}'/" \ + -i lked || die "Failed setting up lked script" + # fix up GAMESS' ddi TCP/IP socket build + sed -e "s/gentoo-CC = 'gcc'/CC = '$(tc-getCC)'/" \ + -i ddi/compddi || die "Failed setting up compddi script" + # Creating install.info + cat > install.info <<-EOF + #!/bin/csh + setenv GMS_PATH $WORKDIR/gamess + setenv GMS_TARGET $active_arch + setenv GMS_FORTRAN $FCOMP + setenv GMS_MATHLIB atlas + setenv GMS_MATHLIB_PATH /usr/$(get_libdir)/atlas + setenv GMS_DDI_COMM sockets + EOF + +} + +src_compile() { + # build actvte + cd "${S}"/tools + ${FCOMP} -o actvte.x actvte.f || \ + die "Failed to compile actvte.x" + + # for hardened (PAX) users and ifc we need to turn + # MPROTECT off + if [[ ${FCOMP} == "ifort" ]] && use pax_kernel; then + pax-mark -PemRxS actvte.x + fi + + # build gamess + cd "${S}" + ./compall || die "compall failed" + + # build the ddi TCP/IP socket stuff + cd ${S}/"ddi" + ./compddi || die "compddi failed" + + # finally, link it all together + cd "${S}" + ./lked || die "lked failed" + + # for hardened (PAX) users and ifc we need to turn + # MPROTECT off + if [[ ${FCOMP} == "ifort" ]] && use pax_kernel; then + pax-mark -PemRxS ${PN}.00.x + fi +} + +src_install() { + # the executables + dobin ${PN}.00.x rungms \ + || die "Failed installing binaries" + if use !mpi; then + dobin ddi/ddikick.x \ + || die "Failed installing binaries" + fi + + # the docs + dodoc *.DOC qmnuc/*.DOC || die "Failed installing docs" + + # install ericftm + insinto /usr/share/${PN} + doins auxdata/ericfmt.dat || die "Failed installing ericfmt.dat" + + # install mcpdata + insinto /usr/share/${PN}/MCP + doins auxdata/MCP/* || die "Failed installing MCP" + + # install BASES + insinto /usr/share/${PN}/BASES + doins auxdata/BASES/* || die "Failed installing BASES" + + # install QUANPOL + insinto /usr/share/${PN}/QUANPOL + doins auxdata/QUANPOL/* || die "Failed installing QUANPOL" + + # install tinker params in case of qmmm + if use qmmm-tinker ; then + dodoc tinker/simomm.doc || die "Failed installing docs" + insinto /usr/share/${PN} + doins -r tinker/params51 || die "Failed to install Tinker params" + fi + + # install the tests the user should run, and + # fix up the runscript; also grab a copy of rungms + # so the user is ready to run the tests + insinto /usr/share/${PN}/tests + insopts -m0644 + doins tests/* || die "Failed installing tests" + insopts -m0744 + doins runall || die "Failed installing tests" + doins tools/checktst/checktst tools/checktst/chkabs || \ + die "Failed to install main test checker" + doins tools/checktst/exam* || \ + die "Failed to install individual test files" + + insinto /usr/share/${PN}/neotests + insopts -m0644 + doins -r qmnuc/neotests/* || die "Failed to install NEO tests" +} + +pkg_postinst() { + echo + einfo "Before you use GAMESS for any serious work you HAVE" + einfo "to run the supplied test files located in" + einfo "/usr/share/gamess/tests and check them thoroughly." + einfo "Otherwise all scientific publications resulting from" + einfo "your GAMESS runs should be immediately rejected :)" + einfo "To do so copy the content of /usr/share/gamess/tests" + einfo "to some temporary location and execute './runall'. " + einfo "Then run the checktst script in the same directory to" + einfo "validate the tests." + einfo "Please consult TEST.DOC and the other docs!" + + if [[ ${FCOMP} == "ifort" ]]; then + echo + ewarn "IMPORTANT NOTE: We STRONGLY recommend to stay away" + ewarn "from ifc-9.0 for now and use the ifc-8.1 series of" + ewarn "compilers UNLESS you can run through ALL of the " + ewarn "test cases (see above) successfully." + fi + + echo + einfo "If you want to run on more than a single CPU" + einfo "you will have to acquaint yourself with the way GAMESS" + einfo "does multiprocessor runs and adjust rungms according to" + einfo "your target network architecture." + echo +} diff --git a/sci-chemistry/gamess/metadata.xml b/sci-chemistry/gamess/metadata.xml new file mode 100644 index 000000000000..65e218a68820 --- /dev/null +++ b/sci-chemistry/gamess/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>alexxy@gentoo.org</email> + <name>Alexey Shvetsov</name> + </maintainer> + <herd>sci-chemistry</herd> + <use> + <flag name="neo">Enable NEO for nuclear basis support</flag> + <flag name="pax_kernel">Make this package work on PAX kernels</flag> + <flag name="qmmm-tinker">Enable tinker qmmm code</flag> + </use> +</pkgmetadata> |