diff options
author | Michael Orlitzky <mjo@gentoo.org> | 2020-04-01 19:59:53 -0400 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2020-04-03 12:03:48 -0400 |
commit | 8db3670e7902795f2ae61d64b1930a946e5b2efc (patch) | |
tree | 9ed43f004d1f357b9d9579d24eaa8ba643dca05b /sci-libs/fflas-ffpack | |
parent | profiles/desc/cpu_flags_x86.desc: add avx512dq and avx512vl. (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild | 62 | ||||
-rw-r--r-- | sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch | 90 | ||||
-rw-r--r-- | sci-libs/fflas-ffpack/metadata.xml | 37 |
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> |