diff options
Diffstat (limited to 'sci-chemistry/pdb2pqr/pdb2pqr-1.7.0-r2.ebuild')
-rw-r--r-- | sci-chemistry/pdb2pqr/pdb2pqr-1.7.0-r2.ebuild | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/sci-chemistry/pdb2pqr/pdb2pqr-1.7.0-r2.ebuild b/sci-chemistry/pdb2pqr/pdb2pqr-1.7.0-r2.ebuild new file mode 100644 index 000000000000..85b3f6e4b19f --- /dev/null +++ b/sci-chemistry/pdb2pqr/pdb2pqr-1.7.0-r2.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/pdb2pqr/pdb2pqr-1.7.0-r2.ebuild,v 1.1 2012/05/11 07:42:54 jlec Exp $ + +EAPI=4 + +PYTHON_DEPEND="2:2.5" +SUPPORT_PYTHON_ABIS="1" +PYTHON_EXPORT_PHASE_FUNCTIONS="1" +RESTRICT_PYTHON_ABIS="2.4 3.* 2.7-pypy-*" + +inherit autotools eutils fortran-2 flag-o-matic python toolchain-funcs versionator + +MY_PV=$(get_version_component_range 1-2) +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="An automated pipeline for performing Poisson-Boltzmann electrostatics calculations" +LICENSE="BSD" +HOMEPAGE="http://pdb2pqr.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" + +SLOT="0" +IUSE="doc examples opal +pdb2pka" +KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + virtual/fortran + dev-python/numpy + sci-chemistry/openbabel + opal? ( dev-python/zsi ) + pdb2pka? ( sci-chemistry/apbs[python,-mpi] )" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + if [[ -z ${MAXATOMS} ]]; then + einfo "If you like to have support for more then 10000 atoms," + einfo "export MAXATOMS=\"your value\"" + else + einfo "Allow usage of ${MAXATOMS} during calculations" + fi + python_pkg_setup +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-1.4.0-ldflags.patch \ + "${FILESDIR}"/${PN}-1.4.0-automagic.patch \ + "${FILESDIR}"/${PV}-install.patch + sed \ + -e '50,200s:CWD:DESTDIR:g' \ + -i Makefile.am || die + + python_src_prepare + + preparation() { + sed \ + -e "s:python\$PY_VERSION:$(PYTHON):g" \ + -i configure.ac || die + + eautoreconf + } + python_execute_function -s preparation + + tc-export CC +} + +src_configure() { + # we need to compile the *.so as pic + append-flags -fPIC + FFLAGS="${FFLAGS} -fPIC" + + configuration() { + # Avoid automagic to numeric + econf \ + --enable-propka \ + --with-max-atoms=${MAXATOMS:-10000} \ + $(use_enable pdb2pka) \ + $(use_with opal) \ + NUMPY="${EPREFIX}/$(python_get_sitedir)" \ + F77="$(tc-getFC)" + } + python_execute_function -s configuration +} + +src_compile() { + python_execute_function -d -s +} + +src_test() { + testing() { + emake -j1 test + } + python_execute_function -s testing +} + +src_install() { + installation() { + dodir $(python_get_sitedir)/${PN} + emake -j1 DESTDIR="${ED}$(python_get_sitedir)/${PN}" \ + PREFIX="" install + + INPATH="$(python_get_sitedir)/${PN}" + + # generate pdb2pqr wrapper + cat >> "${T}"/${PN}-$(python_get_version) <<-EOF + #!/bin/sh + $(PYTHON) ${EPREFIX}${INPATH}/${PN}.py \$* + EOF + + cat >> "${T}"/pdb2pka-$(python_get_version) <<-EOF + #!/bin/sh + $(PYTHON) ${EPREFIX}${INPATH}/pdb2pka/pka.py \$* + EOF + + dobin "${T}"/{${PN},pdb2pka}-$(python_get_version) + + insinto "${INPATH}" && doins __init__.py + + exeinto "${INPATH}" && doexe ${PN}.py + + insinto "${INPATH}"/dat && doins dat/* + + exeinto "${INPATH}"/extensions && doexe extensions/* + + insinto "${INPATH}"/src && doins src/*.py + + exeinto "${INPATH}"/propka && doexe propka/_propkalib.so + + insinto "${INPATH}"/propka && doins propka/propkalib.py propka/__init__.py + + insinto "${INPATH}"/pdb2pka && doins pdb2pka/*.{py,so,DAT,h} + + dosym ../../apbs/_apbs.so "${INPATH}"/pdb2pka/_apbslib.so + dosym ../../apbs/apbslib.py "${INPATH}"/pdb2pka/apbslib.py + dosym ../../apbs/apbslib.pyc "${INPATH}"/pdb2pka/apbslib.pyc + dosym ../../apbs/apbslib.pyo "${INPATH}"/pdb2pka/apbslib.pyo + } + python_execute_function -s installation + + dosym ${PN}-$(python_get_version -f) /usr/bin/${PN} + dosym pdb2pka-$(python_get_version -f) /usr/bin/pdb2pka + + if use doc; then + pushd doc > /dev/null + sh genpydoc.sh || die "genpydoc failed" + dohtml -r *.html images pydoc + popd > /dev/null + fi + + use examples && \ + insinto /usr/share/${PN}/ && \ + doins -r examples + + dodoc ChangeLog NEWS README AUTHORS +} + +pkg_postinst() { + python_mod_optimize ${PN} +} + +pkg_postrm() { + python_mod_cleanup ${PN} +} |