mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 11:40:06 +02:00
x86_64 is used as a baseline: the "x86_64" entry, whatever status it has, is transformed into "all", and then the other entries in ARCHITECTURES either dropped or rearranged appropriately.
224 lines
8.4 KiB
Bash
224 lines
8.4 KiB
Bash
SUMMARY="A suite of sparse matrix software"
|
||
DESCRIPTION="SuiteSparse is a suite of sparse matrix algorithms, including:
|
||
|
||
* GraphBLAS: graph algorithms in the language of linear algebra
|
||
* Mongoose: graph partitioning
|
||
* ssget: MATLAB and Java interface to the SuiteSparse Matrix Collection
|
||
* UMFPACK: multifrontal LU factorization. Appears as LU and x=A\b in MATLAB.
|
||
* CHOLMOD: supernodal Cholesky. Appears as CHOL and x=A\b in MATLAB. Now \
|
||
with CUDA acceleration, in collaboration with NVIDIA.
|
||
* SPQR: multifrontal QR. Appears as QR and x=A\b in MATLAB, with CUDA \
|
||
acceleration.
|
||
* KLU and BTF: sparse LU factorization, well-suited for circuit simulation.
|
||
* Ordering methods (AMD, CAMD, COLAMD, and CCOLAMD). AMD and COLAMD appear \
|
||
in MATLAB.
|
||
* CSparse and CXSparse: a concise sparse Cholesky factorization package for \
|
||
my SIAM book.
|
||
* spqr_rank: a MATLAB package for reliable sparse rank detection, null set \
|
||
bases, pseudoinverse solutions, and basic solutions.
|
||
* Factorize: an object-oriented solver for MATLAB (a reusable backslash).
|
||
* SSMULT and SFMULT: sparse matrix multiplication. Appears as the built-in \
|
||
C=A*B operator in MATLAB.
|
||
* ... and many other packages."
|
||
HOMEPAGE="http://www.suitesparse.com"
|
||
COPYRIGHT="1996-2019 Timothy A. Davis et al."
|
||
LICENSE="SUITESPARSE"
|
||
REVISION="1"
|
||
SOURCE_URI="https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v$portVersion.tar.gz"
|
||
CHECKSUM_SHA256="5ba5add1663d51a1b6fb128b50fe869b497f3096765ff7f8212f0ede044b9557"
|
||
SOURCE_DIR="SuiteSparse-$portVersion"
|
||
PATCHES="suitesparse-$portVersion.patchset"
|
||
|
||
ARCHITECTURES="all !x86_gcc2"
|
||
SECONDARY_ARCHITECTURES="x86"
|
||
|
||
libAMDVersion="2.4.6"
|
||
libAMDVersionCompat="$libAMDVersion compat >= ${libAMDVersion%%.*}"
|
||
libBTFVersion="1.2.6"
|
||
libBTFVersionCompat="$libBTFVersion compat >= ${libBTFVersion%%.*}"
|
||
libCAMDVersion="2.4.6"
|
||
libCAMDVersionCompat="$libCAMDVersion compat >= ${libCAMDVersion%%.*}"
|
||
libCCOLAMDVersion="2.9.6"
|
||
libCCOLAMDVersionCompat="$libCCOLAMDVersion compat >= ${libCCOLAMDVersion%%.*}"
|
||
libCHOLMODVersion="3.0.14"
|
||
libCHOLMODVersionCompat="$libCHOLMODVersion compat >= ${libCHOLMODVersion%%.*}"
|
||
libCOLAMDVersion="2.9.6"
|
||
libCOLAMDVersionCompat="$libCOLAMDVersion compat >= ${libCOLAMDVersion%%.*}"
|
||
libCXSPARSEVersion="3.2.0"
|
||
libCXSPARSEVersionCompat="$libCXSPARSEVersion compat >= ${libCXSPARSEVersion%%.*}"
|
||
libGRAPHBLASVersion="3.2.0"
|
||
libGRAPHBLASVersionCompat="$libGRAPHBLASVersion compat >= ${libGRAPHBLASVersion%%.*}"
|
||
libKLUVersion="1.3.8"
|
||
libKLUVersionCompat="$libKLUVersion compat >= ${libKLUVersion%%.*}"
|
||
libLDLVersion="2.2.6"
|
||
libLDLVersionCompat="$libLDLVersion compat >= ${libLDLVersion%%.*}"
|
||
libMETISVersion="$portVersion"
|
||
libMETISVersionCompat="$libMETISVersion compat >= ${libMETISVersion%%.*}"
|
||
libMONGOOSEVersion="2.0.4"
|
||
libMONGOOSEVersionCompat="$libMONGOOSEVersion compat >= ${libMONGOOSEVersion%%.*}"
|
||
libRBIOVersion="2.2.6"
|
||
libRBIOVersionCompat="$libRBIOVersion compat >= ${libRBIOVersion%%.*}"
|
||
libSPQRVersion="2.0.9"
|
||
libSPQRVersionCompat="$libSPQRVersion compat >= ${libSPQRVersion%%.*}"
|
||
libSUITESPARSE_CONFIGVersion="5.7.1"
|
||
libSUITESPARSE_CONFIGVersionCompat="$libSUITESPARSE_CONFIGVersion compat >= ${libSUITESPARSE_CONFIGVersion%%.*}"
|
||
libUMFPACKVersion="5.7.9"
|
||
libUMFPACKVersionCompat="$libUMFPACKVersion compat >= ${libUMFPACKVersion%%.*}"
|
||
|
||
PROVIDES="
|
||
suitesparse$secondaryArchSuffix = $portVersion
|
||
cmd:mongoose
|
||
lib:libamd$secondaryArchSuffix = $libAMDVersionCompat
|
||
lib:libbtf$secondaryArchSuffix = $libBTFVersionCompat
|
||
lib:libcamd$secondaryArchSuffix = $libCAMDVersionCompat
|
||
lib:libccolamd$secondaryArchSuffix = $libCCOLAMDVersionCompat
|
||
lib:libcholmod$secondaryArchSuffix = $libCHOLMODVersionCompat
|
||
lib:libcolamd$secondaryArchSuffix = $libCOLAMDVersionCompat
|
||
lib:libcxsparse$secondaryArchSuffix = $libCXSPARSEVersionCompat
|
||
lib:libgraphblas$secondaryArchSuffix = $libGRAPHBLASVersionCompat
|
||
lib:libklu$secondaryArchSuffix = $libKLUVersionCompat
|
||
lib:libldl$secondaryArchSuffix = $libLDLVersionCompat
|
||
lib:libmetis$secondaryArchSuffix = $libMETISVersionCompat
|
||
lib:libmongoose$secondaryArchSuffix = $libMONGOOSEVersionCompat
|
||
lib:librbio$secondaryArchSuffix = $libRBIOVersionCompat
|
||
lib:libspqr$secondaryArchSuffix = $libSPQRVersionCompat
|
||
lib:libsuitesparseconfig$secondaryArchSuffix = $libSUITESPARSE_CONFIGVersionCompat
|
||
lib:libumfpack$secondaryArchSuffix = $libUMFPACKVersionCompat
|
||
"
|
||
REQUIRES="
|
||
haiku$secondaryArchSuffix
|
||
lib:libexecinfo$secondaryArchSuffix
|
||
lib:libgfortran$secondaryArchSuffix
|
||
lib:liblapack$secondaryArchSuffix
|
||
lib:libopenblas$secondaryArchSuffix
|
||
lib:libtbb$secondaryArchSuffix
|
||
"
|
||
REPLACES="
|
||
suitesparse${secondaryArchSuffix}_amd
|
||
suitesparse${secondaryArchSuffix}_btf
|
||
suitesparse${secondaryArchSuffix}_camd
|
||
suitesparse${secondaryArchSuffix}_ccolamd
|
||
suitesparse${secondaryArchSuffix}_cholmod
|
||
suitesparse${secondaryArchSuffix}_colamd
|
||
suitesparse${secondaryArchSuffix}_cxsparse
|
||
suitesparse${secondaryArchSuffix}_graphblas
|
||
suitesparse${secondaryArchSuffix}_klu
|
||
suitesparse${secondaryArchSuffix}_ldl
|
||
suitesparse${secondaryArchSuffix}_metis
|
||
suitesparse${secondaryArchSuffix}_mongoose
|
||
suitesparse${secondaryArchSuffix}_rbio
|
||
suitesparse${secondaryArchSuffix}_spqr
|
||
suitesparse${secondaryArchSuffix}_umfpack
|
||
"
|
||
|
||
PROVIDES_devel="
|
||
suitesparse${secondaryArchSuffix}_devel = $portVersion
|
||
devel:libamd$secondaryArchSuffix = $libAMDVersion
|
||
devel:libbtf$secondaryArchSuffix = $libBTFVersion
|
||
devel:libcamd$secondaryArchSuffix = $libCAMDVersion
|
||
devel:libccolamd$secondaryArchSuffix = $libCCOLAMDVersion
|
||
devel:libcholmod$secondaryArchSuffix = $libCHOLMODVersion
|
||
devel:libcolamd$secondaryArchSuffix = $libCOLAMDVersion
|
||
devel:libcxsparse$secondaryArchSuffix = $libCXSPARSEVersion
|
||
devel:libgraphblas$secondaryArchSuffix = $libGRAPHBLASVersion
|
||
devel:libklu$secondaryArchSuffix = $libKLUVersion
|
||
devel:libldl$secondaryArchSuffix = $libLDLVersion
|
||
devel:libmetis$secondaryArchSuffix = $libMETISVersion
|
||
devel:libmongoose$secondaryArchSuffix = $libMONGOOSEVersion
|
||
devel:librbio$secondaryArchSuffix = $libRBIOVersion
|
||
devel:libspqr$secondaryArchSuffix = $libSPQRVersion
|
||
devel:libsuitesparseconfig$secondaryArchSuffix = $libSUITESPARSE_CONFIGVersion
|
||
devel:libumfpack$secondaryArchSuffix = $libUMFPACKVersion
|
||
devel:suitesparse$secondaryArchSuffix = $libSUITESPARSE_CONFIGVersion
|
||
"
|
||
REQUIRES_devel="
|
||
haiku${secondaryArchSuffix}_devel
|
||
suitesparse$secondaryArchSuffix == $portVersion base
|
||
devel:libexecinfo$secondaryArchSuffix
|
||
devel:libgfortran$secondaryArchSuffix
|
||
devel:liblapack$secondaryArchSuffix
|
||
devel:libopenblas$secondaryArchSuffix
|
||
devel:libtbb$secondaryArchSuffix
|
||
"
|
||
|
||
BUILD_REQUIRES="
|
||
haiku${secondaryArchSuffix}_devel
|
||
devel:libexecinfo$secondaryArchSuffix
|
||
devel:libgfortran$secondaryArchSuffix
|
||
devel:liblapack$secondaryArchSuffix
|
||
devel:libopenblas$secondaryArchSuffix
|
||
devel:libtbb$secondaryArchSuffix
|
||
"
|
||
BUILD_PREREQUIRES="
|
||
cmd:cmake
|
||
cmd:diff
|
||
cmd:gawk
|
||
cmd:gcc$secondaryArchSuffix
|
||
cmd:gfortran$secondaryArchSuffix
|
||
cmd:grep
|
||
cmd:ld$secondaryArchSuffix
|
||
cmd:m4
|
||
cmd:make
|
||
cmd:perl
|
||
cmd:pkg_config$secondaryArchSuffix
|
||
cmd:python2
|
||
"
|
||
|
||
defineDebugInfoPackage suitesparse$secondaryArchSuffix \
|
||
"$libDir"/libsuitesparseconfig.so.$libSUITESPARSE_CONFIGVersion \
|
||
"$libDir"/libamd.so.$libAMDVersion \
|
||
"$libDir"/libbtf.so.$libBTFVersion \
|
||
"$libDir"/libcamd.so.$libCAMDVersion \
|
||
"$libDir"/libccolamd.so.$libCCOLAMDVersion \
|
||
"$libDir"/libcholmod.so.$libCHOLMODVersion \
|
||
"$libDir"/libcolamd.so.$libCOLAMDVersion \
|
||
"$libDir"/libcxsparse.so.$libCXSPARSEVersion \
|
||
"$libDir"/libgraphblas.so.$libGRAPHBLASVersion \
|
||
"$libDir"/libklu.so.$libKLUVersion \
|
||
"$libDir"/libldl.so.$libLDLVersion \
|
||
"$libDir"/libmetis.so \
|
||
"$libDir"/libmongoose.so.$libMONGOOSEVersion \
|
||
"$libDir"/librbio.so.$libRBIOVersion \
|
||
"$libDir"/libspqr.so.$libSPQRVersion \
|
||
"$libDir"/libumfpack.so.$libUMFPACKVersion
|
||
|
||
BUILD()
|
||
{
|
||
CMAKE_OPTIONS="$cmakeDirArgs" LIBRARY_PATH="$sourceDir/lib:$LIBRARY_PATH" \
|
||
LDFLAGS="-lnetwork -lbsd -lexecinfo" CF="-D_BSD_SOURCE" \
|
||
TBB="-ltbb" SPQR_CONFIG="-DHAVE_TBB" make library $jobArgs
|
||
# make TBB="-ltbb" $jobArgs # for building and running tests
|
||
}
|
||
|
||
INSTALL()
|
||
{
|
||
LIBRARY_PATH="$sourceDir/lib:$LIBRARY_PATH" \
|
||
LDFLAGS="-lnetwork -lbsd -lexecinfo" CF="-D_BSD_SOURCE" \
|
||
TBB="-ltbb" SPQR_CONFIG="-DHAVE_TBB" INSTALL="$prefix" \
|
||
INSTALL_LIB="$libDir" INSTALL_INCLUDE="$includeDir" \
|
||
INSTALL_DOC="$docDir" make install
|
||
|
||
prepareInstalledDevelLibs libamd \
|
||
libbtf \
|
||
libcamd \
|
||
libccolamd \
|
||
libcholmod \
|
||
libcolamd \
|
||
libcxsparse \
|
||
libgraphblas \
|
||
libklu \
|
||
libldl \
|
||
libmetis \
|
||
libmongoose \
|
||
librbio \
|
||
libspqr \
|
||
libsuitesparseconfig \
|
||
libumfpack
|
||
|
||
fixPkgconfig
|
||
|
||
# DEVEL
|
||
packageEntries devel \
|
||
$developDir
|
||
}
|