Suitesparse 5.6.0 (#4551)

* WIP

* Consolidation

* Cleanup

* Replaces
This commit is contained in:
miqlas
2020-01-19 14:53:34 +01:00
committed by GitHub
parent 1110cbe08d
commit eca2d8385a
3 changed files with 223 additions and 432 deletions

View File

@@ -1,432 +0,0 @@
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-2018 Timothy A. Davis et al."
LICENSE="SUITESPARSE"
REVISION="4"
SOURCE_URI="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-$portVersion.tar.gz"
CHECKSUM_SHA256="90e69713d8c454da5a95a839aea5d97d8d03d00cc1f667c4bdfca03f640f963d"
SOURCE_DIR="SuiteSparse"
PATCHES="suitesparse-$portVersion.patchset"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
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.12"
libCHOLMODVersionCompat="$libCHOLMODVersion compat >= ${libCHOLMODVersion%%.*}"
libCOLAMDVersion="2.9.6"
libCOLAMDVersionCompat="$libCOLAMDVersion compat >= ${libCOLAMDVersion%%.*}"
libCXSPARSEVersion="3.2.0"
libCXSPARSEVersionCompat="$libCXSPARSEVersion compat >= ${libCXSPARSEVersion%%.*}"
libGRAPHBLASVersion="2.0.3"
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.2"
libMONGOOSEVersionCompat="$libMONGOOSEVersion compat >= ${libMONGOOSEVersion%%.*}"
libRBIOVersion="2.2.6"
libRBIOVersionCompat="$libRBIOVersion compat >= ${libRBIOVersion%%.*}"
libSPQRVersion="2.0.8"
libSPQRVersionCompat="$libSPQRVersion compat >= ${libSPQRVersion%%.*}"
libSUITESPARSE_CONFIGVersion="$portVersion"
libSUITESPARSE_CONFIGVersionCompat="$libSUITESPARSE_CONFIGVersion compat >= ${libSUITESPARSE_CONFIGVersion%%.*}"
libUMFPACKVersion="5.7.7"
libUMFPACKVersionCompat="$libUMFPACKVersion compat >= ${libUMFPACKVersion%%.*}"
PROVIDES="
suitesparse$secondaryArchSuffix = $portVersion
lib:libsuitesparseconfig$secondaryArchSuffix = $libSUITESPARSE_CONFIGVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
"
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
"
SUMMARY_amd="$SUMMARY (AMD)"
DESCRIPTION_amd="$DESCRIPTION (AMD)"
PROVIDES_amd="
suitesparse${secondaryArchSuffix}_amd = $libAMDVersion
lib:libamd$secondaryArchSuffix = $libAMDVersionCompat
"
REQUIRES_amd="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_btf="$SUMMARY (BTF)"
DESCRIPTION_btf="$DESCRIPTION (BTF)"
PROVIDES_btf="
suitesparse${secondaryArchSuffix}_btf = $libBTFVersion
lib:libbtf$secondaryArchSuffix = $libBTFVersionCompat
"
REQUIRES_btf="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_camd="$SUMMARY (CAMD)"
DESCRIPTION_camd="$DESCRIPTION (CAMD)"
PROVIDES_camd="
suitesparse${secondaryArchSuffix}_camd = $libCAMDVersion
lib:libcamd$secondaryArchSuffix = $libCAMDVersionCompat
"
REQUIRES_camd="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_ccolamd="$SUMMARY (CCOLAMD)"
DESCRIPTION_ccolamd="$DESCRIPTION (CCOLAMD)"
PROVIDES_ccolamd="
suitesparse${secondaryArchSuffix}_colamd = $libCCOLAMDVersion
lib:libccolamd$secondaryArchSuffix = $libCCOLAMDVersionCompat
"
REQUIRES_ccolamd="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_cholmod="$SUMMARY (CHOLMOD)"
DESCRIPTION_cholmod="$DESCRIPTION (CHOLMOD)"
PROVIDES_cholmod="
suitesparse${secondaryArchSuffix}_cholmod = $libCHOLMODVersion
lib:libcholmod$secondaryArchSuffix = $libCHOLMODVersionCompat
"
REQUIRES_cholmod="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libamd$secondaryArchSuffix
lib:libcamd$secondaryArchSuffix
lib:libccolamd$secondaryArchSuffix
lib:libcolamd$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libgomp$secondaryArchSuffix
lib:liblapack$secondaryArchSuffix
lib:libmetis$secondaryArchSuffix
lib:libopenblas$secondaryArchSuffix
"
SUMMARY_colamd="$SUMMARY (COLAMD)"
DESCRIPTION_colamd="$DESCRIPTION (COLAMD)"
PROVIDES_colamd="
suitesparse${secondaryArchSuffix}_colamd = $libCOLAMDVersion
lib:libcolamd$secondaryArchSuffix = $libCOLAMDVersionCompat
"
REQUIRES_colamd="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_cxsparse="$SUMMARY (CXXSPARSE)"
DESCRIPTION_cxsparse="$DESCRIPTION (CXXSPARSE)"
PROVIDES_cxsparse="
suitesparse${secondaryArchSuffix}_cxsparse = $libCXSPARSEVersion
lib:libcxsparse$secondaryArchSuffix = $libCXSPARSEVersionCompat
"
REQUIRES_cxsparse="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_graphblas="$SUMMARY (GRAPHBLAS)"
DESCRIPTION_graphblas="$DESCRIPTION (GRAPHBLAS)"
PROVIDES_graphblas="
suitesparse${secondaryArchSuffix}_graphblas = $libGRAPHBLASVersion
lib:libgraphblas$secondaryArchSuffix = $libGRAPHBLASVersionCompat
"
REQUIRES_graphblas="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
lib:libgomp$secondaryArchSuffix
"
SUMMARY_klu="$SUMMARY (KLU)"
DESCRIPTION_klu="$DESCRIPTION (KLU)"
PROVIDES_klu="
suitesparse${secondaryArchSuffix}_klu = $libKLUVersion
lib:libklu$secondaryArchSuffix = $libKLUVersionCompat
"
REQUIRES_klu="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libamd$secondaryArchSuffix
lib:libbtf$secondaryArchSuffix
lib:libcolamd$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_ldl="$SUMMARY (LDL)"
DESCRIPTION_ldl="$DESCRIPTION (LDL)"
PROVIDES_ldl="
suitesparse${secondaryArchSuffix}_ldl = $libLDLVersion
lib:libldl$secondaryArchSuffix = $libLDLVersionCompat
"
REQUIRES_ldl="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_metis="$SUMMARY (METIS)"
DESCRIPTION_metis="$DESCRIPTION (METIS)"
PROVIDES_metis="
suitesparse${secondaryArchSuffix}_metis = $libMETISVersion
lib:libmetis$secondaryArchSuffix = $libMETISVersionCompat
"
REQUIRES_metis="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_mongoose="$SUMMARY (MONGOOSE)"
DESCRIPTION_mongoose="$DESCRIPTION (MONGOOSE)"
PROVIDES_mongoose="
suitesparse${secondaryArchSuffix}_mongoose = $libMONGOOSEVersion
lib:libmongoose$secondaryArchSuffix = $libMONGOOSEVersionCompat
"
REQUIRES_mongoose="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_rbio="$SUMMARY (RBIO)"
DESCRIPTION_rbio="$DESCRIPTION (RBIO)"
PROVIDES_rbio="
suitesparse${secondaryArchSuffix}_rbio = $libRBIOVersion
lib:librbio$secondaryArchSuffix = $libRBIOVersionCompat
"
REQUIRES_rbio="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libexecinfo$secondaryArchSuffix
"
SUMMARY_spqr="$SUMMARY (SPQR)"
DESCRIPTION_spqr="$DESCRIPTION (SPQR)"
PROVIDES_spqr="
suitesparse${secondaryArchSuffix}_spqr = $libSPQRVersion
lib:libspqr$secondaryArchSuffix = $libSPQRVersionCompat
"
REQUIRES_spqr="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libamd$secondaryArchSuffix
lib:libcholmod$secondaryArchSuffix
lib:libcolamd$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:liblapack$secondaryArchSuffix
lib:libopenblas$secondaryArchSuffix
lib:libtbb$secondaryArchSuffix
"
SUMMARY_umfpack="$SUMMARY (UMFPACK)"
DESCRIPTION_umfpack="$DESCRIPTION (UMFPACK)"
PROVIDES_umfpack="
suitesparse${secondaryArchSuffix}_umfpack = $libUMFPACKVersion
lib:libumfpack$secondaryArchSuffix = $libUMFPACKVersionCompat
"
REQUIRES_umfpack="
haiku$secondaryArchSuffix
suitesparse$secondaryArchSuffix == $portVersion base
lib:libamd$secondaryArchSuffix
lib:libcholmod$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:liblapack$secondaryArchSuffix
lib:libopenblas$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:make
cmd:perl
cmd:pkg_config$secondaryArchSuffix
cmd:python2
"
defineDebugInfoPackage suitesparse$secondaryArchSuffix \
"$libDir"/libsuitesparseconfig.so.$libSUITESPARSE_CONFIGVersion \
"$(getPackagePrefix amd)/$relativeLibDir"/libamd.so.$libAMDVersion \
"$(getPackagePrefix btf)/$relativeLibDir"/libbtf.so.$libBTFVersion \
"$(getPackagePrefix camd)/$relativeLibDir"/libcamd.so.$libCAMDVersion \
"$(getPackagePrefix ccolamd)/$relativeLibDir"/libccolamd.so.$libCCOLAMDVersion \
"$(getPackagePrefix cholmod)/$relativeLibDir"/libcholmod.so.$libCHOLMODVersion \
"$(getPackagePrefix colamd)/$relativeLibDir"/libcolamd.so.$libCOLAMDVersion \
"$(getPackagePrefix cxsparse)/$relativeLibDir"/libcxsparse.so.$libCXSPARSEVersion \
"$(getPackagePrefix graphblas)/$relativeLibDir"/libgraphblas.so.$libGRAPHBLASVersion \
"$(getPackagePrefix klu)/$relativeLibDir"/libklu.so.$libKLUVersion \
"$(getPackagePrefix ldl)/$relativeLibDir"/libldl.so.$libLDLVersion \
"$(getPackagePrefix metis)/$relativeLibDir"/libmetis.so \
"$(getPackagePrefix mongoose)/$relativeLibDir"/libmongoose.so.$libMONGOOSEVersion \
"$(getPackagePrefix rbio)/$relativeLibDir"/librbio.so.$libRBIOVersion \
"$(getPackagePrefix spqr)/$relativeLibDir"/libspqr.so.$libSPQRVersion \
"$(getPackagePrefix umfpack)/$relativeLibDir"/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
# AMD
packageEntries "amd" \
"$libDir"/*libamd*
# BTF
packageEntries "btf" \
"$libDir"/*btf*
# CAMD
packageEntries "camd" \
"$libDir"/*libcamd*
# CCOLAMD
packageEntries "ccolamd" \
"$libDir"/*ccolamd*
# CHOLMOD
packageEntries "cholmod" \
"$libDir"/*cholmod*
# COLAMD
packageEntries "colamd" \
"$libDir"/*colamd*
# CXSPARSE
packageEntries "cxsparse" \
"$libDir"/*cxsparse*
# GRAPHBLAS
packageEntries "graphblas" \
"$libDir"/*graphblas*
# KLU
packageEntries "klu" \
"$libDir"/*klu*
# LDL
packageEntries "ldl" \
"$libDir"/*ldl*
# METIS
packageEntries "metis" \
"$libDir"/*metis*
# MONGOOSE
packageEntries "mongoose" \
"$libDir"/*mongoose*
# RBIO
packageEntries "rbio" \
"$libDir"/*rbio*
# SPQR
packageEntries "spqr" \
"$libDir"/*spqr*
# UMFPACK
packageEntries "umfpack" \
"$libDir"/*umfpack*
# DEVEL
packageEntries devel \
$developDir
}

View File

@@ -0,0 +1,223 @@
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="76d34d9f6dafc592b69af14f58c1dc59e24853dcd7c2e8f4c98ffa223f6a1adb"
SOURCE_DIR="SuiteSparse-$portVersion"
PATCHES="suitesparse-$portVersion.patchset"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
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.13"
libCHOLMODVersionCompat="$libCHOLMODVersion compat >= ${libCHOLMODVersion%%.*}"
libCOLAMDVersion="2.9.6"
libCOLAMDVersionCompat="$libCOLAMDVersion compat >= ${libCOLAMDVersion%%.*}"
libCXSPARSEVersion="3.2.0"
libCXSPARSEVersionCompat="$libCXSPARSEVersion compat >= ${libCXSPARSEVersion%%.*}"
libGRAPHBLASVersion="3.1.1"
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.5.0"
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
}