academic/suitesparse: Updated for version 4.0.2.

Simplified build, added notes to the README, cleanups

Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
Pablo Santamaria 2013-01-03 17:53:53 +01:00 committed by dsomero
parent c0a2a74cc9
commit 7e272c48ff
4 changed files with 43 additions and 249 deletions

View file

@ -1,31 +1,36 @@
suitesparse is a collection of libraries for computations involving sparse
matrices. The package includes the following libraries:
AMD approximate minimum degree ordering
BTF permutation to block triangular form (beta)
CAMD constrained approximate minimum degree ordering
COLAMD column approximate minimum degree ordering
CCOLAMD constrained column approximate minimum degree ordering
CHOLMOD sparse Cholesky factorization
CXSparse CSparse extended: complex matrix, int and long int support
KLU sparse LU factorization, primarily for circuit simulation
LDL a simple LDL' factorization
SQPR a multithread, multifrontal, rank-revealing sparse QR
factorization method
UMFPACK sparse LU factorization
UFconfig configuration file for all the above packages.
AMD: approximate minimum degree ordering.
BTF: permutation to block triangular form (beta).
CAMD: constrained approximate minimum degree ordering.
COLAMD: column approximate minimum degree ordering.
CCOLAMD: constrained column approximate minimum degree ordering.
CHOLMOD: sparse Cholesky factorization.
CXSparse: CSparse extended: complex matrix, int and long int support.
KLU: sparse LU factorization, primarily for circuit simulation.
LDL: a simple LDL^t factorization.
SQPR: a multithread, multifrontal, rank-revealing sparse QR factorization method.
UMFPACK: sparse LU factorization.
SuiteSparse_config: configuration file for all the above packages.
RBio: read/write files in Rutherford/Boeing format.
suitesparse is an optional dependency for the octave package.
Suitesparse is an optional dependency for the octave package.
NOTES:
* To build octave with SuiteSparse 4.x you'll need to add a second library
to the octave's configure option --with-umfpack:
--with-umfpack="-lumfpack -lsuitesparseconfig"
* CHOLMOD can also be compiled to use the METIS library, but it is not
used here because its licensing terms exclude it from Octave.
used here because its licensing terms exclude it from Octave.
* CXSparse is a superset of CSparse, and the two share common header
names, so it does not make sense to build both. CXSparse is built
by default.
names, so it does not make sense to build both. CXSparse is built
by default.
* SlackBuilds.org also has all the parts of this suite as individual
builds - DO NOT try and install the individual parts and the suite;
pick one or the other.
builds - DO NOT try and install the individual parts and the suite;
pick one or the other.

View file

@ -10,8 +10,8 @@ suitesparse: suitesparse (A collection of sparse matrix libraries)
suitesparse:
suitesparse: suitesparse is a collection of libraries for computations involving
suitesparse: sparse matrices. The package includes the following libraries:
suitesparse: AMD, BTF, CAMD, COLAMD, CCOLAMD, CHOLMOD, CSparse, CXSparse, KLU,
suitesparse: LDL, SQPR, UMFPACK.
suitesparse: AMD, BTF, CAMD, COLAMD, CCOLAMD, CHOLMOD, CXSparse, KLU, LDL,
suitesparse: SQPR, UMFPACK.
suitesparse:
suitesparse:
suitesparse:

View file

@ -5,7 +5,7 @@
# Written by Pablo Santamaria (pablosantamaria@gmail.com)
PRGNAM=suitesparse
VERSION=${VERSION:-3.4.0}
VERSION=${VERSION:-4.0.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@ -38,31 +38,6 @@ else
LIBDIRSUFFIX=""
fi
amd_version=2.2.0
amd_version_major=2
btf_version=1.1.0
btf_version_major=1
camd_version=2.2.0
camd_version_major=2
ccolamd_version=2.7.1
ccolamd_version_major=2
cholmod_version=1.7.1
cholmod_version_major=1
colamd_version=2.7.1
colamd_version_major=2
csparse_version=2.2.3
csparse_version_major=2
cxsparse_version=2.2.3
cxsparse_version_major=2
klu_version=1.1.0
klu_version_major=1
ldl_version=2.0.1
ldl_version_major=2
umfpack_version=5.4.0
umfpack_version_major=5
spqr_version=1.1.2
spqr_version_major=1
set -e
rm -rf $PKG
@ -79,209 +54,23 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# Set common configuration for the SuiteSparse
cp $CWD/UFconfig.mk UFconfig
for lib in SuiteSparse_config AMD CAMD COLAMD BTF KLU LDL CCOLAMD UMFPACK CHOLMOD CXSparse SPQR RBio; do
make -C $lib library CFLAGS="$SLKCFLAGS -DNPARTITION"
done
mkdir -p Doc/{AMD,BTF,CAMD,CCOLAMD,CHOLMOD,COLAMD,KLU,LDL,UMFPACK,SPQR} Lib Include
pushd AMD
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libamd.so.${amd_version_major} -o \
libamd.so.${amd_version} ../AMD/Lib/*.o -lm
ln -sf libamd.so.${amd_version} libamd.so.${amd_version_major}
ln -sf libamd.so.${amd_version} libamd.so
cp -p ../AMD/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/License Doc/ChangeLog Doc/*.pdf ../Doc/AMD
popd
pushd BTF
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libbtf.so.${btf_version_major} -o \
libbtf.so.${btf_version} ../BTF/Lib/*.o
ln -sf libbtf.so.${btf_version} libbtf.so.${btf_version_major}
ln -sf libbtf.so.${btf_version} libbtf.so
cp -p ../BTF/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/* ../Doc/BTF
popd
pushd CAMD
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libcamd.so.${camd_version_major} -o \
libcamd.so.${camd_version} ../CAMD/Lib/*.o -lm
ln -sf libcamd.so.${camd_version} libcamd.so.${camd_version_major}
ln -sf libcamd.so.${camd_version} libcamd.so
cp -p ../CAMD/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/ChangeLog Doc/License Doc/*.pdf ../Doc/CAMD
popd
pushd CCOLAMD
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libccolamd.so.${ccolamd_version_major} -o \
libccolamd.so.${ccolamd_version} ../CCOLAMD/Lib/*.o -lm
ln -sf libccolamd.so.${ccolamd_version} libccolamd.so.${ccolamd_version_major}
ln -sf libccolamd.so.${ccolamd_version} libccolamd.so
cp -p ../CCOLAMD/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/* ../Doc/CCOLAMD
popd
pushd COLAMD
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libcolamd.so.${colamd_version_major} -o \
libcolamd.so.${colamd_version} ../COLAMD/Lib/*.o -lm
ln -sf libcolamd.so.${colamd_version} libcolamd.so.${colamd_version_major}
ln -sf libcolamd.so.${colamd_version} libcolamd.so
cp -p ../COLAMD/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/* ../Doc/COLAMD
popd
# CHOLMOD can also be compiled to use the METIS library, but it is not
# used here because its licensing terms exclude it from Octave.
pushd CHOLMOD
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libcholmod.so.${cholmod_version_major} -o \
libcholmod.so.${cholmod_version} ../CHOLMOD/Lib/*.o \
-lblas -lgfortran -lgfortranbegin -llapack \
libamd.so.${amd_version_major} \
libcamd.so.${camd_version_major} libcolamd.so.${colamd_version_major} \
libccolamd.so.${ccolamd_version_major} -lm
ln -sf libcholmod.so.${cholmod_version} libcholmod.so.${cholmod_version_major}
ln -sf libcholmod.so.${cholmod_version} libcholmod.so
cp -p ../CHOLMOD/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/*.pdf ../Doc/CHOLMOD
cp -p Cholesky/License.txt ../Doc/CHOLMOD/Cholesky_License.txt
cp -p Core/License.txt ../Doc/CHOLMOD/Core_License.txt
cp -p MatrixOps/License.txt ../Doc/CHOLMOD/MatrixOps_License.txt
cp -p Partition/License.txt ../Doc/CHOLMOD/Partition_License.txt
cp -p Supernodal/License.txt ../Doc/CHOLMOD/Supernodal_License.txt
popd
# CXSparse is a superset of CSparse, and the two share common header
# names, so it does not make sense to build both.
pushd CXSparse
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libcxsparse.so.${cxsparse_version_major} -o \
libcxsparse.so.${cxsparse_version} ../CXSparse/Lib/*.o -lm
ln -sf libcxsparse.so.${cxsparse_version} libcxsparse.so.${cxsparse_version_major}
ln -sf libcxsparse.so.${cxsparse_version} libcxsparse.so
cp -p ../CXSparse/Lib/*.a ./
popd
cp -p Include/cs.h ../Include
mkdir ../Doc/CXSparse/
cp -p Doc/* ../Doc/CXSparse
popd
pushd KLU
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libklu.so.${klu_version_major} -o \
libklu.so.${klu_version} ../KLU/Lib/*.o \
libamd.so.${amd_version_major} libcolamd.so.${colamd_version_major} \
libbtf.so.${btf_version_major} libcholmod.so.${cholmod_version_major}
ln -sf libklu.so.${klu_version} libklu.so.${klu_version_major}
ln -sf libklu.so.${klu_version} libklu.so
cp -p ../KLU/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/lesser.txt ../Doc/KLU
popd
pushd LDL
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libldl.so.${ldl_version_major} -o \
libldl.so.${ldl_version} ../LDL/Lib/*.o
ln -sf libldl.so.${ldl_version} libldl.so.${ldl_version_major}
ln -sf libldl.so.${ldl_version} libldl.so
cp -p ../LDL/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/ChangeLog Doc/lesser.txt Doc/*.pdf ../Doc/LDL
popd
pushd UMFPACK
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
gcc -shared -Wl,-soname,libumfpack.so.${umfpack_version_major} -o \
libumfpack.so.${umfpack_version} ../UMFPACK/Lib/*.o \
-lblas -lgfortran -lgfortranbegin -llapack \
libamd.so.${amd_version_major} -lm
ln -sf libumfpack.so.${umfpack_version} libumfpack.so.${umfpack_version_major}
ln -sf libumfpack.so.${umfpack_version} libumfpack.so
cp -p ../UMFPACK/Lib/*.a ./
popd
cp -p Include/*.h ../Include
cp -p README.txt Doc/License Doc/ChangeLog Doc/gpl.txt Doc/*.pdf ../Doc/UMFPACK
popd
pushd SPQR
pushd Lib
make CFLAGS="$SLKCFLAGS -fPIC"
popd
pushd ../Lib
g++ -shared -Wl,-soname,libspqr.so.${spqr_version_major} -o \
libspqr.so.${spqr_version} ../SPQR/Lib/*.o \
-lblas -lgfortran -lgfortranbegin -llapack \
libcholmod.so.${cholmod_version_major} -lm
ln -sf libspqr.so.${spqr_version} libspqr.so.${spqr_version_major}
ln -sf libspqr.so.${spqr_version} libspqr.so
cp -p ../SPQR/Lib/*.a ./
popd
cp -p Include/*.h* ../Include
cp -p README{,_SPQR}.txt
cp -p README_SPQR.txt Doc/* ../Doc/SPQR
popd
cp -p UFconfig/UFconfig.h Include
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
cp -a Lib/* $PKG/usr/lib${LIBDIRSUFFIX}
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX
mkdir -p $PKG/usr/include/suitesparse
cp -a Include/* $PKG/usr/include/suitesparse
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
for lib in SuiteSparse_config AMD CAMD COLAMD BTF KLU LDL CCOLAMD UMFPACK CHOLMOD CXSparse SPQR RBio; do
make -C $lib INSTALL_LIB="$PKG/usr/lib$LIBDIRSUFFIX" INSTALL_INCLUDE="$PKG/usr/include/suitesparse" install
done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README.txt Doc/* $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README.txt $PKG/usr/doc/$PRGNAM-$VERSION
for lib in AMD CAMD COLAMD BTF KLU LDL CCOLAMD UMFPACK CHOLMOD CXSparse SPQR RBio; do
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/$lib
cp -a $lib/Doc/README* $lib/Doc/*.pdf $lib/Doc/ChangeLog $lib/Doc/License* \
$PKG/usr/doc/$PRGNAM-$VERSION/$lib || true
done
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install

View file

@ -1,8 +1,8 @@
PRGNAM="suitesparse"
VERSION="3.4.0"
VERSION="4.0.2"
HOMEPAGE="http://www.cise.ufl.edu/research/sparse/SuiteSparse/"
DOWNLOAD="http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-3.4.0.tar.gz"
MD5SUM="e59dcabc9173b1ba1b3659ae147006b8"
DOWNLOAD="http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.0.2.tar.gz"
MD5SUM="efe53b7ef2b529d54727815231a5a6a9"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="lapack"