PKGBUILDs/community/openblas/PKGBUILD
2023-02-04 02:42:26 +00:00

99 lines
2.9 KiB
Bash

# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Giuseppe Borzi <gborzi _AT_ ieee _DOT_ org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - 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: