| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| inherit eutils flag-o-matic fortran-2 java-pkg-opt-2 toolchain-funcs |
| |
| DESCRIPTION="Molecular modeling package that includes force fields, such as AMBER and CHARMM" |
| HOMEPAGE="http://dasher.wustl.edu/tinker/" |
| SRC_URI="http://dasher.wustl.edu/${PN}/downloads/${P}.tar.gz" |
| |
| SLOT="0" |
| LICENSE="Tinker" |
| KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" |
| IUSE="examples" |
| |
| DEPEND=" |
| >=virtual/jdk-1.6" |
| RDEPEND=" |
| >=sci-libs/fftw-3.2.2-r1[fortran,threads] |
| dev-libs/maloc |
| !dev-util/diffuse |
| >=virtual/jre-1.6" |
| |
| RESTRICT="mirror" |
| |
| S="${WORKDIR}"/${PN}/source |
| |
| pkg_setup() { |
| fortran-2_pkg_setup |
| java-pkg-opt-2_pkg_setup |
| tc-has-openmp || die "Please use an openmp capable compiler like gcc[openmp]" |
| } |
| |
| src_prepare() { |
| sed 's:strip:true:g' -i ../make/Makefile |
| [[ $(tc-getFC) =~ "ifort" ]] || epatch "${FILESDIR}"/${PV}-openmp.patch |
| cd .. && epatch "${FILESDIR}"/${P}-build.patch |
| } |
| |
| src_compile() { |
| local javalib= |
| for i in $(java-config -g LDPATH | sed 's|:| |g'); do |
| [[ -f ${i}/libjvm.so ]] && javalib=${i} |
| done |
| |
| # use dummy routines in pmpb.f instead of apbs calls |
| rm pmpb.c || die |
| |
| if [[ $(tc-getFC) =~ "gfortran" ]]; then |
| append-flags -fopenmp |
| _omplib="-lgomp" |
| else |
| append-flags -openmp |
| _omplib="-liomp5" |
| fi |
| |
| _fftwlib="$($(tc-getPKG_CONFIG) --libs fftw3 fftw3_threads)" |
| |
| emake \ |
| -f ../make/Makefile \ |
| F77="$(tc-getFC)" \ |
| CC="$(tc-getCC) -c" \ |
| F77FLAGS=-c \ |
| OPTFLAGS="${FFLAGS}" \ |
| LINKFLAGS="${LDFLAGS} -Wl,-rpath ${javalib}" \ |
| INCLUDEDIR="$(java-pkg_get-jni-cflags) -I${EPREFIX}/usr/include" \ |
| LIBS="-lmaloc -L${javalib} -ljvm ${_omplib} ${_fftwlib}" \ |
| all |
| |
| mkdir "${S}"/../bin || die |
| |
| emake \ |
| -f ../make/Makefile \ |
| BINDIR="${S}"/../bin \ |
| rename |
| } |
| |
| src_test() { |
| cd "${WORKDIR}"/${PN}/test/ |
| for test in *.run; do |
| einfo "Testing ${test} ..." |
| bash ${test} || die |
| done |
| } |
| |
| src_install() { |
| dobin "${WORKDIR}"/${PN}/perl/mdavg "${WORKDIR}"/${PN}/bin/* |
| |
| insinto /usr/share/${PN}/ |
| doins -r "${WORKDIR}"/${PN}/params |
| |
| dodoc \ |
| "${WORKDIR}"/${PN}/doc/{*.txt,*.pdf,0README} |
| |
| if use examples; then |
| insinto /usr/share/${P} |
| doins -r "${WORKDIR}"/${PN}/example |
| |
| doins -r "${WORKDIR}"/${PN}/test |
| fi |
| |
| } |