# Maintainer: Felix Yan # Contributor: Giuseppe Borzi # ALARM: Kevin Mihelich # - set build targets pkgbase=openblas pkgname=(openblas openblas64) _pkgname=OpenBLAS pkgver=0.3.21 pkgrel=4 _blasver=3.9.0 pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD" arch=('x86_64') url="https://www.openblas.net/" license=('BSD') depends=('gcc-libs') makedepends=('cmake' 'perl' 'gcc-fortran') #checkdepends=('cblas') source=(${_pkgname}-v${pkgver}.tar.gz::https://github.com/xianyi/OpenBLAS/archive/v${pkgver}.tar.gz https://github.com/xianyi/OpenBLAS/commit/7e97dddb.patch) sha512sums=('4625c8e6ccfa9120281fd714d3f6b7c3ba2265470c1be76121d6b25dc3dacb899d26e5d9a417ddc616d23909f1411495aa995ef8d8d6df8511cd5cefbabcb1c5' 'fd5b31176a073e9fad95b99d801be2350c6b957595b89f649f84cc7f938177a4d725f7c29f5e785c5441bcd89b5a2b6ddb9e77357dce1fe58fa9814cc8c1ea34') prepare() { # Fix libm linkage https://github.com/xianyi/OpenBLAS/issues/3892 patch -d $_pkgname-$pkgver -p1 < 7e97dddb.patch } build() { [[ $CARCH == "aarch64" ]] && CORE="ARMV8" [[ $CARCH == "armv7h" ]] && CORE="ARMV7" cmake -B build -S $_pkgname-$pkgver \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_WITHOUT_LAPACK=ON \ -DBUILD_WITHOUT_CBLAS=ON \ -DBUILD_TESTING=OFF \ -DNO_AFFINITY=ON \ -DUSE_OPENMP=1 \ -DNO_WARMUP=1 \ -DCORE=$CORE \ -DNUM_THREADS=64 \ -DDYNAMIC_ARCH=ON cmake --build build cmake -B build64 -S $_pkgname-$pkgver \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_WITHOUT_LAPACK=ON \ -DBUILD_WITHOUT_CBLAS=ON \ -DBUILD_TESTING=OFF \ -DNO_AFFINITY=ON \ -DUSE_OPENMP=1 \ -DNO_WARMUP=1 \ -DCORE=$CORE \ -DNUM_THREADS=64 \ -DDYNAMIC_ARCH=ON \ -DINTERFACE64=1 cmake --build build64 } check() { cd $_pkgname-$pkgver # TODO #make CFLAGS="$CPPFLAGS $CFLAGS -lcblas" TARGET=CORE2 tests } package_openblas() { provides=("blas=$_blasver") conflicts=('blas') DESTDIR="$pkgdir" cmake --install build install -Dm644 $_pkgname-$pkgver/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE cd "$pkgdir"/usr/lib/ ln -s libopenblas.so.${pkgver%.*} libblas.so ln -s libopenblas.so.${pkgver%.*} libblas.so.3 ln -s openblas.pc "$pkgdir"/usr/lib/pkgconfig/blas.pc } package_openblas64() { pkgdesc+=" (64-bit integers)" provides=("blas64=$_blasver") conflicts=('blas64') DESTDIR="$pkgdir" cmake --install build64 install -Dm644 $_pkgname-$pkgver/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE cd "$pkgdir"/usr/lib/ ln -s libopenblas_64.so.${pkgver%.*} libblas64.so ln -s libopenblas_64.so.${pkgver%.*} libblas64.so.3 ln -s libopenblas_64.so.${pkgver%.*} libopenblas64_.so # Needed by julia ln -s openblas64.pc "$pkgdir"/usr/lib/pkgconfig/blas64.pc } # vim:set ts=2 sw=2 et: