From 8b4ace9c50842c5b83401ea7b179dcab940387e1 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 23 Sep 2020 10:22:15 +0100 Subject: gentoo resync : 23.09.2020 --- sci-libs/mumps/Manifest | 4 +- sci-libs/mumps/mumps-5.1.2-r1.ebuild | 202 +++++++++++++++++++++++++++++++++++ sci-libs/mumps/mumps-5.1.2.ebuild | 186 -------------------------------- sci-libs/mumps/mumps-5.3.3.ebuild | 201 ++++++++++++++++++++++++++++++++++ 4 files changed, 406 insertions(+), 187 deletions(-) create mode 100644 sci-libs/mumps/mumps-5.1.2-r1.ebuild delete mode 100644 sci-libs/mumps/mumps-5.1.2.ebuild create mode 100644 sci-libs/mumps/mumps-5.3.3.ebuild (limited to 'sci-libs/mumps') diff --git a/sci-libs/mumps/Manifest b/sci-libs/mumps/Manifest index 6abd5ae57218..2e2c58e04ee3 100644 --- a/sci-libs/mumps/Manifest +++ b/sci-libs/mumps/Manifest @@ -1,3 +1,5 @@ DIST MUMPS_5.1.2.tar.gz 3351215 BLAKE2B 1c77c2a217c101245a9a96a59be6b9bfd67ceffa603d807b5a7173026c5c33e2c4de78c14833d7b7f0a90130b9ebc0ac9c7d4ebfbf881d0bd2210a542887c239 SHA512 38a63b14a8df835be68b5fa310b39aa1815799220d56c176e4005797800959e9e08c9a6bf11d308ab82ea40b6f34d36072cebe7c1de39e0c314eb138b93f1b74 -EBUILD mumps-5.1.2.ebuild 5612 BLAKE2B 0a7a3103d6573f9eac9e6d1c6d7986b6352a83aa57043b1764079c0bed118bcab3a114bc87a6f3aff511f925785ad39f0eb1a874948c857fbe702c09bf9a249a SHA512 88c4e5dd4e93fdfe3f6d9c9d5421a28c7661053a95838649812fc727c956b137473a7fa4243b24db3f2928d63a67ac9a0ac718ee156c6ae5b17fe275bb33eda6 +DIST MUMPS_5.3.3.tar.gz 3912935 BLAKE2B 03b88e23b8dd49832c43aef4717edd440328ca7c63eed9005a6baa008090f63089e7a259fb8091ce462e249196c2a1de0ec1e864173e3ecc3265d5a9cef8b869 SHA512 fb2da6acfd0a413ed5a9b2ea346a191ecea4a057f26a8c3b8ed2400843753a354055eb911e53d9f6ed5a6818e653ab926579c1a4a261b791c5ae421fcd5a7945 +EBUILD mumps-5.1.2-r1.ebuild 5662 BLAKE2B 3d02525978545228ef97ccccbd18bb20e73747391f2b8fb0148eaf24d7802f03793d1246b9bbd65a07820fc33fe28e82c5b50e612022d9912e5edadad95db772 SHA512 c3dda6400a3ca6ecae6043a6abb1206860c9ca76331d3dc35073161258591e693a8423f68908066b750c619fa9f66d2899dc5800c5fce20fd26e633e68c4a280 +EBUILD mumps-5.3.3.ebuild 5668 BLAKE2B ac94c8370e4eae81715b0088553fe55b33440bb142cf09360dcebd71d0e3bcfa583708fd538d16484347aba3a810e0fc591a87e50873be03e8d27bcbda78ac37 SHA512 cccdf44c816d1a0a284837200ef63634d886a4e719c820fb90fd39e04567f6ff1bdb7e66f5cc2551364612a78444780841ed9a907129b1fc862ad5d4dc6f718b MISC metadata.xml 864 BLAKE2B 78db103b861071cbad317a65db2bb1c7eafc6c3936728cf3854ea05e92210abbf552e01dcbc974dc5238fc1a432ad7ff48fab3d662ea6081ff70fd86263ac11b SHA512 c285d7ed4bd26bb603f40f9d5e4e7262aea8a2679d14f65a4f8959a9bf2c622310422790e6221708fa227cd2c3bb2f4ba140eb5f23acc71b3f1ca20c04c4711a diff --git a/sci-libs/mumps/mumps-5.1.2-r1.ebuild b/sci-libs/mumps/mumps-5.1.2-r1.ebuild new file mode 100644 index 000000000000..de59b9307470 --- /dev/null +++ b/sci-libs/mumps/mumps-5.1.2-r1.ebuild @@ -0,0 +1,202 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit fortran-2 toolchain-funcs + +MYP=MUMPS_${PV} + +DESCRIPTION="MUltifrontal Massively Parallel sparse direct matrix Solver" +HOMEPAGE="http://mumps.enseeiht.fr/" +SRC_URI="http://mumps.enseeiht.fr/${MYP}.tar.gz" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc examples metis mpi +scotch static-libs" + +RDEPEND=" + virtual/blas + metis? ( + || ( >=sci-libs/metis-5 >=sci-libs/parmetis-4 ) + mpi? ( >=sci-libs/parmetis-4 ) + ) + mpi? ( sci-libs/scalapack ) + scotch? ( >=sci-libs/scotch-6.0.1:=[mpi=] ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +S="${WORKDIR}/${MYP}" + +get_version_component_count() { + local cnt=( $(ver_rs 1- ' ') ) + echo ${#cnt[@]} +} + +static_to_shared() { + local libstatic=${1} + shift + local libname=$(basename ${libstatic%.a}) + local soname=${libname}$(get_libname $(ver_cut 1-2)) + local libdir=$(dirname ${libstatic}) + + einfo "Making ${soname} from ${libstatic}" + if [[ ${CHOST} == *-darwin* ]] ; then + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -dynamiclib -install_name "${EPREFIX}"/usr/lib/"${soname}" \ + -Wl,-all_load -Wl,${libstatic} \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + else + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -shared -Wl,-soname=${soname} \ + -Wl,--whole-archive ${libstatic} -Wl,--no-whole-archive \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + + if [[ $(get_version_component_count) -ge 1 ]] ; then + ln -s ${soname} ${libdir}/${libname}$(get_libname $(ver_cut 1)) || die + fi + + ln -s ${soname} ${libdir}/${libname}$(get_libname) || die + fi +} + +src_prepare() { + sed -e "s:^\(CC\s*=\).*:\1$(tc-getCC):" \ + -e "s:^\(FC\s*=\).*:\1$(tc-getFC):" \ + -e "s:^\(FL\s*=\).*:\1$(tc-getFC):" \ + -e "s:^\(AR\s*=\).*:\1$(tc-getAR) cr :" \ + -e "s:^\(RANLIB\s*=\).*:\1$(tc-getRANLIB):" \ + -e "s:^\(LIBBLAS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs blas):" \ + -e "s:^\(INCPAR\s*=\).*:\1:" \ + -e 's:^\(LIBPAR\s*=\).*:\1$(SCALAP):' \ + -e "s:^\(OPTF\s*=\).*:\1${FFLAGS} -DALLOW_NON_INIT \$(PIC):" \ + -e "s:^\(OPTC\s*=\).*:\1${CFLAGS} \$(PIC):" \ + -e "s:^\(OPTL\s*=\).*:\1${LDFLAGS}:" \ + Make.inc/Makefile.inc.generic > Makefile.inc || die + # fixed a missing copy of libseq to libdir + + default +} + +src_configure() { + LIBADD="$($(tc-getPKG_CONFIG) --libs blas) -Llib -lpord" + local ord="-Dpord" + if use metis && use mpi; then + sed -i \ + -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs parmetis):" \ + -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags parmetis):" \ + Makefile.inc || die + LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs parmetis)" + ord="${ord} -Dparmetis" + elif use metis; then + sed -i \ + -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs metis):" \ + -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags metis):" \ + Makefile.inc || die + LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs metis)" + ord="${ord} -Dmetis" + fi + if use scotch && use mpi; then + sed -i \ + -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lptesmumps -lptscotch -lptscotcherr:" \ + -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${ESYSROOT}/usr/include/scotch:" \ + Makefile.inc || die + LIBADD="${LIBADD} -lptesmumps -lptscotch -lptscotcherr" + ord="${ord} -Dptscotch" + elif use scotch; then + sed -i \ + -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lesmumps -lscotch -lscotcherr:" \ + -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${ESYSROOT}/usr/include/scotch:" \ + Makefile.inc || die + LIBADD="${LIBADD} -lesmumps -lscotch -lscotcherr" + ord="${ord} -Dscotch" + fi + if use mpi; then + sed -i \ + -e "s:^\(CC\s*=\).*:\1mpicc:" \ + -e "s:^\(FC\s*=\).*:\1mpif90:" \ + -e "s:^\(FL\s*=\).*:\1mpif90:" \ + -e "s:^\(SCALAP\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs scalapack):" \ + Makefile.inc || die + export LINK=mpif90 + LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs scalapack)" + else + sed -i \ + -e 's:-Llibseq:-L$(topdir)/libseq:' \ + -e 's:PAR):SEQ):g' \ + -e "s:^\(SCALAP\s*=\).*:\1:" \ + -e 's:^LIBSEQNEEDED =:LIBSEQNEEDED = libseqneeded:g' \ + Makefile.inc || die + export LINK="$(tc-getFC)" + fi + sed -i -e "s:^\s*\(ORDERINGSF\s*=\).*:\1 ${ord}:" Makefile.inc || die +} + +src_compile() { + # Workaround #462602 + export FAKEROOTKEY=1 + + # -j1 because of static archive race + emake -j1 alllib PIC="-fPIC" + if ! use mpi; then + #$(tc-getAR) crs lib/libmumps_common.a libseq/*.o || die + LIBADD+=" -Llibseq -lmpiseq" + static_to_shared libseq/libmpiseq.a + fi + + static_to_shared lib/libpord.a ${LIBADD} + static_to_shared lib/libmumps_common.a ${LIBADD} + + local i + for i in c d s z; do + static_to_shared lib/lib${i}mumps.a -Llib -lmumps_common ${LIBADD} + done + + if use static-libs; then + emake clean + emake -j1 alllib + fi +} + +src_test() { + emake all + + local dotest + if use mpi; then + dotest="mpirun -np 2" + else + export LD_LIBRARY_PATH="${S}/libseq:${LD_LIBRARY_PATH}" + fi + + cd examples + ${dotest} ./ssimpletest < input_simpletest_real || die + ${dotest} ./dsimpletest < input_simpletest_real || die + ${dotest} ./csimpletest < input_simpletest_cmplx || die + ${dotest} ./zsimpletest < input_simpletest_cmplx || die + einfo "The solutions should be close to (1,2,3,4,5)" + ${dotest} ./c_example || die + einfo "The solution should be close to (1,2)" + emake clean +} + +src_install() { + dolib.so lib/lib*$(get_libname)* + use static-libs && dolib.a lib/lib*.a + insinto /usr + + doins -r include + if ! use mpi; then + dolib.so libseq/lib*$(get_libname)* + insinto /usr/include/mpiseq + doins libseq/*.h + use static-libs && dolib.a libseq/libmpiseq.a + fi + + dodoc README ChangeLog VERSION + use doc && dodoc doc/*.pdf + if use examples; then + dodoc -r examples + fi +} diff --git a/sci-libs/mumps/mumps-5.1.2.ebuild b/sci-libs/mumps/mumps-5.1.2.ebuild deleted file mode 100644 index 477d6dbaeef7..000000000000 --- a/sci-libs/mumps/mumps-5.1.2.ebuild +++ /dev/null @@ -1,186 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit eutils toolchain-funcs flag-o-matic versionator fortran-2 multilib - -MYP=MUMPS_${PV} - -DESCRIPTION="MUltifrontal Massively Parallel sparse direct matrix Solver" -HOMEPAGE="http://mumps.enseeiht.fr/" -SRC_URI="http://mumps.enseeiht.fr/${MYP}.tar.gz" - -LICENSE="public-domain" -SLOT="0" -KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="doc examples metis mpi +scotch static-libs" - -RDEPEND=" - virtual/blas - metis? ( || ( >=sci-libs/metis-5 >=sci-libs/parmetis-4 ) - mpi? ( >=sci-libs/parmetis-4 ) ) - scotch? ( Makefile.inc || die - # fixed a missing copy of libseq to libdir - - default -} - -src_configure() { - LIBADD="$($(tc-getPKG_CONFIG) --libs blas) -Llib -lpord" - local ord="-Dpord" - if use metis && use mpi; then - sed -i \ - -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs parmetis):" \ - -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags parmetis):" \ - Makefile.inc || die - LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs parmetis)" - ord="${ord} -Dparmetis" - elif use metis; then - sed -i \ - -e "s:#\s*\(LMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs metis):" \ - -e "s:#\s*\(IMETIS\s*=\).*:\1$($(tc-getPKG_CONFIG) --cflags metis):" \ - Makefile.inc || die - LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs metis)" - ord="${ord} -Dmetis" - fi - if use scotch && use mpi; then - sed -i \ - -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lptesmumps -lptscotch -lptscotcherr:" \ - -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${EROOT}usr/include/scotch:" \ - Makefile.inc || die - LIBADD="${LIBADD} -lptesmumps -lptscotch -lptscotcherr" - ord="${ord} -Dptscotch" - elif use scotch; then - sed -i \ - -e "s:#\s*\(LSCOTCH\s*=\).*:\1-lesmumps -lscotch -lscotcherr:" \ - -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${EROOT}usr/include/scotch:" \ - Makefile.inc || die - LIBADD="${LIBADD} -lesmumps -lscotch -lscotcherr" - ord="${ord} -Dscotch" - fi - if use mpi; then - sed -i \ - -e "s:^\(CC\s*=\).*:\1mpicc:" \ - -e "s:^\(FC\s*=\).*:\1mpif90:" \ - -e "s:^\(FL\s*=\).*:\1mpif90:" \ - -e "s:^\(SCALAP\s*=\).*:\1$($(tc-getPKG_CONFIG) --libs scalapack):" \ - Makefile.inc || die - export LINK=mpif90 - LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs scalapack)" - else - sed -i \ - -e 's:-Llibseq:-L$(topdir)/libseq:' \ - -e 's:PAR):SEQ):g' \ - -e "s:^\(SCALAP\s*=\).*:\1:" \ - -e 's:^LIBSEQNEEDED =:LIBSEQNEEDED = libseqneeded:g' \ - Makefile.inc || die - export LINK="$(tc-getFC)" - fi - sed -i -e "s:^\s*\(ORDERINGSF\s*=\).*:\1 ${ord}:" Makefile.inc || die -} - -src_compile() { - # Workaround #462602 - export FAKEROOTKEY=1 - - # -j1 because of static archive race - emake -j1 alllib PIC="-fPIC" - if ! use mpi; then - #$(tc-getAR) crs lib/libmumps_common.a libseq/*.o || die - LIBADD+=" -Llibseq -lmpiseq" - static_to_shared libseq/libmpiseq.a - fi - static_to_shared lib/libpord.a ${LIBADD} - static_to_shared lib/libmumps_common.a ${LIBADD} - - local i - for i in c d s z; do - static_to_shared lib/lib${i}mumps.a -Llib -lmumps_common ${LIBADD} - done - if use static-libs; then - emake clean - emake -j1 alllib - fi -} - -src_test() { - emake all - local dotest - if use mpi; then - dotest="mpirun -np 2" - else - export LD_LIBRARY_PATH="${S}/libseq:${LD_LIBRARY_PATH}" - fi - cd examples - ${dotest} ./ssimpletest < input_simpletest_real || die - ${dotest} ./dsimpletest < input_simpletest_real || die - ${dotest} ./csimpletest < input_simpletest_cmplx || die - ${dotest} ./zsimpletest < input_simpletest_cmplx || die - einfo "The solutions should be close to (1,2,3,4,5)" - ${dotest} ./c_example || die - einfo "The solution should be close to (1,2)" - make clean -} - -src_install() { - dolib.so lib/lib*$(get_libname)* - use static-libs && dolib.a lib/lib*.a - insinto /usr - doins -r include - if ! use mpi; then - dolib.so libseq/lib*$(get_libname)* - insinto /usr/include/mpiseq - doins libseq/*.h - use static-libs && dolib.a libseq/libmpiseq.a - fi - dodoc README ChangeLog VERSION - use doc && dodoc doc/*.pdf - if use examples; then - insinto /usr/share/doc/${PF} - doins -r examples - fi -} diff --git a/sci-libs/mumps/mumps-5.3.3.ebuild b/sci-libs/mumps/mumps-5.3.3.ebuild new file mode 100644 index 000000000000..43b0f37be670 --- /dev/null +++ b/sci-libs/mumps/mumps-5.3.3.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit fortran-2 toolchain-funcs + +MYP=MUMPS_${PV} + +DESCRIPTION="MUltifrontal Massively Parallel sparse direct matrix Solver" +HOMEPAGE="http://mumps.enseeiht.fr/" +SRC_URI="http://mumps.enseeiht.fr/${MYP}.tar.gz" +S="${WORKDIR}/${MYP}" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc examples metis mpi +scotch static-libs" + +BDEPEND="virtual/pkgconfig" +RDEPEND=" + virtual/blas + metis? ( + || ( >=sci-libs/metis-5 >=sci-libs/parmetis-4 ) + mpi? ( >=sci-libs/parmetis-4 ) + ) + mpi? ( sci-libs/scalapack ) + scotch? ( >=sci-libs/scotch-6.0.1:=[mpi=] ) +" +DEPEND="${RDEPEND}" + +get_version_component_count() { + local cnt=( $(ver_rs 1- ' ') ) + echo ${#cnt[@]} || die +} + +static_to_shared() { + local libstatic=${1} + shift + local libname=$(basename ${libstatic%.a}) + local soname=${libname}$(get_libname $(ver_cut 1-2)) + local libdir=$(dirname ${libstatic}) + + einfo "Making ${soname} from ${libstatic}" + if [[ ${CHOST} == *-darwin* ]] ; then + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -dynamiclib -install_name "${EPREFIX}"/usr/lib/"${soname}" \ + -Wl,-all_load -Wl,${libstatic} \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + else + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -shared -Wl,-soname=${soname} \ + -Wl,--whole-archive ${libstatic} -Wl,--no-whole-archive \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + + if [[ $(get_version_component_count) -ge 1 ]] ; then + ln -s ${soname} ${libdir}/${libname}$(get_libname $(ver_cut 1)) || die + fi + + ln -s ${soname} ${libdir}/${libname}$(get_libname) || die + fi +} + +src_prepare() { + sed -e "s;^\(CC\s*=\).*;\1$(tc-getCC);" \ + -e "s;^\(FC\s*=\).*;\1$(tc-getFC);" \ + -e "s;^\(FL\s*=\).*;\1$(tc-getFC);" \ + -e "s;^\(AR\s*=\).*;\1$(tc-getAR) cr ;" \ + -e "s;^\(RANLIB\s*=\).*;\1$(tc-getRANLIB);" \ + -e "s;^\(LIBBLAS\s*=\).*;\1$($(tc-getPKG_CONFIG) --libs blas);" \ + -e "s;^\(INCPAR\s*=\).*;\1;" \ + -e 's;^\(LIBPAR\s*=\).*;\1$(SCALAP);' \ + -e "s;^\(OPTF\s*=\).*;\1${FFLAGS} -DALLOW_NON_INIT \$(PIC);" \ + -e "s;^\(OPTC\s*=\).*;\1${CFLAGS} \$(PIC);" \ + -e "s;^\(OPTL\s*=\).*;\1${LDFLAGS};" \ + Make.inc/Makefile.inc.generic > Makefile.inc || die + # fixed a missing copy of libseq to libdir + + default +} + +src_configure() { + LIBADD="$($(tc-getPKG_CONFIG) --libs blas) -Llib -lpord" + local ord="-Dpord" + if use metis && use mpi; then + sed -i \ + -e "s;#\s*\(LMETIS\s*=\).*;\1$($(tc-getPKG_CONFIG) --libs parmetis);" \ + -e "s;#\s*\(IMETIS\s*=\).*;\1$($(tc-getPKG_CONFIG) --cflags parmetis);" \ + Makefile.inc || die + LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs parmetis)" + ord="${ord} -Dparmetis" + elif use metis; then + sed -i \ + -e "s;#\s*\(LMETIS\s*=\).*;\1$($(tc-getPKG_CONFIG) --libs metis);" \ + -e "s;#\s*\(IMETIS\s*=\).*;\1$($(tc-getPKG_CONFIG) --cflags metis);" \ + Makefile.inc || die + LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs metis)" + ord="${ord} -Dmetis" + fi + if use scotch && use mpi; then + sed -i \ + -e "s;#\s*\(LSCOTCH\s*=\).*;\1-lptesmumps -lptscotch -lptscotcherr;" \ + -e "s;#\s*\(ISCOTCH\s*=\).*;\1-I${ESYSROOT}/usr/include/scotch;" \ + Makefile.inc || die + LIBADD="${LIBADD} -lptesmumps -lptscotch -lptscotcherr" + ord="${ord} -Dptscotch" + elif use scotch; then + sed -i \ + -e "s;#\s*\(LSCOTCH\s*=\).*;\1-lesmumps -lscotch -lscotcherr;" \ + -e "s;#\s*\(ISCOTCH\s*=\).*;\1-I${ESYSROOT}/usr/include/scotch;" \ + Makefile.inc || die + LIBADD="${LIBADD} -lesmumps -lscotch -lscotcherr" + ord="${ord} -Dscotch" + fi + if use mpi; then + sed -i \ + -e "s;^\(CC\s*=\).*;\1mpicc;" \ + -e "s;^\(FC\s*=\).*;\1mpif90;" \ + -e "s;^\(FL\s*=\).*;\1mpif90;" \ + -e "s;^\(SCALAP\s*=\).*;\1$($(tc-getPKG_CONFIG) --libs scalapack);" \ + Makefile.inc || die + export LINK=mpif90 + LIBADD="${LIBADD} $($(tc-getPKG_CONFIG) --libs scalapack)" + else + sed -i \ + -e 's;-Llibseq;-L$(topdir)/libseq;' \ + -e 's;PAR);SEQ);g' \ + -e "s;^\(SCALAP\s*=\).*;\1;" \ + -e 's;^LIBSEQNEEDED =;LIBSEQNEEDED = libseqneeded;g' \ + Makefile.inc || die + export LINK="$(tc-getFC)" + fi + sed -i -e "s;^\s*\(ORDERINGSF\s*=\).*;\1 ${ord};" Makefile.inc || die +} + +src_compile() { + # Workaround #462602 + export FAKEROOTKEY=1 + + # -j1 because of static archive race + emake -j1 alllib PIC="-fPIC" + if ! use mpi; then + #$(tc-getAR) crs lib/libmumps_common.a libseq/*.o || die + LIBADD+=" -Llibseq -lmpiseq" + static_to_shared libseq/libmpiseq.a + fi + + static_to_shared lib/libpord.a ${LIBADD} + static_to_shared lib/libmumps_common.a ${LIBADD} + + local i + for i in c d s z; do + static_to_shared lib/lib${i}mumps.a -Llib -lmumps_common ${LIBADD} + done + + if use static-libs; then + emake clean + emake -j1 alllib + fi +} + +src_test() { + emake all + + local dotest + if use mpi; then + dotest="mpirun -np 2" + else + export LD_LIBRARY_PATH="${S}/libseq:${LD_LIBRARY_PATH}" + fi + + cd examples + ${dotest} ./ssimpletest < input_simpletest_real || die + ${dotest} ./dsimpletest < input_simpletest_real || die + ${dotest} ./csimpletest < input_simpletest_cmplx || die + ${dotest} ./zsimpletest < input_simpletest_cmplx || die + einfo "The solutions should be close to (1,2,3,4,5)" + ${dotest} ./c_example || die + einfo "The solution should be close to (1,2)" + emake clean +} + +src_install() { + dolib.so lib/lib*$(get_libname)* + use static-libs && dolib.a lib/lib*.a + insinto /usr + + doins -r include + if ! use mpi; then + dolib.so libseq/lib*$(get_libname)* + insinto /usr/include/mpiseq + doins libseq/*.h + use static-libs && dolib.a libseq/libmpiseq.a + fi + + dodoc README ChangeLog VERSION + use doc && dodoc doc/*.pdf + if use examples; then + dodoc -r examples + fi +} -- cgit v1.2.3