summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Orlitzky <mjo@gentoo.org>2020-04-01 19:59:53 -0400
committerMichael Orlitzky <mjo@gentoo.org>2020-04-03 12:03:48 -0400
commit8db3670e7902795f2ae61d64b1930a946e5b2efc (patch)
tree9ed43f004d1f357b9d9579d24eaa8ba643dca05b /sci-libs/fflas-ffpack
parentprofiles/desc/cpu_flags_x86.desc: add avx512dq and avx512vl. (diff)
downloadgentoo-8db3670e7902795f2ae61d64b1930a946e5b2efc.tar.gz
gentoo-8db3670e7902795f2ae61d64b1930a946e5b2efc.tar.bz2
gentoo-8db3670e7902795f2ae61d64b1930a946e5b2efc.zip
sci-libs/fflas-ffpack: new package for finite-field linear algebra.
This is a straightforward import of the latest fflas-ffpack-2.4.3.ebuild that François Bissey has been maintaining in the sage-on-gentoo overlay, with only a few minor changes: * I added a "+" to the LICENSE to match the upstream LGPL-2.1+. * I switched the openmp check to use tc-check-openmp() conditionally on the MERGE_TYPE variable. * Added BDEPEND="virtual/pkgconfig" since we patch in a call to PKG_CHECK_MODULES. I also removed a warning about build failures with USE=openmp. From what I can tell, this stems from an older report (upstream Github issue 48) using gcc-4.9.x that was never fully debugged. If the problems persist, we can revisit that report, or just mask the flag. Closes: https://bugs.gentoo.org/show_bug.cgi?id=715678 Package-Manager: Portage-2.3.89, Repoman-2.3.20 Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
Diffstat (limited to 'sci-libs/fflas-ffpack')
-rw-r--r--sci-libs/fflas-ffpack/Manifest1
-rw-r--r--sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild62
-rw-r--r--sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch90
-rw-r--r--sci-libs/fflas-ffpack/metadata.xml37
4 files changed, 190 insertions, 0 deletions
diff --git a/sci-libs/fflas-ffpack/Manifest b/sci-libs/fflas-ffpack/Manifest
new file mode 100644
index 000000000000..d10a12abc35b
--- /dev/null
+++ b/sci-libs/fflas-ffpack/Manifest
@@ -0,0 +1 @@
+DIST fflas-ffpack-2.4.3.tar.gz 1059033 BLAKE2B e416429bb426a81cf9c25d54c83380ff9a9d658c711da06e6359d968843d4d9d26cf8389379f9ad4a5cbcee93e0afc9fe0497bb7a8f190e0c72c0b1f7b67de18 SHA512 c7620ba5a92e4114a581a6bea32267f9d5a9f0eb7e23fc0a7a97ce4b8124bb7b29f89ff2ad6ad270d97c76489625b57a354e581905b74ee57b35f4ca3e196a44
diff --git a/sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild b/sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild
new file mode 100644
index 000000000000..4115dc61acec
--- /dev/null
+++ b/sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Library for dense linear algebra over word-size finite fields"
+HOMEPAGE="https://linbox-team.github.io/fflas-ffpack/"
+SRC_URI="https://github.com/linbox-team/${PN}/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="static-libs openmp cpu_flags_x86_fma3 cpu_flags_x86_fma4 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_avx512dq cpu_flags_x86_avx512vl"
+
+# Our autotools patch hacks in PKG_CHECK_MODULES calls.
+BDEPEND="virtual/pkgconfig"
+DEPEND="virtual/cblas
+ virtual/blas
+ virtual/lapack
+ dev-libs/gmp[cxx]
+ =sci-libs/givaro-4.1*"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-2.3.2-blaslapack.patch" )
+
+pkg_pretend() {
+ [[ "${MERGE_TYPE}" != "binary" ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup(){
+ tc-export PKG_CONFIG
+}
+
+src_prepare(){
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --enable-precompilation \
+ $(use_enable openmp) \
+ $(use_enable cpu_flags_x86_fma3 fma) \
+ $(use_enable cpu_flags_x86_fma4 fma4) \
+ $(use_enable cpu_flags_x86_sse3 sse3) \
+ $(use_enable cpu_flags_x86_ssse3 ssse3) \
+ $(use_enable cpu_flags_x86_sse4_1 sse41) \
+ $(use_enable cpu_flags_x86_sse4_2 sse42) \
+ $(use_enable cpu_flags_x86_avx avx) \
+ $(use_enable cpu_flags_x86_avx2 avx2) \
+ $(use_enable cpu_flags_x86_avx512f avx512f) \
+ $(use_enable cpu_flags_x86_avx512dq avx512dq) \
+ $(use_enable cpu_flags_x86_avx512vl avx512vl) \
+ $(use_enable static-libs static)
+}
+
+src_install(){
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch b/sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch
new file mode 100644
index 000000000000..3154a2618196
--- /dev/null
+++ b/sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch
@@ -0,0 +1,90 @@
+diff --git a/configure.ac b/configure.ac
+index 5b46b18..5e0264a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -248,49 +248,24 @@ dnl echo '**********************************************************************
+ dnl exit 1
+ dnl ])
+
+-BLAS_FOUND=false
+-
+-FF_CHECK_BLAS_CFLAGS
+-FF_CHECK_BLAS_LIBS
+-FF_CHECK_MKL
+-FF_CHECK_USER_BLAS
+-FF_CHECK_USER_LAPACK
+-
+-FF_OPENBLAS_NUM_THREADS
+-
+-# FF_CHECK_BLAS
+-
+-# FF_CHECK_GOTOBLAS
+-
+-# FF_CHECK_GSL
+-
+-# if test "$BLAS_FOUND" = "false" ; then
+- # FF_CHECK_CBLAS
+-# fi
+-
+-# if test "$BLAS_FOUND" = "false" ; then
+- # FF_CHECK_OTHERBLAS
+-# fi
+-
+-# FF_CHECK_LAPACK
+-
+-# if test "$BLAS_FOUND" = "false" ; then
+- # FF_CHECK_BLAS2
+-# fi
+-
+-
+-
+-# BLAS_LIBS="${BLAS_LIBS}"
+-# BLAS_LIBS="-L/${BLAS_PATH} ${LAPACK_LIBS} ${BLAS_LIBS}"
+-# AC_SUBST(BLAS_LIBS)
+-
+-# FF_CHECK_CUDA
+-
+-# AM_CONDITIONAL(FFLASFFPACK_HAVE_BLAS, test "x$BLAS_FOUND" != "xfalse")
+-
+-
+-# FF_BENCH
+-
++PKG_PROG_PKG_CONFIG
++
++PKG_CHECK_MODULES([BLAS], [cblas blas],[
++ AC_DEFINE(HAVE_BLAS,1,[Define if BLAS is installed])
++ AC_DEFINE(HAVE_CBLAS,1,[Define if C interface to BLAS is installed])
++ HAVE_BLAS=yes
++ BLAS_PATH=""
++ CBLAS_LIBS="${BLAS_LIBS}"
++ AC_SUBST(BLAS_LIBS)
++ AC_SUBST(CBLAS_LIBS)
++ AC_SUBST(BLAS_CFLAGS)
++ AC_SUBST(BLAS_PATH)])
++
++PKG_CHECK_MODULES([LAPACK], [lapack],[
++ AC_DEFINE(HAVE_LAPACK,1,[Define if LAPACK is installed])
++ AC_SUBST(LAPACK_LIBS)])
++
++AM_CONDITIONAL(FFLASFFPACK_HAVE_LAPACK, test "x$HAVE_LAPACK" == "x1")
+
+ FF_DOC
+
+diff --git a/fflas-ffpack-config.in b/fflas-ffpack-config.in
+index f1dac22..17633a0 100644
+--- a/fflas-ffpack-config.in
++++ b/fflas-ffpack-config.in
+@@ -107,11 +107,11 @@ while test $# -gt 0; do
+ ;;
+
+ --libs)
+- echo @PARLIBS@ @PRECOMPILE_LIBS@ @BLAS_LIBS@ @GIVARO_LIBS@ # @CUDA_LIBS@
++ echo @PARLIBS@ @PRECOMPILE_LIBS@ @LAPACK_LIBS@ @BLAS_LIBS@ @GIVARO_LIBS@ # @CUDA_LIBS@
+ ;;
+
+ --blas-libs)
+- echo @BLAS_LIBS@
++ echo @LAPACK_LIBS@ @BLAS_LIBS@
+ ;;
+
+ --blas-home)
diff --git a/sci-libs/fflas-ffpack/metadata.xml b/sci-libs/fflas-ffpack/metadata.xml
new file mode 100644
index 000000000000..9de9afc41f19
--- /dev/null
+++ b/sci-libs/fflas-ffpack/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ </maintainer>
+ <!--
+ mjo: François maintained this package in the sage-on-gentoo overlay
+ long before I moved it into ::gentoo. You don't need an ACK from me
+ to merge his changes.
+ -->
+ <maintainer type="person">
+ <email>frp.bissey@gmail.com</email>
+ <name>François Bissey</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+
+ <longdescription lang="en">
+ FFLAS-FFPACK is a library for basic linear algebra operations over
+ a finite field. It is inspired by the BLAS interface (Basic Linear
+ Algebra Subprograms) and the LAPACK library for numerical linear
+ algebra, and shares part of their design. Yet it differs in many
+ aspects due to the specifics of computing over a finite field: it
+ is generic with respect to the finite field, so as to accommodate
+ a large variety of field sizes and implementations; consequently,
+ all routines use C++ template generics and the library is
+ primarily meant to be used as a source code library, to be
+ included and compiled in the user's software.
+ </longdescription>
+
+ <upstream>
+ <remote-id type="github">linbox-team/fflas-ffpack</remote-id>
+ </upstream>
+</pkgmetadata>