diff options
Diffstat (limited to 'sci-libs/superlu_mt')
-rw-r--r-- | sci-libs/superlu_mt/Manifest | 4 | ||||
-rw-r--r-- | sci-libs/superlu_mt/files/superlu_mt-3.1-fix-predefs.patch | 22 | ||||
-rw-r--r-- | sci-libs/superlu_mt/superlu_mt-3.1-r1.ebuild | 105 | ||||
-rw-r--r-- | sci-libs/superlu_mt/superlu_mt-3.1.ebuild | 3 |
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 |