mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-19 10:10:06 +02:00
437 lines
14 KiB
Bash
437 lines
14 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-2018 Timothy A. Davis et al."
|
||
LICENSE="SUITESPARSE"
|
||
REVISION="1"
|
||
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()
|
||
{
|
||
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
|
||
|
||
mkdir -p $manDir $(dirname $includeDir)
|
||
mv $prefix/include $includeDir
|
||
rm -rf $prefix/share
|
||
|
||
# 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
|
||
}
|