Files
haikuports/sci-libs/suitesparse/suitesparse-5.3.0.recipe
Jerome Duval 9157c823ae code reformat.
2018-09-05 14:34:26 +02:00

437 lines
14 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}