blob: 45d456b00ca75a88cd94b37da6e094e73a68ca66 [file] [log] [blame] [edit]
# Maintainer: Ray Donnelly <mingw.android@gmail.com>
_realname=suitesparse
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-suitesparse")
pkgver=5.8.1
pkgrel=1
pkgdesc='A suite of sparse matrix algorithms (mingw-w64)'
url="http://faculty.cse.tamu.edu/davis/suitesparse.html"
license=('GPL')
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
source=(${_realname}-${pkgver}.tar.gz::"https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v$pkgver.tar.gz"
"0001-mingw-w64-Use-a-not-lib-as-AR_TARGET-extension.patch"
"0002-mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs.patch"
"0003-mingw-w64-no-CUDA.patch"
"0004-mingw-w64-install-static-libs.patch"
"0005-suitesparse-5.8.1-skip-building-Mongoose-GraphBLAS.patch"
"0006-suitesparse-5.8.1-fix-mp-link-order.patch")
depends=("${MINGW_PACKAGE_PREFIX}-openblas"
"${MINGW_PACKAGE_PREFIX}-metis")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake")
options=('staticlibs')
sha256sums=('06726e471fbaa55f792578f9b4ab282ea9d008cf39ddcc3b42b73400acddef40'
'1c848ba4fd5b07d65e0f8e9f6d5153efc51292d0d487d446afbdacf25e4fd8f7'
'537f4fcf973ee6b38437d3ccb416fe851d709edb4b84f730169dd48ac7175000'
'8a94c54322323773442c2c60f54795d402d64ac126e2a1a67e48a0075f8571fa'
'e0faab259d5c474c6af51c9b471f645810a308a1c83976275b1969e81e7d8390'
'a63a1d91bb31f50010c48d112696212deafd1379cc494e711ab9e53724085d19'
'1cf6cd948e5178cbcb16bb0d3c97829311250dedda1e9dcbe0c85dd6bdc4461e')
prepare() {
cd "${srcdir}"/SuiteSparse-${pkgver}
patch -p1 -i "${srcdir}"/0001-mingw-w64-Use-a-not-lib-as-AR_TARGET-extension.patch
patch -p1 -i "${srcdir}"/0002-mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs.patch
patch -p1 -i "${srcdir}"/0003-mingw-w64-no-CUDA.patch
patch -p1 -i "${srcdir}"/0004-mingw-w64-install-static-libs.patch
patch -p1 -i "${srcdir}"/0005-suitesparse-5.8.1-skip-building-Mongoose-GraphBLAS.patch
patch -p1 -i "${srcdir}"/0006-suitesparse-5.8.1-fix-mp-link-order.patch
}
build() {
[[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
cp -rf "${srcdir}"/SuiteSparse-${pkgver} build-${CARCH}
cd "${srcdir}"/build-${CARCH}
# This avoids needing to use a very large patch (we still get diffs but
# that is down to a bug in format string handling somewhere where-by an
# extra 0-padding value is emitted in exponents of scientific floats).
[[ -d "${PWD}"/bin ]] || mkdir "${PWD}"/bin
echo "#!/usr/bin/env bash" > "${PWD}"/bin/diff
echo "/usr/bin/diff --strip-trailing-cr \"\$@\"" >> "${PWD}"/bin/diff
# This avoids needing to use another very large patch.
[[ -d "${PWD}"/lib ]] || mkdir "${PWD}"/lib
ar cru "${PWD}"/lib/librt.a
PATH=${PWD}/bin:"${PATH}" \
CC=gcc \
CXX=g++ \
CFLAGS="-DLONGBLAS='long long'" \
CXXFLAGS="-DLONGBLAS='long long'" \
LDFLAGS="-L${PWD}/lib" \
MY_METIS_LIB=-lmetis \
BLAS=-lopenblas \
LAPACK=-lopenblas \
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
make CMAKE_OPTIONS="-G\"MSYS Makefiles\" -DCMAKE_INSTALL_PREFIX=\"${MINGW_PREFIX}\" -DCMAKE_BUILD_TYPE=Release"
}
package() {
mkdir -p "${pkgdir}"${MINGW_PREFIX}/{bin,lib,include} || true
cd "${srcdir}"/build-${CARCH}
PATH=${PWD}/bin:"${PATH}" \
CC=gcc \
CXX=g++ \
CFLAGS="-DLONGBLAS='long long'" \
CXXFLAGS="-DLONGBLAS='long long'" \
MY_METIS_LIB=-lmetis \
BLAS=-lopenblas \
LAPACK=-lopenblas \
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
make install \
INSTALL="${pkgdir}"${MINGW_PREFIX} \
DESTDIR="${pkgdir}" \
CMAKE_OPTIONS="-G\"MSYS Makefiles\" -DCMAKE_INSTALL_PREFIX=\"${MINGW_PREFIX}\" -DCMAKE_BUILD_TYPE=Release"
}