summaryrefslogtreecommitdiff
path: root/sci-libs/superlu_mt
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/superlu_mt')
-rw-r--r--sci-libs/superlu_mt/Manifest4
-rw-r--r--sci-libs/superlu_mt/files/superlu_mt-3.1-fix-predefs.patch22
-rw-r--r--sci-libs/superlu_mt/superlu_mt-3.1-r1.ebuild105
-rw-r--r--sci-libs/superlu_mt/superlu_mt-3.1.ebuild3
4 files changed, 131 insertions, 3 deletions
diff --git a/sci-libs/superlu_mt/Manifest b/sci-libs/superlu_mt/Manifest
index 77e0cb9ba6df..3dc7305e282d 100644
--- a/sci-libs/superlu_mt/Manifest
+++ b/sci-libs/superlu_mt/Manifest
@@ -1,4 +1,6 @@
AUX superlu_mt-3.1-duplicate-symbols.patch 7284 BLAKE2B 6402f745b280c02dfb4b0fadee120c9def38819d01c5e00406f68a812a06f3d86d4ac0ee799e3abe7b081737d2566bfb6ad981f7768ac29b3a2ad0b0bc147ee1 SHA512 b233677071ce175116454614b6289faa80f60ef0dfeee728bc4a1a7603ce8490c93e63ba635d1db231c92a055dee5cdbeff2793a2e138fa688efc18bd72b693f
+AUX superlu_mt-3.1-fix-predefs.patch 606 BLAKE2B e372ddc40a61c09203a439e28becb91e720909f481212b2dda2a9dfe9a924aa218b2c34e066f9d9617a84c7d1cc3658f1bc09d9bd2d8415be47d374d7946d8c6 SHA512 8242236118033bcd9b4fb0562f2820c2d42d72c887d2124cdd9a224e2946266371b3fe3f6717a46b89e2af35ad76facd22dc75e931ece804df2deda7d5926810
DIST superlu_mt_3.1.tar.gz 1824440 BLAKE2B 6355c624eca13a6ad7fa0e6100b3a548215d93aafc5958b9a0e693b3333006e4b1e98facddf352f62ef1632c8528cb39a85ca15509abf046d32f8d97335749c5 SHA512 41b8d9808f6a9c3f8d9e983ab253b0c5aec486df1cc419d043a201bd950034fa4bdd5465410e1198a2314d072b92cb388fc117165a06f820922f04060c755971
-EBUILD superlu_mt-3.1.ebuild 2593 BLAKE2B 0a92790424e62a3de4bcc3f7dbf061a54b524c38b2a8f342ae4b4e62739d712c26979f796795969b077c1485ae898cddee46748d2e734888135413da56645e84 SHA512 4a2e60dbb4adda66ae2f96ab15ea8d3fa7803baef7137ae90a1008fd9a15fab1198d52c6ce68e9a6811eabb7fbe056add23e0e86c7b8303164e91347ca5a1363
+EBUILD superlu_mt-3.1-r1.ebuild 2612 BLAKE2B d030a830b2ae86401dea2ac65135d8c3412aac933c922698772523d00a2eaa80e65c6c76793506115d1fa6722e7a45c23a363e1767c33ecd538d3f262b27baec SHA512 c1e617c05748626fe998dcd7151a2156e5f1e5d77ad7d2e3574c7126b58c094ee5a739ae04f8010afc556e5f52391bf84240335fa0e1bb32a6a17c09fde04f48
+EBUILD superlu_mt-3.1.ebuild 2560 BLAKE2B 3361cc3649f14163ab64825def63f8c51fc38b90155c0f6ab59b9db301f9e5caa2383701b625d480ecc82d21cb87dc1f75d07a9ca2e1df0355ce0a04eaa0811d SHA512 95a807ed73442f5cf7d11640f1b0d2d808c68745b00d95a962b4f63947e2d272db68d765575a51d81fb36f0581d02fabc0a3396c97d3ee44a751651f19576add
MISC metadata.xml 1472 BLAKE2B 75500639996e0b9e541913a3e8c65b094f38e79615e8cc07cb99c6b889259458c0cff14414004452fe320034bb7c442efa112b9eab75a853890a0c780b4850b8 SHA512 914c5f3d6e8e00e678db0c266278971a7586f7ddc06441954c6b31c272efb2e45fce7e5d93017fdee3075337a0b01f653d4d1854fc028a8e850f448ba729d969
diff --git a/sci-libs/superlu_mt/files/superlu_mt-3.1-fix-predefs.patch b/sci-libs/superlu_mt/files/superlu_mt-3.1-fix-predefs.patch
new file mode 100644
index 000000000000..95c64675a87b
--- /dev/null
+++ b/sci-libs/superlu_mt/files/superlu_mt-3.1-fix-predefs.patch
@@ -0,0 +1,22 @@
+--- a/INSTALL/Makefile
++++ b/INSTALL/Makefile
+@@ -19,7 +19,7 @@ slamch.o: slamch.c ; $(CC) $(NOOPTS) -c $<
+ dlamch.o: dlamch.c ; $(CC) $(NOOPTS) -c $<
+ superlu_timer.o: superlu_timer.c; $(CC) $(NOOPTS) -c $<
+
+-.c.o: ; $(CC) $(CFLAGS) -c $<
++.c.o: ; $(CC) $(PREDEFS) $(CFLAGS) -c $<
+
+ clean:
+ rm -f *.o test* *.out
+--- a/SRC/Makefile
++++ b/SRC/Makefile
+@@ -130,7 +130,7 @@ await.o: await.c
+ $(CC) -c $(NOOPTS) $< $(VERBOSE)
+
+ .c.o:
+- $(CC) $(CFLAGS) $(CDEFS) $(BLASDEF) -c $< $(VERBOSE)
++ $(CC) ${PREDEFS} $(CFLAGS) $(CDEFS) $(BLASDEF) -c $< $(VERBOSE)
+
+ clean:
+ rm -f *.o core ../lib/$(SUPERLULIB)
diff --git a/sci-libs/superlu_mt/superlu_mt-3.1-r1.ebuild b/sci-libs/superlu_mt/superlu_mt-3.1-r1.ebuild
new file mode 100644
index 000000000000..a37f5a808568
--- /dev/null
+++ b/sci-libs/superlu_mt/superlu_mt-3.1-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PN=SuperLU_MT
+SOVERSION=$(ver_cut 1)
+
+DESCRIPTION="Multithreaded sparse LU factorization library"
+HOMEPAGE="https://portal.nersc.gov/project/sparse/superlu/"
+SRC_URI="https://portal.nersc.gov/project/sparse/superlu/${PN}_${PV}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${SOVERSION}"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples int64 openmp static-libs test threads"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="|| ( openmp threads )"
+
+RDEPEND="virtual/blas"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig
+ test? ( app-shells/tcsh )"
+
+S="${WORKDIR}/${MY_PN}_${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1-duplicate-symbols.patch
+ "${FILESDIR}"/${PN}-3.1-fix-predefs.patch
+)
+
+pkg_setup() {
+ if use openmp && ! use threads; then
+ if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp; then
+ ewarn "OpenMP is not available in your current selected gcc"
+ die "need openmp capable gcc"
+ fi
+ CTHREADS="-D__OPENMP"
+ [[ $(tc-getCC) == *gcc ]] && LDTHREADS="-fopenmp"
+ else
+ CTHREADS="-D__PTHREAD"
+ LDTHREADS="-pthread"
+ fi
+}
+
+src_prepare() {
+ default
+ cat <<-EOF > make.inc
+ CC=$(tc-getCC)
+ LOADER=$(tc-getCC)
+ ARCH=$(tc-getAR)
+ RANLIB=$(tc-getRANLIB)
+ PREDEFS=${CPPFLAGS} -DUSE_VENDOR_BLAS -DPRNTlevel=0 -DDEBUGlevel=0 $(use int64 && echo -D_LONGINT)
+ CDEFS=-DAdd_
+ CFLAGS=${CFLAGS} ${CTHREADS} \$(PIC)
+ BLASLIB=$($(tc-getPKG_CONFIG) --libs blas)
+ MATHLIB=-lm
+ NOOPTS=-O0 \$(PIC)
+ ARCHFLAGS=cr
+ LOADOPTS=${LDFLAGS} ${LDTHREADS}
+ SUPERLULIB=lib${PN}.a
+ TMGLIB=libtmglib.a
+ EOF
+ SONAME=lib${PN}.so.${SOVERSION}
+ sed -e "s|../SRC|${EPREFIX}/usr/include/${PN}|" \
+ -e '/:.*$(SUPERLULIB)/s|../lib/$(SUPERLULIB)||g' \
+ -e 's|../lib/$(SUPERLULIB)|-lsuperlu_mt|g' \
+ -i EXAMPLE/Makefile || die
+}
+
+src_compile() {
+ # shared library
+ emake PIC="-fPIC" \
+ ARCH="echo" \
+ ARCHFLAGS="" \
+ RANLIB="echo" \
+ superlulib
+ $(tc-getCC) ${LDFLAGS} ${LDTHREADS} -shared -Wl,-soname=${SONAME} SRC/*.o \
+ $($(tc-getPKG_CONFIG) --libs blas) -lm -o lib/${SONAME} || die
+ ln -s ${SONAME} lib/libsuperlu_mt.so || die
+
+ use static-libs && rm -f SRC/*.o && \
+ emake PIC="" superlulib
+}
+
+src_test() {
+ emake -j1 tmglib
+ LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" \
+ emake SUPERLULIB="${SONAME}" testing
+}
+
+src_install() {
+ dolib.so lib/*so*
+ use static-libs && dolib.a lib/*.a
+ insinto /usr/include/${PN}
+ doins SRC/*h
+ dodoc README
+ use doc && dodoc DOC/ug.pdf
+ if use examples; then
+ docinto /examples
+ dodoc -r EXAMPLE/* make.inc
+ fi
+}
diff --git a/sci-libs/superlu_mt/superlu_mt-3.1.ebuild b/sci-libs/superlu_mt/superlu_mt-3.1.ebuild
index f631900a16d9..eab8a2ad999d 100644
--- a/sci-libs/superlu_mt/superlu_mt-3.1.ebuild
+++ b/sci-libs/superlu_mt/superlu_mt-3.1.ebuild
@@ -61,8 +61,7 @@ src_prepare() {
TMGLIB=libtmglib.a
EOF
SONAME=lib${PN}.so.${SOVERSION}
- sed -e 's|../make.inc|make.inc|' \
- -e "s|../SRC|${EPREFIX}/usr/include/${PN}|" \
+ sed -e "s|../SRC|${EPREFIX}/usr/include/${PN}|" \
-e '/:.*$(SUPERLULIB)/s|../lib/$(SUPERLULIB)||g' \
-e 's|../lib/$(SUPERLULIB)|-lsuperlu_mt|g' \
-i EXAMPLE/Makefile || die