Name: suitesparse Version: 4.4.6 Release: 17 Summary: Sparse Matrix Collection License: (LGPLv2+ or BSD) and LGPLv2+ and GPLv2+ URL: http://faculty.cse.tamu.edu/davis/suitesparse.html Source0: http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-%{version}.tar.gz BuildRequires: gcc-c++ openblas-devel tbb-devel hardlink Obsoletes: umfpack <= 5.0.1 ufsparse <= 2.1.1 Provides: ufsparse = %{version}-%{release} %description SuiteSparse is a suite of sparse matrix algorithms.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 CSparse a concise sparse matrix package 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 SuiteSparse_config configuration file for all the above packages. RBio read/write files in Rutherford/Boeing format %package devel Summary: Development files for the suitesparse library Requires: %{name} = %{version}-%{release} Provides: ufsparse-devel = %{version}-%{release} ufsparse-static = %{version}-%{release} suitesparse-static = %{version}-%{release} Obsoletes: umfpack-devel <= 5.0.1 ufsparse-devel <= 2.1.1 suitesparse-static < %{version}-%{release} %description devel The suitesparse-devel package includes header files and libraries necessary for the suitesparse library. %package help Summary: This package contains help documents BuildArch: noarch Requires: %{name} = %{version}-%{release} Provides: suitesparse-doc = %{version}-%{release} Obsoletes: suitesparse-doc < %{version}-%{release} %description help Files for help with suitesparse. %prep %autosetup -n SuiteSparse -p1 for fil in $(grep -Frl 'pragma ivdep' .); do sed -i 's/pragma ivdep/pragma GCC ivdep/' $fil done sed -i '/^ CF =/ s/ -O3 -fexceptions//' SuiteSparse_config/SuiteSparse_config.mk %build install -d Doc/{AMD,BTF,CAMD,CCOLAMD,CHOLMOD,COLAMD,KLU,LDL,UMFPACK,SPQR,RBio} Lib Include cd SuiteSparse_config %make_build CFLAGS="$RPM_OPT_FLAGS" ar x libsuitesparseconfig.a cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libsuitesparseconfig.so.4 -o libsuitesparseconfig.so.4.4.4 ../SuiteSparse_config/*.o -lm ln -sf libsuitesparseconfig.so.4.4.4 libsuitesparseconfig.so.4 ln -sf libsuitesparseconfig.so.4.4.4 libsuitesparseconfig.so install -D ../SuiteSparse_config/*.a ./ cd ../SuiteSparse_config install -D *.h ../Include cd .. cd AMD cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libamd.so.2 -o libamd.so.2.4.1 ../AMD/Lib/*.o libsuitesparseconfig.so.4 -lm ln -sf libamd.so.2.4.1 libamd.so.2 ln -sf libamd.so.2.4.1 libamd.so install -D ../AMD/Lib/*.a ./ cd ../AMD install -D Include/*.h ../Include install -D README.txt Doc/License.txt Doc/lesser.txt Doc/ChangeLog Doc/*.pdf ../Doc/AMD cd .. cd BTF cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libbtf.so.1 -o libbtf.so.1.2.1 ../BTF/Lib/*.o ln -sf libbtf.so.1.2.1 libbtf.so.1 ln -sf libbtf.so.1.2.1 libbtf.so install -D ../BTF/Lib/*.a ./ cd ../BTF install -D Include/*.h ../Include install -D README.txt Doc/* ../Doc/BTF cd .. cd CAMD cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libcamd.so.2 -o libcamd.so.2.4.1 ../CAMD/Lib/*.o libsuitesparseconfig.so.4 -lm ln -sf libcamd.so.2.4.1 libcamd.so.2 ln -sf libcamd.so.2.4.1 libcamd.so install -D ../CAMD/Lib/*.a ./ cd ../CAMD install -D Include/*.h ../Include install -D README.txt Doc/ChangeLog Doc/License Doc/*.pdf ../Doc/CAMD cd .. cd CCOLAMD cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libccolamd.so.2 -o libccolamd.so.2.9.1 ../CCOLAMD/Lib/*.o libsuitesparseconfig.so.4 -lm ln -sf libccolamd.so.2.9.1 libccolamd.so.2 ln -sf libccolamd.so.2.9.1 libccolamd.so install -D ../CCOLAMD/Lib/*.a ./ cd ../CCOLAMD install -D Include/*.h ../Include install -D README.txt Doc/* ../Doc/CCOLAMD cd .. cd COLAMD cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libcolamd.so.2 -o libcolamd.so.2.9.1 ../COLAMD/Lib/*.o libsuitesparseconfig.so.4 -lm ln -sf libcolamd.so.2.9.1 libcolamd.so.2 ln -sf libcolamd.so.2.9.1 libcolamd.so install -D ../COLAMD/Lib/*.a ./ cd ../COLAMD install -D Include/*.h ../Include install -D README.txt Doc/* ../Doc/COLAMD cd .. CHOLMOD_FLAGS="$RPM_OPT_FLAGS -DNPARTITION" cd CHOLMOD cd Lib %make_build CFLAGS="$CHOLMOD_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libcholmod.so.3 -o libcholmod.so.3.0.6 ../CHOLMOD/Lib/*.o \ -lopenblas libamd.so.2 libcamd.so.2 libcolamd.so.2 libccolamd.so.2 libsuitesparseconfig.so.4 -lm ln -sf libcholmod.so.3.0.6 libcholmod.so.3 ln -sf libcholmod.so.3.0.6 libcholmod.so install -D ../CHOLMOD/Lib/*.a ./ cd ../CHOLMOD install -D Include/*.h ../Include install -D README.txt Doc/*.pdf ../Doc/CHOLMOD install -D Cholesky/License.txt ../Doc/CHOLMOD/Cholesky_License.txt install -D Core/License.txt ../Doc/CHOLMOD/Core_License.txt install -D MatrixOps/License.txt ../Doc/CHOLMOD/MatrixOps_License.txt install -D Partition/License.txt ../Doc/CHOLMOD/Partition_License.txt install -D Supernodal/License.txt ../Doc/CHOLMOD/Supernodal_License.txt cd .. cd CXSparse cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libcxsparse.so.3 -o libcxsparse.so.3.1.4 ../CXSparse/Lib/*.o -lm ln -sf libcxsparse.so.3.1.4 libcxsparse.so.3 ln -sf libcxsparse.so.3.1.4 libcxsparse.so install -D ../CXSparse/Lib/*.a ./ cd ../CXSparse install -D Include/cs.h ../Include install -d ../Doc/CXSparse/ install -D Doc/* ../Doc/CXSparse cd .. cd KLU cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libklu.so.1 -o libklu.so.1.3.3 ../KLU/Lib/*.o \ libamd.so.2 libcolamd.so.2 libbtf.so.1 libsuitesparseconfig.so.4 ln -sf libklu.so.1.3.3 libklu.so.1 ln -sf libklu.so.1.3.3 libklu.so install -D ../KLU/Lib/*.a ./ cd ../KLU install -D Include/*.h ../Include install -D README.txt Doc/lesser.txt ../Doc/KLU cd .. cd LDL cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libldl.so.2 -o libldl.so.2.2.1 ../LDL/Lib/*.o ln -sf libldl.so.2.2.1 libldl.so.2 ln -sf libldl.so.2.2.1 libldl.so install -D ../LDL/Lib/*.a ./ cd ../LDL install -D Include/*.h ../Include install -D README.txt Doc/ChangeLog Doc/lesser.txt Doc/*.pdf ../Doc/LDL cd .. cd UMFPACK cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,libumfpack.so.5 -o libumfpack.so.5.7.1 ../UMFPACK/Lib/*.o \ -lopenblas libamd.so.2 libcholmod.so.3 libsuitesparseconfig.so.4 -lm ln -sf libumfpack.so.5.7.1 libumfpack.so.5 ln -sf libumfpack.so.5.7.1 libumfpack.so install -D ../UMFPACK/Lib/*.a ./ cd ../UMFPACK install -D Include/*.h ../Include install -D README.txt Doc/License Doc/ChangeLog Doc/gpl.txt Doc/*.pdf ../Doc/UMFPACK cd .. cd SPQR cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS -DHAVE_TBB -DNPARTITION" cd .. cd ../Lib g++ -shared %{?__global_ldflags} -Wl,-soname,libspqr.so.2 -o libspqr.so.2.0.1 ../SPQR/Lib/*.o \ -lopenblas -ltbb libcholmod.so.3 libsuitesparseconfig.so.4 -lm ln -sf libspqr.so.2.0.1 libspqr.so.2 ln -sf libspqr.so.2.0.1 libspqr.so install -D ../SPQR/Lib/*.a ./ cd ../SPQR install -D Include/*.h* ../Include install -D README{,_SPQR}.txt install -D README_SPQR.txt Doc/* ../Doc/SPQR cd .. cd RBio cd Lib %make_build CFLAGS="$RPM_OPT_FLAGS" cd .. cd ../Lib gcc -shared %{?__global_ldflags} -Wl,-soname,librbio.so.2 -o \ librbio.so.2.2.1 ../RBio/Lib/*.o libsuitesparseconfig.so.4 ln -sf librbio.so.2.2.1 librbio.so.2 ln -sf librbio.so.2.2.1 librbio.so install -D ../RBio/Lib/*.a ./ cd ../RBio install -D Include/*.h ../Include install -D README.txt Doc/ChangeLog Doc/License.txt ../Doc/RBio cd .. %install install -d ${RPM_BUILD_ROOT}%{_libdir} install -d ${RPM_BUILD_ROOT}%{_includedir}/%{name} cd Lib for f in *.a *.so*; do cp -a $f ${RPM_BUILD_ROOT}%{_libdir}/$f done cd .. chmod 755 ${RPM_BUILD_ROOT}%{_libdir}/*.so.* cd Include for f in *.h *.hpp; do cp -a $f ${RPM_BUILD_ROOT}%{_includedir}/%{name}/$f done cd .. rm -rf Licenses install -d Licenses find */ -iname lesser.txt -o -iname license.txt -o -iname gpl.txt -o -iname license | while read f do b="${f%%/*}";r="${f#$b}";x="$(echo "$r" | sed 's|/doc/|/|gi')" install -m0644 -D "$f" "./Licenses/$b/$x" done hardlink -cv Docs/ Licenses/ %check TESTDIRS="AMD CAMD CCOLAMD CHOLMOD COLAMD KLU LDL SPQR RBio UMFPACK CXSparse" for d in $TESTDIRS ; do make -C $d/Demo CFLAGS="$RPM_OPT_FLAGS" LAPACK="" SPQR_CONFIG=-DHAVE_TBB TBB=-ltbb done %files %doc Licenses %{_libdir}/lib*.so.* %files devel %{_includedir}/suitesparse %{_libdir}/lib*.so %{_libdir}/lib*.a %files help %doc Doc/* %changelog * Mon Dec 23 2019 gulining - 4.4.6-17 - Pakcage init