aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-chemistry/nwchem/nwchem-6.3.ebuild')
-rw-r--r--sci-chemistry/nwchem/nwchem-6.3.ebuild146
1 files changed, 146 insertions, 0 deletions
diff --git a/sci-chemistry/nwchem/nwchem-6.3.ebuild b/sci-chemistry/nwchem/nwchem-6.3.ebuild
new file mode 100644
index 000000000..380de67bb
--- /dev/null
+++ b/sci-chemistry/nwchem/nwchem-6.3.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+inherit eutils fortran-2 multilib python-single-r1 toolchain-funcs
+
+DATE="2013-05-17"
+
+DESCRIPTION="NWChem: Delivering High-Performance Computational Chemistry to Science"
+HOMEPAGE="http://www.nwchem-sw.org/index.php/Main_Page"
+SRC_URI="http://www.nwchem-sw.org/images/Nwchem-${PV}-src.${DATE}.tar.gz"
+
+LICENSE="ECL-2.0"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="mpi doc examples nwchem-tests python"
+
+RDEPEND="sys-fs/sysfsutils
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/fortran
+ app-shells/tcsh
+ mpi? ( virtual/mpi[fortran] )
+ doc? ( dev-texlive/texlive-latex
+ dev-tex/latex2html )"
+
+S="${WORKDIR}/${P}-src.${DATE}"
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/nwchem-6.1.1-makefile.patch \
+ "${FILESDIR}"/nwchem-6.1.1-nwchemrc.patch \
+ "${FILESDIR}"/nwchem-6.1.1-adjust-dir-length.patch
+ use python && epatch "${FILESDIR}"/nwchem-6.1.1-python_makefile.patch
+ use doc && epatch "${FILESDIR}"/nwchem-6.3-html_doc.patch
+
+ sed \
+ -e "s:DBASIS_LIBRARY=\"'\$(SRCDIR)'\":DBASIS_LIBRARY=\"'${EPREFIX}/usr/share/NWChem'\":g" \
+ -i src/basis/MakeFile src/basis/GNUmakefile || die
+ sed \
+ -e "s:DNWPW_LIBRARY=\"'\$(SRCDIR)'\":DNWPW_LIBRARY=\"'${EPREFIX}/usr/share/NWChem'\":g" \
+ -i src/nwpw/libraryps/GNUmakefile || die
+ sed \
+ -e "s:-DCOMPILATION_DIR=\"'\$(TOPDIR)'\":-DCOMPILATION_DIR=\"''\":g" \
+ -i src/GNUmakefile src/MakeFile || die
+
+ if [[ $(tc-getFC) == *-*-*-*-gfortran ]]; then
+ sed \
+ -e "s:ifneq (\$(FC),gfortran):ifneq (\$(FC),$(tc-getFC)):g" \
+ -e "s:ifeq (\$(FC),gfortran):ifeq (\$(FC),$(tc-getFC)):g" \
+ -i src/config/makefile.h || die
+ fi
+}
+
+src_compile() {
+ export USE_SUBGROUPS=yes
+ if use mpi ; then
+ export MSG_COMMS=MPI
+ export USE_MPI=yes
+ export MPI_LOC=/usr
+ export MPI_INCLUDE=$MPI_LOC/include
+ export MPI_LIB=$MPI_LOC/$(get_libdir)
+ export LIBMPI="$(mpif90 -showme:link)"
+ fi
+ if [ "$ARCH" = "amd64" ]; then
+ export NWCHEM_TARGET=LINUX64
+ elif [ "$ARCH" = "ia64" ]; then
+ export NWCHEM_TARGET=LINUX64
+ elif [ "$ARCH" = "x86" ]; then
+ export NWCHEM_TARGET=LINUX
+ elif [ "$ARCH" = "ppc" ]; then
+ export NWCHEM_TARGET=LINUX
+ else
+ die "Unknown architecture"
+ fi
+ if use python ; then
+ if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "ia64" ]; then
+ export USE_PYTHON64=yes
+ fi
+ export PYTHONHOME=/usr
+ export PYTHONVERSION=$(eselect python show|awk -Fpython '{ print $2 }')
+ export PYTHONPATH="./:${S}/contrib/python/"
+ export NWCHEM_MODULES="all python"
+ else
+ export NWCHEM_MODULES="all"
+ fi
+
+ cd src
+ emake \
+ DIAG=PAR \
+ FC=$(tc-getFC) \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ NWCHEM_TOP="${S}" \
+ NWCHEM_EXECUTABLE="${S}/bin/${NWCHEM_TARGET}/nwchem"
+
+ if use doc; then
+ cd "${S}"/doc
+ emake \
+ DIAG=PAR \
+ NWCHEM_TOP="${S}" \
+ pdf html
+ fi
+}
+
+src_install() {
+ dobin bin/${NWCHEM_TARGET}/nwchem
+
+ insinto /usr/share/NWChem/basis/
+ doins -r src/basis/libraries src/data
+ insinto /usr/share/NWChem/nwpw
+ doins -r src/nwpw/libraryps
+
+ insinto /etc
+ doins nwchemrc
+
+ use examples && \
+ insinto /usr/share/NWChem/ && \
+ doins -r examples
+
+ use nwchem-tests && \
+ insinto /usr/share/NWChem && \
+ doins -r QA/tests
+
+ use doc && \
+ insinto /usr/share/doc/"${P}" && \
+ doins -r doc/nwahtml && \
+ doins -r html
+
+}
+
+pkg_postinst() {
+ echo
+ elog "The user will need to link \$HOME/.nwchemrc to /etc/nwchemrc"
+ elog "or copy it in order to tell NWChem the right position of the"
+ elog "basis library and other necessary data."
+ echo
+}