diff --git a/suitesparse.spec b/suitesparse.spec index b3ac87d..d09a320 100644 --- a/suitesparse.spec +++ b/suitesparse.spec @@ -1,6 +1,6 @@ Name: suitesparse Version: 3.2.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A collection of sparse matrix libraries Group: System Environment/Libraries @@ -9,7 +9,7 @@ URL: http://www.cise.ufl.edu/research/sparse/SuiteSparse Source0: http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: blas-devel +BuildRequires: atlas-devel Obsoletes: umfpack <= 5.0.1 Obsoletes: ufsparse <= 2.1.1 Provides: ufsparse = %{version}-%{release} @@ -99,45 +99,78 @@ mkdir Devel Devel/AMD Devel/CHOLMOD Devel/KLU Devel/LDL Devel/UMFPACK \ pushd AMD pushd Lib make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libamd.so.%{amd_version_major} -o ../Lib/libamd.so.%{amd_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/License Doc/ChangeLog ../Doc/AMD - cp Doc/*.pdf ../Devel/AMD + pushd ../Lib + gcc -shared -Wl,-soname,libamd.so.%{amd_version_major} -o \ + libamd.so.%{amd_version} ../AMD/Lib/*.o + 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/AMD + cp -p Doc/*.pdf ../Devel/AMD popd pushd BTF pushd Lib make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libbtf.so.%{btf_version_major} -o libbtf.so.%{btf_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/* ../Doc/BTF + 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="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libcamd.so.%{camd_version_major} -o ../Lib/libcamd.so.%{camd_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/ChangeLog Doc/License ../Doc/CAMD - cp Doc/*.pdf ../Devel/CAMD + pushd ../Lib + gcc -shared -Wl,-soname,libcamd.so.%{camd_version_major} -o \ + libcamd.so.%{camd_version} ../CAMD/Lib/*.o + 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/CAMD + cp -p Doc/*.pdf ../Devel/CAMD popd pushd CCOLAMD pushd Lib make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libccolamd.so.%{ccolamd_version_major} -o libccolamd.so.%{ccolamd_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/* ../Doc/CCOLAMD + pushd ../Lib + gcc -shared -Wl,-soname,libccolamd.so.%{ccolamd_version_major} -o \ + libccolamd.so.%{ccolamd_version} ../CCOLAMD/Lib/*.o + 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 Lib + +pushd COLAMD + pushd Lib + make CFLAGS="$RPM_OPT_FLAGS -fPIC" + popd + pushd ../Lib + gcc -shared -Wl,-soname,libcolamd.so.%{colamd_version_major} -o \ + libcolamd.so.%{colamd_version} ../COLAMD/Lib/*.o + 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 %if "%{?enable_metis}" == "1" @@ -148,115 +181,111 @@ CHOLMOD_FLAGS="$RPM_OPT_FLAGS -DNPARTITION -fPIC" pushd CHOLMOD pushd Lib make CFLAGS="$CHOLMOD_FLAGS" - gcc -shared -Wl,-soname,libcholmod.so.%{cholmod_version_major} -o ../Lib/libcholmod.so.%{cholmod_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt ../Doc/CHOLMOD - cp Cholesky/License.txt ../Doc/CHOLMOD/Cholesky_License.txt - cp Core/License.txt ../Doc/CHOLMOD/Core_License.txt - cp MatrixOps/License.txt ../Doc/CHOLMOD/MatrixOps_License.txt - cp Partition/License.txt ../Doc/CHOLMOD/Partition_License.txt - cp Supernodal/License.txt ../Doc/CHOLMOD/Supernodal_License.txt - cp Doc/*.pdf ../Devel/CHOLMOD -popd - -pushd COLAMD - pushd Lib - make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libcolamd.so.%{colamd_version_major} -o libcolamd.so.%{colamd_version} `ls *.o` + pushd ../Lib + gcc -shared -Wl,-soname,libcholmod.so.%{cholmod_version_major} -o \ + libcholmod.so.%{cholmod_version} ../CHOLMOD/Lib/*.o \ + -L%{_libdir}/atlas -lcblas -lclapack 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 Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/* ../Doc/COLAMD + cp -p Include/*.h ../Include + cp -p README.txt ../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 + cp -p Doc/*.pdf ../Devel/CHOLMOD popd %if "%{?enable_csparse}" == "1" pushd CSparse pushd Source make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libcsparse.so.%{csparse_version_major} -o libcsparse.so.%{csparse_version} `ls *.o` - cp *.a *.so* ../../Lib - cp cs.h ../../Include + cp -p cs.h ../../Include + popd + pushd ../Lib + gcc -shared -Wl,-soname,libcsparse.so.%{csparse_version_major} -o \ + libcsparse.so.%{csparse_version} ../CSparse/Source/*.o + ln -sf libcsparse.so.%{csparse_version} libcsparse.so.%{csparse_version_major} + ln -sf libcsparse.so.%{csparse_version} libcsparse.so + cp -p ../CSparse/Source/*.a ./ popd mkdir ../Doc/CSparse/ - cp Doc/* ../Doc/CSparse + cp -p Doc/* ../Doc/CSparse popd %else pushd CXSparse pushd Lib make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libcxsparse.so.%{cxsparse_version_major} -o libcxsparse.so.%{cxsparse_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/cs.h ../Include + pushd ../Lib + gcc -shared -Wl,-soname,libcxsparse.so.%{cxsparse_version_major} -o \ + libcxsparse.so.%{cxsparse_version} ../CXSparse/Lib/*.o + 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 Doc/* ../Doc/CXSparse + cp -p Doc/* ../Doc/CXSparse popd %endif pushd KLU pushd Lib make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libklu.so.%{klu_version_major} -o libklu.so.%{klu_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/lesser.txt ../Doc/KLU + pushd ../Lib + gcc -shared -Wl,-soname,libklu.so.%{klu_version_major} -o \ + libklu.so.%{klu_version} ../KLU/Lib/*.o + 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="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libldl.so.%{ldl_version_major} -o libldl.so.%{ldl_version} `ls *.o` popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/ChangeLog Doc/lesser.txt ../Doc/LDL - cp Doc/*.pdf ../Devel/LDL + 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/LDL + cp -p Doc/*.pdf ../Devel/LDL popd pushd UMFPACK pushd Lib make CFLAGS="$RPM_OPT_FLAGS -fPIC" - gcc -shared -Wl,-soname,libumfpack.so.%{umfpack_version_major} -o ../Lib/libumfpack.so.%{umfpack_version} `ls *.o` -lblas -lm popd - cp Lib/*.a Lib/*.so* ../Lib - cp Include/*.h ../Include - cp README.txt Doc/License Doc/ChangeLog Doc/gpl.txt ../Doc/UMFPACK - cp Doc/*.pdf ../Devel/UMFPACK + pushd ../Lib + gcc -shared -Wl,-soname,libumfpack.so.%{umfpack_version_major} -o \ + libumfpack.so.%{umfpack_version} ../UMFPACK/Lib/*.o \ + -L%{_libdir}/atlas -lcblas -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/UMFPACK + cp -p Doc/*.pdf ../Devel/UMFPACK popd -pushd Lib - ln -sf libamd.so.%{amd_version} libamd.so.%{amd_version_major} - ln -sf libamd.so.%{amd_version} libamd.so - ln -sf libbtf.so.%{btf_version} libbtf.so.%{btf_version_major} - ln -sf libbtf.so.%{btf_version} libbtf.so - ln -sf libcamd.so.%{camd_version} libcamd.so.%{camd_version_major} - ln -sf libcamd.so.%{camd_version} libcamd.so - ln -sf libccolamd.so.%{ccolamd_version} libccolamd.so.%{ccolamd_version_major} - ln -sf libccolamd.so.%{ccolamd_version} libccolamd.so - ln -sf libcholmod.so.%{cholmod_version} libcholmod.so.%{cholmod_version_major} - ln -sf libcholmod.so.%{cholmod_version} libcholmod.so - ln -sf libcolamd.so.%{colamd_version} libcolamd.so.%{colamd_version_major} - ln -sf libcolamd.so.%{colamd_version} libcolamd.so -%if "%{?enable_csparse}" == "1" - ln -sf libcsparse.so.%{csparse_version} libcsparse.so.%{csparse_version_major} - ln -sf libcsparse.so.%{csparse_version} libcsparse.so -%else - ln -sf libcxsparse.so.%{cxsparse_version} libcxsparse.so.%{cxsparse_version_major} - ln -sf libcxsparse.so.%{cxsparse_version} libcxsparse.so -%endif - ln -sf libklu.so.%{klu_version} libklu.so.%{klu_version_major} - ln -sf libklu.so.%{klu_version} libklu.so - ln -sf libldl.so.%{ldl_version} libldl.so.%{ldl_version_major} - ln -sf libldl.so.%{ldl_version} libldl.so - ln -sf libumfpack.so.%{umfpack_version} libumfpack.so.%{umfpack_version_major} - ln -sf libumfpack.so.%{umfpack_version} libumfpack.so -popd - -cp UFconfig/UFconfig.h Include +cp -p UFconfig/UFconfig.h Include %install rm -rf ${RPM_BUILD_ROOT} @@ -298,6 +327,11 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/lib*.a %changelog +* Wed Dec 17 2008 Deji Akingunola - 3.2.0-3 +- Rearrange the spec +- Link in necessary libs when making shared CHOLMOD lib (BZ #475411) +- Link with ATLAS' blas and lapack libs + * Wed Dec 17 2008 Deji Akingunola - 3.2.0-2 - Rebuild for updated atlas