# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=4 inherit eutils autotools flag-o-matic toolchain-funcs DESCRIPTION="Photonic band structure program" SRC_URI="http://ab-initio.mit.edu/mpb/${P}.tar.gz" HOMEPAGE="http://ab-initio.mit.edu/mpb/" LICENSE="GPL-2" KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux" IUSE="doc examples hdf5 mpi" SLOT="0" RDEPEND="virtual/lapack dev-scheme/guile sci-libs/libctl sci-libs/fftw:2.1[mpi?] sys-libs/readline hdf5? ( sci-libs/hdf5 ) mpi? ( virtual/mpi )" DEPEND="${RDEPEND} virtual/pkgconfig" src_prepare() { epatch \ "${FILESDIR}"/${P}-autotools.patch \ "${FILESDIR}"/${P}-guile18.patch \ "${FILESDIR}"/${P}-headers.patch cd "${S}" eautoreconf # version with inversion symmetry (mpbi). cp -r "${S}" "${S}_inv" || die # version with hermitian eps (mpbh). cp -r "${S}" "${S}_herm" || die # mpi versions (mpb-mpi). if use mpi; then cp -r "${S}" "${S}_mpi" || die cp -r "${S}" "${S}_inv_mpi" || die cp -r "${S}" "${S}_herm_mpi" || die fi tc-export CC } src_configure() { # enable legacy API for hdf-1.8 use hdf5 && append-cflags -DH5_USE_16_API # local myconf=( --with-libctl="${EPREFIX}/usr/share/libctl" --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" --with-lapack="$($(tc-getPKG_CONFIG) --libs lapack)" $(use_with hdf5) ) econf "${myconf[@]}" cd "${S}_inv" econf "${myconf[@]}" \ --with-inv-symmetry cd "${S}_herm" econf "${myconf[@]}" \ --with-hermitian-eps if use mpi; then cd "${S}_mpi" econf "${myconf[@]}" \ --with-mpi cd "${S}_inv_mpi" econf "${myconf[@]}" \ --with-inv-symmetry \ --with-mpi cd "${S}_herm_mpi" econf "${myconf[@]}" \ --with-hermitian-eps \ --with-mpi \ CC=mpicc fi } src_compile() { local d for d in . _inv _herm; do cd "${S}${d}" emake -C mpb-ctl ctl-io.c emake done if use mpi; then for d in . _inv _herm; do cd "${S}${d}_mpi" emake -C mpb-ctl ctl-io.c CC=mpicc emake CC=mpicc LD=mpicc done fi } src_install() { einstall dodoc README NEWS AUTHORS COPYRIGHT ChangeLog TODO use doc && dohtml doc/* if use examples; then insinto /usr/share/doc/${PF} doins -r mpb-ctl/examples fi newbin "${S}_inv"/mpb-ctl/.mpb mpbi newbin "${S}_herm"/mpb-ctl/.mpb mpbh einfo "Several versions of mpb have been installed:" einfo "mpb : regular version" einfo "mpbi: configured for inversion symmetry" einfo "mpbh: configured for hermitian epsilon" if use mpi; then newbin "${S}_mpi"/mpb-ctl/.mpb mpb-mpi newbin "${S}_inv_mpi"/mpb-ctl/.mpb mpbh-mpi newbin "${S}_herm_mpi"/mpb-ctl/.mpb mpbi-mpi einfo "mpb-mpi : regular version with mpi" einfo "mpbi-mpi: configured for inversion symmetry with mpi" einfo "mpbh-mpi: configured for hermitian epsilon with mpi" fi }