# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit autotools toolchain-funcs DESCRIPTION="The Massively Parallel Quantum Chemistry Program" HOMEPAGE="http://www.mpqc.org/" SRC_URI="mirror://sourceforge/mpqc/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" IUSE="doc mpi threads tk" RDEPEND=" virtual/blas virtual/lapack mpi? ( virtual/mpi[cxx] ) tk? ( dev-lang/tk:0 )" DEPEND="${RDEPEND}" BDEPEND=" dev-lang/perl app-alternatives/lex virtual/pkgconfig doc? ( app-text/doxygen media-gfx/graphviz )" PATCHES=( "${FILESDIR}"/${P}-as-needed.patch "${FILESDIR}"/${P}-respect-ldflags.patch "${FILESDIR}"/${P}-test-failure-hack.patch "${FILESDIR}"/${P}-blas.patch "${FILESDIR}"/${P}-wformat-security.patch "${FILESDIR}"/${P}-MPI-3.0.patch ) src_prepare() { # do not install tkmolrender if not requested if ! use tk; then sed \ -e "s:.*/bin/molrender/tkmolrender.*::" \ -e "s:.*\$(INSTALLBINOPT) tkmolrender.*::" \ -e "s:/bin/rm -f tkmolrender::" \ -i "./src/bin/molrender/Makefile" \ || die "failed to disable tkmolrender" fi default eautoreconf } src_configure() { tc-export CC CXX if use mpi; then export CC=mpicc export CXX=mpicxx fi econf \ --enable-shared \ $(use_enable threads) \ $(use_enable mpi parallel) sed \ -e "s|^CFLAGS =.*$|CFLAGS=${CFLAGS}|" \ -e "s|^FFLAGS =.*$|FFLAGS=${FFLAGS:- -O2}|" \ -e "s|^CXXFLAGS =.*$|CXXFLAGS=${CXXFLAGS}|" \ -i lib/LocalMakefile || die } src_test() { # we'll only run the small test set, since the # medium and large ones take >10h and >24h on my # 1.8Ghz P4M emake -C src/bin/mpqc/validate -j1 check1 } src_install() { emake installroot="${D}" install install_devel install_inc dodoc CHANGES CITATION README # make extended docs if use doc; then cd doc || die emake all doman man/man1/* man/man3/* dodoc -r html fi find "${ED}" -name '*.la' -delete || die } pkg_postinst() { einfo "MPQC can be picky with regard to compilation flags." einfo "If during mpqc runs you have trouble converging or " einfo "experience oscillations during SCF interations, " einfo "consider recompiling with less aggressive CFLAGS/CXXFLAGS." einfo "Particularly, replacing -march=pentium4 by -march=pentium3" einfo "might help if you encounter problems with correlation " einfo "consistent basis sets." }