git: 0c7a24c1125f - main - math/flexiblas: new port, FlexiBLAS - A BLAS and LAPACK wrapper library
Date: Thu, 02 Nov 2023 16:03:34 UTC
The branch main has been updated by thierry: URL: https://cgit.FreeBSD.org/ports/commit/?id=0c7a24c1125f30afb75c60c2d659f20de334e283 commit 0c7a24c1125f30afb75c60c2d659f20de334e283 Author: Thierry Thomas <thierry@FreeBSD.org> AuthorDate: 2023-11-02 14:37:46 +0000 Commit: Thierry Thomas <thierry@FreeBSD.org> CommitDate: 2023-11-02 16:02:06 +0000 math/flexiblas: new port, FlexiBLAS - A BLAS and LAPACK wrapper library FlexiBLAS - A BLAS and LAPACK wrapper library with runtime exchangeable backends. --- math/Makefile | 1 + math/flexiblas/Makefile | 46 +++++++++++++++++++++++++++++++++++++++++ math/flexiblas/distinfo | 3 +++ math/flexiblas/pkg-descr | 17 +++++++++++++++ math/flexiblas/pkg-plist | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 121 insertions(+) diff --git a/math/Makefile b/math/Makefile index 71788b9e5e6c..cd303f2e1b65 100644 --- a/math/Makefile +++ b/math/Makefile @@ -329,6 +329,7 @@ SUBDIR += fftw3-quad SUBDIR += flann SUBDIR += flexfloat + SUBDIR += flexiblas SUBDIR += flint2 SUBDIR += flintqs SUBDIR += flopc++ diff --git a/math/flexiblas/Makefile b/math/flexiblas/Makefile new file mode 100644 index 000000000000..327e3ca38f03 --- /dev/null +++ b/math/flexiblas/Makefile @@ -0,0 +1,46 @@ +PORTNAME= flexiblas +PORTVERSION= 3.3.0 +CATEGORIES= math +MASTER_SITES= https://csc.mpi-magdeburg.mpg.de/mpcsc/software/flexiblas/ + +MAINTAINER= thierry@FreeBSD.org +COMMENT= BLAS and LAPACK wrapper library with runtime exchangable backends +WWW= https://www.mpi-magdeburg.mpg.de/projects/flexiblas + +LICENSE= GPLv3 + +BUILD_DEPENDS= tbb>0:devel/tbb # oneTBB should be supported in 3.3.1 +LIB_DEPENDS= libblas.so:math/blas \ + libblis.so:math/blis \ + liblapack.so:math/lapack + +USES= cmake:testing fortran python tar:xz + +CONFIGURE_ENV= PYTHON_EXECUTABLE=${PYTHON_CMD} +USE_LDCONFIG= yes + +.if defined(WITH_DEBUG) +CMAKE_ARGS+= -DFIND_DEBUG:BOOL=ON +.endif + +OPTIONS_DEFINE= DOCS EXAMPLES + +EXAMPLES_CMAKE_ON= -DEXAMPLES:BOOL=ON +EXAMPLES_CMAKE_OFF= -DEXAMPLES:BOOL=OFF + +.include <bsd.port.pre.mk> + +.if exists(${LOCALBASE}/lib/libatlas.so) +LIB_DEPENDS+= libatlas.so:math/atlas +PLIST_SUB+= OPENBLAS="@comment " ATLAS="" +.else +LIB_DEPENDS+= libcblas.so:math/cblas \ + libopenblas.so:math/openblas +PLIST_SUB+= OPENBLAS="" ATLAS="@comment " +.endif + +post-install: + ${MV} ${STAGEDIR}${PREFIX}/etc/flexiblasrc \ + ${STAGEDIR}${PREFIX}/etc/flexiblasrc.sample + +.include <bsd.port.post.mk> diff --git a/math/flexiblas/distinfo b/math/flexiblas/distinfo new file mode 100644 index 000000000000..b503a4b29954 --- /dev/null +++ b/math/flexiblas/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1697391685 +SHA256 (flexiblas-3.3.0.tar.xz) = 6ae49b098a426d58c9cdc14f3ea4e21196616bf0b87bd4070ffd4cfada2145ee +SIZE (flexiblas-3.3.0.tar.xz) = 14672164 diff --git a/math/flexiblas/pkg-descr b/math/flexiblas/pkg-descr new file mode 100644 index 000000000000..dc4860652fd2 --- /dev/null +++ b/math/flexiblas/pkg-descr @@ -0,0 +1,17 @@ +FlexiBLAS is a BLAS and LAPACK wrapper library with runtime exchangable +backends. + +- Runtime exchangeable BLAS and LAPACK backend without recompilation of any + software. +- Supports all BLAS functions and al LAPACK functions from Version 3.10.0 with + an 100% BLAS and LAPACK compatible ABI/API. +- Flexible per system/per user/per host configuration files. +- Integration of user-owned BLAS libraries without administrator privileges, + even in system-wide installed programs. +- Interface for GNU Octave to change the BLAS backend at runtime. +- Works with NETLIB-BLAS, OpenBLAS, ATLAS, Intel MKL, BLIS, ... +- Aware of 32-bit and 64-bit integers +- New: Introspection API to build analysis and profiling tools. + +See also: <https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release> +and <https://github.com/mpimd-csc/flexiblas>. diff --git a/math/flexiblas/pkg-plist b/math/flexiblas/pkg-plist new file mode 100644 index 000000000000..9c2851ed69ab --- /dev/null +++ b/math/flexiblas/pkg-plist @@ -0,0 +1,54 @@ +bin/flexiblas +bin/flexiblas-config +@sample etc/flexiblasrc.sample +%%ATLAS%%etc/flexiblasrc.d/ATLAS.conf +etc/flexiblasrc.d/BlisPThread.conf +etc/flexiblasrc.d/NETLIB.conf +%%OPENBLAS%%etc/flexiblasrc.d/OpenBLASOpenMP.conf +include/flexiblas/blas_gnu.h +include/flexiblas/blas_intel.h +include/flexiblas/cblas.h +include/flexiblas/flexiblas_api.h +include/flexiblas/flexiblas_backend.h +include/flexiblas/flexiblas_config.h +include/flexiblas/flexiblas_dummy_cblas.h +include/flexiblas/flexiblas_dummy_fortran.h +include/flexiblas/flexiblas_fortran_mangle.h +include/flexiblas/flexiblas_mgmt.h +include/flexiblas/flexiblas_real_calls.h +include/flexiblas/flexiblas_real_cblas_calls.h +include/flexiblas/flexiblas_real_lapack.h +include/flexiblas/lapack.h +%%ATLAS%%lib/flexiblas/libflexiblas_atlas.so +lib/flexiblas/libflexiblas_blispthread.so +lib/flexiblas/libflexiblas_fallback_lapack.so +lib/flexiblas/libflexiblas_hook_dummy.so +lib/flexiblas/libflexiblas_hook_profile.so +lib/flexiblas/libflexiblas_netlib.so +%%OPENBLAS%%lib/flexiblas/libflexiblas_openblasopenmp.so +lib/libflexiblas.so +lib/libflexiblas.so.3 +lib/libflexiblas.so.3.3 +lib/libflexiblas_api.so +lib/libflexiblas_api.so.3 +lib/libflexiblas_api.so.3.3 +lib/libflexiblas_mgmt.so +lib/libflexiblas_mgmt.so.3 +lib/libflexiblas_mgmt.so.3.3 +libdata/pkgconfig/flexiblas.pc +libdata/pkgconfig/flexiblas_api.pc +share/man/man1/flexiblas.1.gz +share/man/man3/flexiblas_avail.3.gz +share/man/man3/flexiblas_current_backend.3.gz +share/man/man3/flexiblas_get_num_threads.3.gz +share/man/man3/flexiblas_get_version.3.gz +share/man/man3/flexiblas_list.3.gz +share/man/man3/flexiblas_list_loaded.3.gz +share/man/man3/flexiblas_load_backend.3.gz +share/man/man3/flexiblas_load_backend_library.3.gz +share/man/man3/flexiblas_print_avail_backends.3.gz +share/man/man3/flexiblas_print_current_backend.3.gz +share/man/man3/flexiblas_print_loaded_backends.3.gz +share/man/man3/flexiblas_set_num_threads.3.gz +share/man/man3/flexiblas_switch.3.gz +share/man/man7/flexiblas-api.7.gz