openblas: Use flang to build lapack on clang64.
This commit is contained in:
parent
e436988f77
commit
fd6b60e652
@ -6,7 +6,7 @@ pkgbase=mingw-w64-openblas
|
|||||||
pkgname=("${MINGW_PACKAGE_PREFIX}-openblas"
|
pkgname=("${MINGW_PACKAGE_PREFIX}-openblas"
|
||||||
$([[ "${CARCH}" == "i686" ]] || echo "${MINGW_PACKAGE_PREFIX}-openblas64"))
|
$([[ "${CARCH}" == "i686" ]] || echo "${MINGW_PACKAGE_PREFIX}-openblas64"))
|
||||||
pkgver=0.3.28
|
pkgver=0.3.28
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD, providing optimized blas, lapack, and cblas (mingw-w64)"
|
pkgdesc="An optimized BLAS library based on GotoBLAS2 1.13 BSD, providing optimized blas, lapack, and cblas (mingw-w64)"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
||||||
@ -24,7 +24,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
|||||||
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
||||||
"${MINGW_PACKAGE_PREFIX}-cmake"
|
"${MINGW_PACKAGE_PREFIX}-cmake"
|
||||||
"${MINGW_PACKAGE_PREFIX}-ninja"
|
"${MINGW_PACKAGE_PREFIX}-ninja"
|
||||||
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-fc")
|
"${MINGW_PACKAGE_PREFIX}-fc"
|
||||||
"dos2unix")
|
"dos2unix")
|
||||||
options=('!buildflags')
|
options=('!buildflags')
|
||||||
source=(https://github.com/OpenMathLib/OpenBLAS/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz
|
source=(https://github.com/OpenMathLib/OpenBLAS/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz
|
||||||
@ -64,10 +64,6 @@ _build_openblas() {
|
|||||||
_extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
|
_extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
|
|
||||||
_extra_config+=("-DC_LAPACK=ON")
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${CARCH} == aarch64 ]]; then
|
if [[ ${CARCH} == aarch64 ]]; then
|
||||||
# Clang wasn't able to compile all the kernels inside the arm64 folder,
|
# Clang wasn't able to compile all the kernels inside the arm64 folder,
|
||||||
# Enable only the cores known to run Windows on ARM
|
# Enable only the cores known to run Windows on ARM
|
||||||
@ -76,12 +72,18 @@ _build_openblas() {
|
|||||||
_extra_config+=("-DTARGET=CORE2" "-DDYNAMIC_ARCH=ON")
|
_extra_config+=("-DTARGET=CORE2" "-DDYNAMIC_ARCH=ON")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
|
||||||
|
_extra_config+=("-DOpenMP_Fortran_FLAGS=-fopenmp" "-DOpenMP_Fortran_LIB_NAMES=omp")
|
||||||
|
export FFLAGS="-I${MINGW_PREFIX}/include"
|
||||||
|
fi
|
||||||
|
|
||||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||||
${MINGW_PREFIX}/bin/cmake \
|
${MINGW_PREFIX}/bin/cmake \
|
||||||
-G"Ninja" \
|
-G"Ninja" \
|
||||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||||
-DBUILD_SHARED_LIBS=ON \
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
-DBUILD_STATIC_LIBS=ON \
|
-DBUILD_STATIC_LIBS=ON \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
-DUSE_THREAD=ON \
|
-DUSE_THREAD=ON \
|
||||||
-DNUM_THREADS=64 \
|
-DNUM_THREADS=64 \
|
||||||
-DUSE_OPENMP=ON \
|
-DUSE_OPENMP=ON \
|
||||||
@ -108,11 +110,15 @@ build() {
|
|||||||
|
|
||||||
check() {
|
check() {
|
||||||
cd "${srcdir}"/build-${MSYSTEM}-32
|
cd "${srcdir}"/build-${MSYSTEM}-32
|
||||||
ctest
|
${MINGW_PREFIX}/bin/cmake -DBUILD_TESTING=ON ../${_realname}-${pkgver}
|
||||||
|
${MINGW_PREFIX}/bin/cmake --build .
|
||||||
|
${MINGW_PREFIX}/bin/ctest
|
||||||
|
|
||||||
if [ "${CARCH}" != "i686" ]; then
|
if [ "${CARCH}" != "i686" ]; then
|
||||||
cd "${srcdir}"/build-${MSYSTEM}-64
|
cd "${srcdir}/build-${MSYSTEM}-64"
|
||||||
ctest
|
${MINGW_PREFIX}/bin/cmake -DBUILD_TESTING=ON ../${_realname}-${pkgver}
|
||||||
|
${MINGW_PREFIX}/bin/cmake --build .
|
||||||
|
${MINGW_PREFIX}/bin/ctest
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,6 +129,11 @@ package_openblas() {
|
|||||||
|
|
||||||
DESTDIR=${pkgdir} ${MINGW_PREFIX}/bin/cmake --install .
|
DESTDIR=${pkgdir} ${MINGW_PREFIX}/bin/cmake --install .
|
||||||
|
|
||||||
|
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
|
||||||
|
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/OpenBLAS/*.cmake; do
|
||||||
|
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
|
||||||
|
done
|
||||||
|
|
||||||
# Install License
|
# Install License
|
||||||
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
|
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
|
||||||
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/lapack-netlib/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE-lapack
|
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/lapack-netlib/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE-lapack
|
||||||
@ -138,6 +149,11 @@ package_openblas64() {
|
|||||||
|
|
||||||
DESTDIR=${pkgdir} ${MINGW_PREFIX}/bin/cmake --install .
|
DESTDIR=${pkgdir} ${MINGW_PREFIX}/bin/cmake --install .
|
||||||
|
|
||||||
|
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
|
||||||
|
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/OpenBLAS64/*.cmake; do
|
||||||
|
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
|
||||||
|
done
|
||||||
|
|
||||||
# Install License
|
# Install License
|
||||||
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}64/LICENSE
|
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}64/LICENSE
|
||||||
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/lapack-netlib/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}64/LICENSE-lapack
|
install -Dm0644 "${srcdir}"/${_realname}-${pkgver}/lapack-netlib/LICENSE "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}64/LICENSE-lapack
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user