diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2026-03-24 07:14:48 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2026-03-24 07:14:48 +0000 |
| commit | 6072f8561ab9bac3afef70c3d2eded878700f382 (patch) | |
| tree | c7eabc2d1e39836950ce5636448e0d4142870aed /sci-libs | |
| parent | 08bd66bd0d44d4b580308e013a24ed15188da14f (diff) | |
| download | baldeagleos-repo-6072f8561ab9bac3afef70c3d2eded878700f382.tar.gz baldeagleos-repo-6072f8561ab9bac3afef70c3d2eded878700f382.tar.xz baldeagleos-repo-6072f8561ab9bac3afef70c3d2eded878700f382.zip | |
Adding metadata
Diffstat (limited to 'sci-libs')
| -rw-r--r-- | sci-libs/arprec/Manifest | 1 | ||||
| -rw-r--r-- | sci-libs/arprec/arprec-2.2.20.ebuild | 89 | ||||
| -rw-r--r-- | sci-libs/arprec/files/arprec-2.2.20-automake.patch | 68 | ||||
| -rw-r--r-- | sci-libs/cdf/Manifest | 2 | ||||
| -rw-r--r-- | sci-libs/cdf/cdf-3.9.1.ebuild | 148 | ||||
| -rw-r--r-- | sci-libs/cdf/files/cdf-3.9.1-respect-flags.patch | 85 | ||||
| -rw-r--r-- | sci-libs/openblas/Manifest | 1 | ||||
| -rw-r--r-- | sci-libs/openblas/openblas-0.3.32.ebuild | 182 |
8 files changed, 576 insertions, 0 deletions
diff --git a/sci-libs/arprec/Manifest b/sci-libs/arprec/Manifest index 0a2b22bfcab1..68f28d04919d 100644 --- a/sci-libs/arprec/Manifest +++ b/sci-libs/arprec/Manifest @@ -1 +1,2 @@ DIST arprec-2.2.19.tar.gz 1962133 BLAKE2B a2fccc1908e791fd4759e61ff52b180fcaccbfbfa831ee1beca9b22a1a745d17d21040974ffe02ea21397a2339c819a30cd93a247738564a2b433f7cef14c9e4 SHA512 97cf090398aa169e31711077efd26dc6da1f62291ab37b241b133634838bdd44743f85b86b861a3be18d2696ae9132afb6cd1871502bedb9cc17dfb63fde2632 +DIST arprec-2.2.20.tar.gz 820282 BLAKE2B 60ec1c73d09590973857c38191397c385195e19baa5f6eff1518ab217350fa1da1a84e0c2403f83f2b38e9f3a67b7e5f30feb61fb82bad682375185e52bb1fc8 SHA512 35cc4bba6a52aafb44c4bb184233055faccfe761e699e522cca4b98ac41668fed1913bf1833ec01d9f50d5908904d348f7ed9c764a7ea88caa3298f66982e7db diff --git a/sci-libs/arprec/arprec-2.2.20.ebuild b/sci-libs/arprec/arprec-2.2.20.ebuild new file mode 100644 index 000000000000..bce8b61e2d84 --- /dev/null +++ b/sci-libs/arprec/arprec-2.2.20.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FORTRAN_NEEDED=fortran +FORTRAN_STANDARD=90 + +inherit autotools fortran-2 + +DESCRIPTION="Arbitrary precision float arithmetics and functions" +HOMEPAGE="https://crd-legacy.lbl.gov/~dhbailey/mpdist/" +SRC_URI="https://github.com/BL-highprecision/${PN^^}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" +S="${WORKDIR}"/${P^^} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="cpu_flags_x86_fma3 cpu_flags_x86_fma4 doc fortran qd" + +DEPEND="qd? ( sci-libs/qd[fortran=] )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-2.2.19-ax_cxx_fma.patch #Bug 731912 + "${FILESDIR}"/${PN}-2.2.19-narrowing.patch #Bug 731916 + "${FILESDIR}"/${PN}-2.2.19-noregister.patch #Bug 926266 + "${FILESDIR}"/${P}-automake.patch +) + +src_prepare() { + default + sed -e '/TESTS =/s/ io//' -i tests/Makefile.am || die # bug 526960 + + eautoreconf +} + +src_configure() { + local myeconfargs=( + $(use_enable cpu_flags_x86_fma$(usex cpu_flags_x86_fma3 3 4) fma) + $(use_enable fortran) + $(use_enable qd) + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + default + + if use fortran; then + emake toolkit + cd toolkit || die + ./mathinit || die "mathinit failed" + fi +} + +src_install() { + default + + if use fortran; then + cd toolkit || die + + exeinto /usr/libexec/${PN} + doexe mathtool + + exeinto /usr/libexec/${PN}/.libs + doexe .libs/mathtool + + insinto /usr/libexec/${PN} + doins *.dat + + cat > mathtool.exe <<- _EOF_ || die + #!/usr/bin/env sh + cd "${EPREFIX}/usr/libexec/${PN}" && exec ./mathtool + _EOF_ + + newbin mathtool.exe mathtool + newdoc README README.mathtool + fi + + if ! use doc; then + rm "${ED}"/usr/share/doc/${PF}/*.pdf || die + fi + + if ! use static-libs; then + find "${D}" -type f -name '*.la' -delete || die + fi +} diff --git a/sci-libs/arprec/files/arprec-2.2.20-automake.patch b/sci-libs/arprec/files/arprec-2.2.20-automake.patch new file mode 100644 index 000000000000..8fcf970e2c89 --- /dev/null +++ b/sci-libs/arprec/files/arprec-2.2.20-automake.patch @@ -0,0 +1,68 @@ +--- a/fortran/Makefile.am 2026-03-23 17:16:01.063425472 +0100 ++++ b/fortran/Makefile.am 2026-03-23 17:16:51.134832997 +0100 +@@ -37,7 +37,8 @@ + mp_modx.o: mp_mod.o + $(MPMODULEX): mp_modx.o + +-pkglib_DATA = $(MODULES) ++arpreclibdir = $(pkglibdir) ++arpreclib_DATA = $(MODULES) + + DEMO = pslq1$(EXEEXT) pslq2$(EXEEXT) pslq3$(EXEEXT) pslqm1$(EXEEXT) \ + pslqm2$(EXEEXT) pslqm3$(EXEEXT) quadgs$(EXEEXT) quaderf$(EXEEXT) \ +--- a/configure.ac 2026-03-23 18:21:46.284475297 +0100 ++++ b/configure.ac 2026-03-23 18:22:31.006947491 +0100 +@@ -35,7 +35,7 @@ + + # Checks for command-line options + # --enable-inline option. +-AC_ARG_ENABLE(enable_inline, AC_HELP_STRING(--enable-inline, [inline commonly used functions. [[default=yes]]])) ++AC_ARG_ENABLE(inline, AC_HELP_STRING(--enable-inline, [inline commonly used functions. [[default=yes]]])) + AC_MSG_CHECKING([if commonly used function is to be inlined]) + if test "x$enable_inline" != "xno"; then + enable_inline="yes" +@@ -44,7 +44,7 @@ + AC_MSG_RESULT($enable_inline) + + # --enable-debug +-AC_ARG_ENABLE(enable_debug, AC_HELP_STRING(--enable-debug, [enable debugging code. [[default=no]]])) ++AC_ARG_ENABLE(debug, AC_HELP_STRING(--enable-debug, [enable debugging code. [[default=no]]])) + AC_MSG_CHECKING([if debugging code is to be enabled]) + if test "x$enable_debug" = "xyes"; then + AC_DEFINE([ARPREC_DEBUG], [1], [Define to 1 to enable debugging code.]) +@@ -54,7 +54,7 @@ + AC_MSG_RESULT($enable_debug) + + # --enable-always-fix-fpu +-AC_ARG_ENABLE(enable_always_fix_fpu, AC_HELP_STRING(--enable-always-fix-fpu, [Use FPU fix whenever C interface is called. [[default=no]]])) ++AC_ARG_ENABLE(always_fix_fpu, AC_HELP_STRING(--enable-always-fix-fpu, [Use FPU fix whenever C interface is called. [[default=no]]])) + if test "x$enable_always_fix_fpu" = "xyes"; then + AC_DEFINE([ALWAYS_FIX_FPU], [1], [Define to 1 to use FPU fix whenever C interface is called.]) + else +@@ -118,7 +118,7 @@ + fi + + # --enable-qd +-AC_ARG_ENABLE(enable-qd, AC_HELP_STRING(--enable-qd, [Use quad-double (QD) ++AC_ARG_ENABLE(qd, AC_HELP_STRING(--enable-qd, [Use quad-double (QD) + library. [[default=no]]])) + if test "x$enable_qd" = "xyes"; then + AC_CHECK_QD([2.3], [CXXFLAGS="$CXXFLAGS $QD_CXXFLAGS"]) +@@ -128,7 +128,7 @@ + fi + + # --enable-fma +-AC_ARG_ENABLE(enable_fma, AC_HELP_STRING(--enable-fma, [use fused multiply-add/subtract (auto,gnu,c99,ibm,compiler). Use this option with care. [[default=auto]]])) ++AC_ARG_ENABLE(fma, AC_HELP_STRING(--enable-fma, [use fused multiply-add/subtract (auto,gnu,c99,ibm,compiler). Use this option with care. [[default=auto]]])) + if test "x$enable_fma" = "x"; then + enable_fma="auto" + fi +@@ -174,7 +174,7 @@ + FCFLAGS="-O2" + fi + fi +-AC_ARG_ENABLE(enable_fortran, AC_HELP_STRING(--enable-fortran, [build Fortran interfaces [[default=auto]]])) ++AC_ARG_ENABLE(fortran, AC_HELP_STRING(--enable-fortran, [build Fortran interfaces [[default=auto]]])) + if test "x$enable_fortran" != "xno"; then + AC_LANG_PUSH(Fortran) + AC_PROG_FC([xlf95 ifort pathf95 f95 gfortran g95 pgf95 lf95 fort ifc efc pathf90 xlf90 pgf90 epcf90 xlf f90]) diff --git a/sci-libs/cdf/Manifest b/sci-libs/cdf/Manifest index b2a6cc5e26ba..f846ccefc8b1 100644 --- a/sci-libs/cdf/Manifest +++ b/sci-libs/cdf/Manifest @@ -6,4 +6,6 @@ DIST cdf390ug.pdf 1566123 BLAKE2B 639f800454e8f27286d769d505001e07e972b194d589a1 DIST cdf390vbrm.pdf 1729074 BLAKE2B d30d177202b516891dba0cb99113d6d19af41d950384469ec8a35d96dd2f7418646d1622bbf35376f02cabe686d6da0382e65b98a5beef0bcf81eb827dab5270 SHA512 98379bb4f30c8073ea1d43b7b4b75559722b6de1c7a500bb79b25162cb1bbc82afd9eec443af4645e369de6f59bf031fd097bc802896ad7310b7614a73486961 DIST cdf39_0-dist-cdf.tar.gz 1290187 BLAKE2B 03f7c7840c44514046df0d63ff6086be7263858f90225debfb8a4fe6c4d6e5b03c95faa2762f76e2ffc198ac77359b3494520258ec17678746fd7f619e362853 SHA512 e054b763d86c09c53375ef60a8690f43fcb106be1dc6fd907763379db1ab4c9677692671a63da74d955aec8ce3f866f420ddc7217a59ed68e51c4623562af387 DIST cdf39_0-dist-java.tar.gz 1162924 BLAKE2B 4e6416ec5a2a2eede428fa00906ca0e42460916506e7b2075d622e322ffe53e337a77bf81aa871e1559fb6b9339f2f49e365ca835874e060da33cd7c68e45177 SHA512 860468257c70bd6cb9592f40e495b5efb9092fc6fa3ab68c2fdc729c46d9ea4f0499a0b29904fe9c1ae07c13958e551b4e5cc8b9b71c2401ca833f2020073606 +DIST cdf39_1-dist-cdf.tar.gz 1515823 BLAKE2B a1285c9c146de75147f2b5c2ddee4ac7e6ab97472de7b869f1ff0797f738ab17690adfe42bb9e49c56c14a39c13fb9784cc91bf354c383ccc2e4c4b994e3aab4 SHA512 ae1d6284a308d1db99367c0adf5ec40d9a6f9fc95de58b48d2b940e2fe6a3f0fa046ab17cec8cf5a4fde523f8ae69684b44b72dfa50028725bad25365ef910ab +DIST cdf39_1-dist-java.tar.gz 1166989 BLAKE2B 894aff4252a9c60abd99ce5cd522d8fde2bbee329066aaef4669c032467dff9de0e92dad2a7a8a46227a4e2e428511aa9b2a5abe2e3b40cf4c7cacc1dd4ffcf1 SHA512 53109a612570658e508ee84b36ce0eef87b67b9a890d98f602bad2b0d9b8815bba64abc7181d4fbcd40ab7204002474e560c123893d226caefd22aa13bf1fd9a DIST cdf39ifd.pdf 656522 BLAKE2B 2ec3831f27e92fcec8191bedb1617c9f590b726732e02dd8ca317b814c369b46d50dd19e7bfc81df233e1e32ca6fb8191bf7e075ce67dda1ddd50645d5fc754b SHA512 f4de5bea46b7d1ea2621b9fa0ac1ab0f9904ada9a1625ce613f6fdb68ad25ca52398cbf75bb27902e54ba5ee7820f3ea1a563c655186047b8954cb53b4cd8197 diff --git a/sci-libs/cdf/cdf-3.9.1.ebuild b/sci-libs/cdf/cdf-3.9.1.ebuild new file mode 100644 index 000000000000..19f17aa34f59 --- /dev/null +++ b/sci-libs/cdf/cdf-3.9.1.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit flag-o-matic java-pkg-opt-2 toolchain-funcs + +MY_DP="${PN}$(ver_cut 1)$(ver_cut 2)" +MY_P="${MY_DP}_$(ver_cut 3)" + +DESCRIPTION="Common Data Format I/O library for multi-dimensional data sets" +HOMEPAGE="https://cdf.gsfc.nasa.gov" +SRC_BASE="https://spdf.gsfc.nasa.gov/pub/software/${PN}/dist/${MY_P}/unix/" +SRC_URI=" + ${SRC_BASE}/${MY_P}-dist-${PN}.tar.gz + java? ( ${SRC_BASE}/${MY_P}-dist-java.tar.gz ) + doc? ( + ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}ifd.pdf + ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0crm.pdf + ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0csrm.pdf + ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0frm.pdf + ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0prm.pdf + ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0ug.pdf + ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0vbrm.pdf + ) +" +S="${WORKDIR}/${MY_P}-dist" + +LICENSE="CDF" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="doc examples java ncurses static-libs" +RESTRICT="bindist" + +RDEPEND=" + java? ( >=virtual/jre-1.8:= ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + ncurses? ( virtual/pkgconfig ) +" + +PATCHES=( + # Respect cflags, ldflags, soname + "${FILESDIR}"/${PN}-3.9.1-respect-flags.patch +) + +src_prepare() { + default + + # Use proper lib dir + sed -i \ + -e "s:\$(INSTALLDIR)/lib:\$(INSTALLDIR)/$(get_libdir):g" \ + Makefile || die "sed failed" + # Uses the wide variant of *curses functions + sed -i \ + -e "s:-I/usr/include/ncurses:$($(tc-getPKG_CONFIG) --cflags-only-I ncursesw):g" \ + Makefile src/tools/Makefile || die "sed failed" +} + +src_compile() { + # Reported upstream by email in 2024-03-22 (bug #862675) + append-flags -fno-strict-aliasing + filter-lto + + PV_SO=${PV:0:1} + + emake \ + OS=linux \ + AR="$(tc-getAR)" \ + CC="$(tc-getCC)" \ + LD="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" \ + RANLIBcmd="$(tc-getRANLIB)" \ + ENV=gnu \ + SHARED=yes \ + SHAREDEXT_linux=so.${PV_SO} \ + CURSESLIB_linux_gnu="$(usex ncurses "$($(tc-getPKG_CONFIG) --libs ncursesw)" "")" \ + CURSES=$(usex ncurses) \ + ${myconf} \ + all + + if use java; then + export CDF_BASE="${S}" + export CDF_LIB="${S}/src/lib" + cd cdfjava/jni + $(tc-getCC) \ + ${CFLAGS} -fPIC \ + -I${CDF_BASE}/src/include \ + -I$(java-config -O)/include \ + -I$(java-config -O)/include/linux \ + -c cdfNativeLibrary.c \ + -o cdfNativeLibrary.o \ + || die "compiling java lib failed" + $(tc-getCC) \ + ${LDFLAGS} \ + -shared cdfNativeLibrary.o \ + -Wl,-soname=libcdfNativeLibrary.so.${PV_SO} \ + -L${CDF_LIB} -lcdf -lm \ + -o libcdfNativeLibrary.so.${PV_SO} \ + || die "linking java lib failed" + fi +} + +src_test() { + emake -j1 test +} + +src_install() { + dodir /usr/bin /usr/$(get_libdir) + # -j1 (fragile non-autotooled make) + emake -j1 \ + INSTALLDIR="${ED}/usr" \ + SHAREDEXT=so.${PV_SO} \ + install + dosym libcdf.so.${PV_SO} /usr/$(get_libdir)/libcdf.so + use static-libs || rm "${ED}"/usr/$(get_libdir)/libcdf.a + dodoc Release.notes CHANGES.txt Welcome.txt + doenvd "${FILESDIR}"/50cdf + + if use doc; then + dodoc "${DISTDIR}"/${MY_DP}{0{crm,csrm,frm,prm,ug,vbrm},ifd}.pdf + fi + + if use examples; then + docinto examples + dodoc samples/* + fi + + if use java; then + cd cdfjava || die + dolib.so jni/libcdfNativeLibrary.so.${PV_SO} + dosym libcdfNativeLibrary.so.${PV_SO} \ + /usr/$(get_libdir)/libcdfNativeLibrary.so + java-pkg_dojar */*.jar + if use examples; then + docinto examples/java + dodoc examples/* + fi + fi + + # move this to a better location + dodir "/usr/share/${PF}" + mv "${ED}/usr/CDFLeapSeconds.txt" "${ED}/usr/share/${PF}/" || die +} diff --git a/sci-libs/cdf/files/cdf-3.9.1-respect-flags.patch b/sci-libs/cdf/files/cdf-3.9.1-respect-flags.patch new file mode 100644 index 000000000000..7c65988d968a --- /dev/null +++ b/sci-libs/cdf/files/cdf-3.9.1-respect-flags.patch @@ -0,0 +1,85 @@ +--- a/Makefile ++++ b/Makefile +@@ -1049,7 +1049,7 @@ install.tools: create.bin copy.tools + install.help_: create.help copy.help + + install.lib: create.lib copy.lib.a +- @if [ -f $(LIBsrcDIR)/libcdf.so ] ; then \ ++ @if [ -f $(LIBsrcDIR)/libcdf.$(SHAREDEXT) ] ; then \ + $(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.so ; \ + else \ + $(NULL) ; \ +@@ -1198,10 +1198,10 @@ copy.include: + cp $(INCsrcDIR)/cdftools.h $(INSTALLDIR)/include + + copy.lib.so: +- @echo cp $(LIBsrcDIR)/libcdf.so $(INSTALLDIR)/lib +- cp $(LIBsrcDIR)/libcdf.so $(INSTALLDIR)/lib/libcdf.$(VERSION).so +- rm -f $(INSTALLDIR)/lib/libcdf.so +- cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).so libcdf.so ++ @echo cp $(LIBsrcDIR)/libcdf.$(SHAREDEXT) $(INSTALLDIR)/lib ++ cp $(LIBsrcDIR)/libcdf.$(SHAREDEXT) $(INSTALLDIR)/lib/libcdf.$(VERSION).so ++ rm -f $(INSTALLDIR)/lib/libcdf.$(SHAREDEXT) ++ cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).so libcdf.$(SHAREDEXT) + + copy.lib.sl: + @echo cp $(LIBsrcDIR)/libcdf.sl $(INSTALLDIR)/lib +--- a/src/lib/Makefile ++++ b/src/lib/Makefile +@@ -62,9 +62,9 @@ AR=ar + RANLIBcmd=ranlib + MACos=Darwin + +-CFLAGS=$(COPTIONS) $(PIC) -I$(INCLUDEcdf) -I$(ZlibDIR) ++CFLAGS+=$(COPTIONS) $(PIC) -I$(INCLUDEcdf) -I$(ZlibDIR) + CFLAGS2=-DZ_PREFIX +-LDFLAGS=$(LDOPTIONS) ++LDFLAGS+=$(LDOPTIONS) + ARFLAGS=$(AROPTIONS) + ZLIB=zlib + +@@ -108,17 +108,18 @@ ranlib.yes: + + shared.yes: libcdf.$(SHAREDEXT) + ++libcdf.$(SHAREDEXT) \ + libcdf.so \ + libcdf.dylib \ + libcdf.dll \ + libcdf.sl: $(OBJs) + @if [ -f $@ ] ; then rm $@ ; else $(NULL) ; fi +- @echo $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS) +- $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS) ++ @echo $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libcdf.$(SHAREDEXT) -o $@ $(OBJs) $(SYSLIBS) ++ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libcdf.$(SHAREDEXT) -o $@ $(OBJs) $(SYSLIBS) + + libcdf.o: $(OBJs) +- @echo $(CC) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS) +- $(CC) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS) ++ @echo $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS) + + .c.o: + @if [ "$<" = "cdfgzip.c" ] || [ "$<" = "cdfgzip64.c" ] ; then \ +--- a/src/tools/Makefile ++++ b/src/tools/Makefile +@@ -33,7 +33,7 @@ + SHELL=/bin/sh + + CURSES=yes +-CCx=gcc ++CCx=$(CC) + LDx= + COPTIONS=-I/usr/include/ncurses -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2 + COPTIONSld= +@@ -45,8 +45,8 @@ MAKE=make + INCLUDEcdf= ../include + + CC=$(CCx) +-CFLAGS=$(COPTIONS) -I$(INCLUDEcdf) +-CFLAGSld=$(COPTIONSld) ++CFLAGS+=$(COPTIONS) -I$(INCLUDEcdf) ++CFLAGSld+=$(COPTIONSld) + ifeq ($(LDx),) + LDx = $(CCx) + endif diff --git a/sci-libs/openblas/Manifest b/sci-libs/openblas/Manifest index 4c558875132b..d4caeaeaef99 100644 --- a/sci-libs/openblas/Manifest +++ b/sci-libs/openblas/Manifest @@ -1,2 +1,3 @@ DIST OpenBLAS-0.3.30.tar.gz 24699801 BLAKE2B 8a2fa304a44355bab128fd965054591570bd7fd5877a71a32420bfe6f4fe9bf6e77f3a4c363c91bcbad6862626783734d6e0111311d66a24e56f6175ae6f8799 SHA512 c726ced2d3e6ebd3ddcd0b13c255bb43fae8c12d2aec15e9ef992b0bc7099996c02cd284ccaaa7b5fac3f23f280b098063dd60f521d97a68dc183ab192fcccdb DIST OpenBLAS-0.3.31.tar.gz 25232810 BLAKE2B d4220ebd58a70bb776e310229a85e901869a4669174607ef941ecddd794571f6dc6b3aeffdbe4d219e187cf1def18f5b9e4faea4fe55fc8ca904985ee90f0cb6 SHA512 703b84c476c148a0922a04b1c33c9c4c452f478d608d93e59204b8f0f2c516344301ff0a4dbb3750a2449db0d28cc2df001c295898e859b41ecb8381f9c2eab8 +DIST OpenBLAS-0.3.32.tar.gz 25221171 BLAKE2B fa5135a5d0f38bb15e41c9e73bb34193c3497ee4eb1745066845cde46092b4859ab98c1649552ee760571ca84ebbb97984041508e9ab6c7cbab0c77f9c2b55f8 SHA512 5aac0c41a78bca872439bcde67445dd12de27d9efd0d9db51e6e3a31dfa2d0f6a6c5ee1c1de2bf7ad2f89082259e67f27ddaeafb0553bb5f2ca9a90c8a3dde29 diff --git a/sci-libs/openblas/openblas-0.3.32.ebuild b/sci-libs/openblas/openblas-0.3.32.ebuild new file mode 100644 index 000000000000..524b4d5050de --- /dev/null +++ b/sci-libs/openblas/openblas-0.3.32.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic fortran-2 toolchain-funcs + +MY_P=OpenBLAS-${PV} +DESCRIPTION="Optimized BLAS library based on GotoBLAS2" +HOMEPAGE="https://github.com/OpenMathLib/OpenBLAS" +SRC_URI="https://github.com/OpenMathLib/OpenBLAS/releases/download/v${PV}/${MY_P}.tar.gz" +S="${WORKDIR}"/${MY_P} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~x64-macos" +IUSE="cpudetection index64 openmp pthread relapack test" +REQUIRED_USE="?? ( openmp pthread )" +RESTRICT="!cpudetection? ( bindist ) !test? ( test )" + +BDEPEND="virtual/pkgconfig" + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + elog "This software has a massive number of options that" + elog "are configurable and it is *impossible* for all of" + elog "those to fit inside any manageable ebuild." + elog "The Gentoo provided package has enough to build" + elog "a fully optimized library for your targeted CPU." + elog "You can set the CPU target using the environment" + elog "variable - OPENBLAS_TARGET or it will be detected" + elog "automatically from the target toolchain (supports" + elog "cross compilation toolchains)." + elog "You can control the maximum number of threads" + elog "using OPENBLAS_NTHREAD, default=64 and number of " + elog "parallel calls to allow before further calls wait" + elog "using OPENBLAS_NPARALLEL, default=8." +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + fortran-2_pkg_setup +} + +src_prepare() { + default + + # TODO: Unbundle lapack like Fedora does? + # https://src.fedoraproject.org/rpms/openblas/blob/rawhide/f/openblas-0.2.15-system_lapack.patch + + # Don't build the tests as part of "make all". We'll do + # it explicitly later if the test phase is enabled. + sed -i -e "/^all :: tests/s: tests::g" Makefile || die + + # If 64bit-index is needed, create second library with LIBPREFIX=libopenblas64 + if use index64; then + cp -aL "${S}" "${S}-index64" || die + fi +} + +src_configure() { + # List of most configurable options is in Makefile.rule. + + # Not an easy fix, https://github.com/xianyi/OpenBLAS/issues/4128 + filter-lto + + tc-export CC FC LD AR AS RANLIB + + # HOSTCC is used for scripting + export HOSTCC="$(tc-getBUILD_CC)" + + # Threading options + export USE_THREAD=0 + export USE_OPENMP=0 + if use openmp; then + USE_THREAD=1 + USE_OPENMP=1 + elif use pthread; then + USE_THREAD=1 + USE_OPENMP=0 + fi + + # Disable submake with -j and default optimization flags in Makefile.system + # Makefile.rule says to not modify COMMON_OPT/FCOMMON_OPT... + export MAKE_NB_JOBS=-1 COMMON_OPT=" " FCOMMON_OPT=" " + + # Target CPU ARCH options generally detected automatically from cross toolchain + if use cpudetection ; then + export DYNAMIC_ARCH=1 NO_AFFINITY=1 TARGET=GENERIC + fi + + case $(tc-get-ptr-size) in + 4) + # NUM_BUFFERS = MAX(50, (2*NUM_PARALLEL*NUM_THREADS) + # BUFFER_SIZE = (16 << 20) (on x86) + # NUM_BUFFERS * BUFFER_SIZE is allocated and must be + # <4GiB on 32-bit arches (bug #967251). + # + # Scale down to 2*8*(16 << 20) = 256MiB for 32-bit + # arches. This avoids spinning in blas_memory_alloc + # which doesn't handle ENOMEM. + export NUM_PARALLEL=${OPENBLAS_NPARALLEL:-2} + export NUM_THREADS=${OPENBLAS_NTHREAD:-8} + ;; + 8) + # XXX: The current values here rely on overcommit + # for most systems (bug #967026). + export NUM_PARALLEL=${OPENBLAS_NPARALLEL:-8} + export NUM_THREADS=${OPENBLAS_NTHREAD:-64} + ;; + *) + die "Unexpected tc-get-ptr-size. Please file a bug." + ;; + esac + + # Allow setting OPENBLAS_TARGET to override auto detection in case the + # toolchain is not enough to detect. + # https://github.com/xianyi/OpenBLAS/blob/develop/TargetList.txt + if ! use cpudetection ; then + if [[ -n "${OPENBLAS_TARGET}" ]] ; then + export TARGET="${OPENBLAS_TARGET}" + elif [[ ${CBUILD} != ${CHOST} ]] ; then + case ${CHOST} in + aarch64-*) + export TARGET="ARMV8" + export BINARY="64" + ;; + powerpc64le-*) + export TARGET="POWER8" + export BUILD_BFLOAT16=1 + export BINARY=64 + ;; + esac + fi + fi + + export NO_STATIC=1 + export BUILD_RELAPACK=$(usex relapack 1 0) + export PREFIX="${EPREFIX}/usr" +} + +emake64() { + emake -C "${S}-index64" \ + INTERFACE64=1 \ + LIBNAMESUFFIX=64 \ + "${@}" +} + +src_compile() { + emake shared + + if use index64; then + emake64 shared + fi +} + +src_test() { + emake tests + + if use index64; then + emake64 tests + fi +} + +src_install() { + local libdir=$(get_libdir) + emake install \ + DESTDIR="${D}" \ + OPENBLAS_INCLUDE_DIR='$(PREFIX)'/include/openblas \ + OPENBLAS_LIBRARY_DIR='$(PREFIX)'/${libdir} + + dodoc GotoBLAS_*.txt *.md Changelog.txt + + if use index64; then + emake64 install \ + DESTDIR="${D}" \ + OPENBLAS_INCLUDE_DIR='$(PREFIX)'/include/openblas64 \ + OPENBLAS_LIBRARY_DIR='$(PREFIX)'/${libdir} + fi +} |
