summaryrefslogtreecommitdiff
path: root/sci-libs/mumps
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-09-23 10:22:15 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-09-23 10:22:15 +0100
commit8b4ace9c50842c5b83401ea7b179dcab940387e1 (patch)
tree230f3135ceaace633cf93e9838b185c4a6664c2e /sci-libs/mumps
parent9ee6d97c2883d42f204a533a8bc1f4562df778fb (diff)
gentoo resync : 23.09.2020
Diffstat (limited to 'sci-libs/mumps')
-rw-r--r--sci-libs/mumps/Manifest4
-rw-r--r--sci-libs/mumps/mumps-5.1.2-r1.ebuild (renamed from sci-libs/mumps/mumps-5.1.2.ebuild)54
-rw-r--r--sci-libs/mumps/mumps-5.3.3.ebuild201
3 files changed, 239 insertions, 20 deletions
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.ebuild b/sci-libs/mumps/mumps-5.1.2-r1.ebuild
index 477d6dbaeef7..de59b9307470 100644
--- a/sci-libs/mumps/mumps-5.1.2.ebuild
+++ b/sci-libs/mumps/mumps-5.1.2-r1.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit eutils toolchain-funcs flag-o-matic versionator fortran-2 multilib
+inherit fortran-2 toolchain-funcs
MYP=MUMPS_${PV}
@@ -18,20 +18,28 @@ 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? ( <sci-libs/scotch-6[mpi=] )
- mpi? ( sci-libs/scalapack )"
-
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
+ 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 libstatic=${1}
+ shift
local libname=$(basename ${libstatic%.a})
- local soname=${libname}$(get_libname $(get_version_component_range 1-2))
+ local soname=${libname}$(get_libname $(ver_cut 1-2))
local libdir=$(dirname ${libstatic})
einfo "Making ${soname} from ${libstatic}"
@@ -45,9 +53,12 @@ static_to_shared() {
-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)
+
+ 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
}
@@ -90,14 +101,14 @@ src_configure() {
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:" \
+ -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${EROOT}usr/include/scotch:" \
+ -e "s:#\s*\(ISCOTCH\s*=\).*:\1-I${ESYSROOT}/usr/include/scotch:" \
Makefile.inc || die
LIBADD="${LIBADD} -lesmumps -lscotch -lscotcherr"
ord="${ord} -Dscotch"
@@ -134,6 +145,7 @@ src_compile() {
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}
@@ -141,6 +153,7 @@ src_compile() {
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
@@ -149,12 +162,14 @@ src_compile() {
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
@@ -163,13 +178,14 @@ src_test() {
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
+ 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)*
@@ -177,10 +193,10 @@ src_install() {
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
+ dodoc -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
+}