summaryrefslogtreecommitdiff
path: root/sci-libs/mumps
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-10-22 11:09:47 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-10-22 11:09:47 +0100
commit64e107b9b6058580ff0432107eb37cefb0b2a7d8 (patch)
tree9a44e603e2ae365e2b1fe35ac37f73e830cdee1d /sci-libs/mumps
parent957235cf19a691360c720f7913672adda4258ed0 (diff)
gentoo resync : 22.10.2018
Diffstat (limited to 'sci-libs/mumps')
-rw-r--r--sci-libs/mumps/Manifest2
-rw-r--r--sci-libs/mumps/mumps-5.1.2.ebuild186
2 files changed, 188 insertions, 0 deletions
diff --git a/sci-libs/mumps/Manifest b/sci-libs/mumps/Manifest
index 3287a1a97f73..ae7b8d9d5389 100644
--- a/sci-libs/mumps/Manifest
+++ b/sci-libs/mumps/Manifest
@@ -1,3 +1,5 @@
DIST MUMPS_4.10.0.tar.gz 2481516 BLAKE2B ddd3f28bf9627806e9bb5597adc94e2b8f504adf220a8a64ea50630edbde75358bd97e91a53ebd341132a34db5d7248d32a892a060bdf8f205c8aac3b9c88722 SHA512 348df048618ea2086fbe805a90f2e31f57e0db4aa6f4843a0e3c7142bac80fe45e54768e65921657c970bc286b59c2bca91e5006ed8000678f26ba2efe2bfda8
+DIST MUMPS_5.1.2.tar.gz 3351215 BLAKE2B 1c77c2a217c101245a9a96a59be6b9bfd67ceffa603d807b5a7173026c5c33e2c4de78c14833d7b7f0a90130b9ebc0ac9c7d4ebfbf881d0bd2210a542887c239 SHA512 38a63b14a8df835be68b5fa310b39aa1815799220d56c176e4005797800959e9e08c9a6bf11d308ab82ea40b6f34d36072cebe7c1de39e0c314eb138b93f1b74
EBUILD mumps-4.10.0-r1.ebuild 5585 BLAKE2B 6fa009a933a891b0b31284e0c3f206c21890d0379a502154526b3839cf5d2d67558a47790bcad641eabfef184d12cd09bf6eda8ff99b384fdef5ac65a99f768e SHA512 578f6584f115e6299bac629073701bd8534864693afa7c70f98ed6b0b4edc466e6f242733ec3baaec9b98c61f796a1d822ab10b2671fc90230fb2d73129310ea
+EBUILD mumps-5.1.2.ebuild 5592 BLAKE2B 59e2b9281ddbc2fc0d01eac5282ccbb67bec250899af1aac096ccb449091ee4120c5ca58e4d68906fc7c6759ea0b194ecf545447239fa6992ae96073eaf061e3 SHA512 1050b95e746486e6a3f302f396dd534e362c0baa1228456fcf31d80ac9330427b40f5b7aff281fc2489a73b6c27b16f1cd532e39a5fc6341086f3390b7195fb3
MISC metadata.xml 864 BLAKE2B 78db103b861071cbad317a65db2bb1c7eafc6c3936728cf3854ea05e92210abbf552e01dcbc974dc5238fc1a432ad7ff48fab3d662ea6081ff70fd86263ac11b SHA512 c285d7ed4bd26bb603f40f9d5e4e7262aea8a2679d14f65a4f8959a9bf2c622310422790e6221708fa227cd2c3bb2f4ba140eb5f23acc71b3f1ca20c04c4711a
diff --git a/sci-libs/mumps/mumps-5.1.2.ebuild b/sci-libs/mumps/mumps-5.1.2.ebuild
new file mode 100644
index 000000000000..725e1ab60e64
--- /dev/null
+++ b/sci-libs/mumps/mumps-5.1.2.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2018 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="${HOMEPAGE}${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 <sci-libs/parmetis-4 )
+ mpi? ( <sci-libs/parmetis-4 ) )
+ scotch? ( <sci-libs/scotch-6[mpi=] )
+ mpi? ( sci-libs/scalapack )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MYP}"
+
+static_to_shared() {
+ local libstatic=${1}; shift
+ local libname=$(basename ${libstatic%.a})
+ local soname=${libname}$(get_libname $(get_version_component_range 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"
+ [[ $(get_version_component_count) -gt 1 ]] && \
+ ln -s ${soname} ${libdir}/${libname}$(get_libname $(get_major_version))
+ ln -s ${soname} ${libdir}/${libname}$(get_libname)
+ 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${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
+}