suitesparse-vl.spec 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467
  1. Name: suitesparse
  2. Version: 4.3.1
  3. Release: 1%{?_dist_release}
  4. Summary: A collection of sparse matrix libraries
  5. Summary(ja): 疎行列ライブラリ集
  6. Group: System Environment/Libraries
  7. License: LGPLv2+ and GPLv2+
  8. URL: http://www.cise.ufl.edu/research/sparse/SuiteSparse
  9. Source0: http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-%{version}.tar.gz
  10. # Move #include <math.h> out of StuiteSparse_config.h and into SuiteSparse_config.c
  11. Patch0: suitesparse-math.patch
  12. BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
  13. BuildRequires: blas-devel
  14. BuildRequires: lapack-devel
  15. %description
  16. suitesparse is a collection of libraries for computations involving sparse
  17. matrices. The package includes the following libraries:
  18. AMD approximate minimum degree ordering
  19. BTF permutation to block triangular form (beta)
  20. CAMD constrained approximate minimum degree ordering
  21. COLAMD column approximate minimum degree ordering
  22. CCOLAMD constrained column approximate minimum degree ordering
  23. CHOLMOD sparse Cholesky factorization
  24. CSparse a concise sparse matrix package
  25. CXSparse CSparse extended: complex matrix, int and long int support
  26. KLU sparse LU factorization, primarily for circuit simulation
  27. LDL a simple LDL factorization
  28. SQPR a multithread, multifrontal, rank-revealing sparse QR
  29. factorization method
  30. UMFPACK sparse LU factorization
  31. SuiteSparse_config configuration file for all the above packages.
  32. RBio read/write files in Rutherford/Boeing format
  33. %package devel
  34. Summary: Development headers for SuiteSparse
  35. Summary(ja): SuiteSparse の開発用ヘッダファイル集
  36. Group: Development/Libraries
  37. Requires: %{name} = %{version}-%{release}
  38. %description devel
  39. The suitesparse-devel package contains files needed for developing
  40. applications which use the suitesparse libraries.
  41. %package static
  42. Summary: Static version of SuiteSparse libraries
  43. Summary(ja): SuiteSparse の静的ライブラリ
  44. Group: Development/Libraries
  45. Requires: %{name}-devel = %{version}-%{release}
  46. %description static
  47. The suitesparse-static package contains the statically linkable
  48. version of the suitesparse libraries.
  49. #'
  50. %prep
  51. %setup -q -n SuiteSparse
  52. %patch0 -p1 -b .math
  53. %build
  54. %define amd_version 2.4.0
  55. %define amd_version_major 2
  56. %define btf_version 1.2.0
  57. %define btf_version_major 1
  58. %define camd_version 2.4.0
  59. %define camd_version_major 2
  60. %define ccolamd_version 2.9.0
  61. %define ccolamd_version_major 2
  62. %define cholmod_version 3.0.1
  63. %define cholmod_version_major 3
  64. %define colamd_version 2.9.0
  65. %define colamd_version_major 2
  66. %define csparse_version 3.1.3
  67. %define csparse_version_major 3
  68. %define cxsparse_version 3.1.3
  69. %define cxsparse_version_major 3
  70. %define klu_version 1.3.0
  71. %define klu_version_major 1
  72. %define ldl_version 2.2.0
  73. %define ldl_version_major 2
  74. %define rbio_version 2.2.0
  75. %define rbio_version_major 2
  76. %define spqr_version 1.3.3
  77. %define spqr_version_major 1
  78. %define SuiteSparse_config_ver 4.3.1
  79. %define SuiteSparse_config_major 4
  80. %define umfpack_version 5.7.0
  81. %define umfpack_version_major 5
  82. ### CHOLMOD can also be compiled to use the METIS library, but it is not
  83. ### used here because its licensing terms exclude it from Fedora Extras.
  84. ### To compile with METIS, define enable_metis as 1 below.
  85. %define enable_metis 0
  86. ### CXSparse is a superset of CSparse, and the two share common header
  87. ### names, so it does not make sense to build both. CXSparse is built
  88. ### by default, but CSparse can be built instead by defining
  89. ### enable_csparse as 1 below.
  90. %define enable_csparse 0
  91. mkdir -p Doc/{AMD,BTF,CAMD,CCOLAMD,CHOLMOD,COLAMD,KLU,LDL,UMFPACK,SPQR,RBio} Lib Include
  92. # SuiteSparse_config needs to come first
  93. pushd SuiteSparse_config
  94. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  95. ar x libsuitesparseconfig.a
  96. pushd ../Lib
  97. gcc -shared -Wl,-soname,libsuitesparseconfig.so.%{SuiteSparse_config_major} -o \
  98. libsuitesparseconfig.so.%{SuiteSparse_config_ver} ../SuiteSparse_config/*.o -lm
  99. ln -sf libsuitesparseconfig.so.%{SuiteSparse_config_ver} libsuitesparseconfig.so.%{SuiteSparse_config_major}
  100. ln -sf libsuitesparseconfig.so.%{SuiteSparse_config_ver} libsuitesparseconfig.so
  101. cp -p ../SuiteSparse_config/*.a ./
  102. popd
  103. cp -p *.h ../Include
  104. popd
  105. pushd AMD
  106. pushd Lib
  107. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  108. popd
  109. pushd ../Lib
  110. gcc -shared -Wl,-soname,libamd.so.%{amd_version_major} -o \
  111. libamd.so.%{amd_version} ../AMD/Lib/*.o \
  112. libsuitesparseconfig.so.%{SuiteSparse_config_major} -lm
  113. ln -sf libamd.so.%{amd_version} libamd.so.%{amd_version_major}
  114. ln -sf libamd.so.%{amd_version} libamd.so
  115. cp -p ../AMD/Lib/*.a ./
  116. popd
  117. cp -p Include/*.h ../Include
  118. cp -p README.txt Doc/License Doc/ChangeLog Doc/*.pdf ../Doc/AMD
  119. popd
  120. pushd BTF
  121. pushd Lib
  122. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  123. popd
  124. pushd ../Lib
  125. gcc -shared -Wl,-soname,libbtf.so.%{btf_version_major} -o \
  126. libbtf.so.%{btf_version} ../BTF/Lib/*.o
  127. ln -sf libbtf.so.%{btf_version} libbtf.so.%{btf_version_major}
  128. ln -sf libbtf.so.%{btf_version} libbtf.so
  129. cp -p ../BTF/Lib/*.a ./
  130. popd
  131. cp -p Include/*.h ../Include
  132. cp -p README.txt Doc/* ../Doc/BTF
  133. popd
  134. pushd CAMD
  135. pushd Lib
  136. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  137. popd
  138. pushd ../Lib
  139. gcc -shared -Wl,-soname,libcamd.so.%{camd_version_major} -o \
  140. libcamd.so.%{camd_version} ../CAMD/Lib/*.o \
  141. libsuitesparseconfig.so.%{SuiteSparse_config_major} -lm
  142. ln -sf libcamd.so.%{camd_version} libcamd.so.%{camd_version_major}
  143. ln -sf libcamd.so.%{camd_version} libcamd.so
  144. cp -p ../CAMD/Lib/*.a ./
  145. popd
  146. cp -p Include/*.h ../Include
  147. cp -p README.txt Doc/ChangeLog Doc/License Doc/*.pdf ../Doc/CAMD
  148. popd
  149. pushd CCOLAMD
  150. pushd Lib
  151. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  152. popd
  153. pushd ../Lib
  154. gcc -shared -Wl,-soname,libccolamd.so.%{ccolamd_version_major} -o \
  155. libccolamd.so.%{ccolamd_version} ../CCOLAMD/Lib/*.o \
  156. libsuitesparseconfig.so.%{SuiteSparse_config_major} -lm
  157. ln -sf libccolamd.so.%{ccolamd_version} libccolamd.so.%{ccolamd_version_major}
  158. ln -sf libccolamd.so.%{ccolamd_version} libccolamd.so
  159. cp -p ../CCOLAMD/Lib/*.a ./
  160. popd
  161. cp -p Include/*.h ../Include
  162. cp -p README.txt Doc/* ../Doc/CCOLAMD
  163. popd
  164. pushd COLAMD
  165. pushd Lib
  166. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  167. popd
  168. pushd ../Lib
  169. gcc -shared -Wl,-soname,libcolamd.so.%{colamd_version_major} -o \
  170. libcolamd.so.%{colamd_version} ../COLAMD/Lib/*.o \
  171. libsuitesparseconfig.so.%{SuiteSparse_config_major} -lm
  172. ln -sf libcolamd.so.%{colamd_version} libcolamd.so.%{colamd_version_major}
  173. ln -sf libcolamd.so.%{colamd_version} libcolamd.so
  174. cp -p ../COLAMD/Lib/*.a ./
  175. popd
  176. cp -p Include/*.h ../Include
  177. cp -p README.txt Doc/* ../Doc/COLAMD
  178. popd
  179. %if "%{?enable_metis}" == "1"
  180. CHOLMOD_FLAGS="$RPM_OPT_FLAGS -I%{_includedir}/metis -fPIC"
  181. %else
  182. CHOLMOD_FLAGS="$RPM_OPT_FLAGS -DNPARTITION -fPIC"
  183. %endif
  184. pushd CHOLMOD
  185. pushd Lib
  186. make CFLAGS="$CHOLMOD_FLAGS"
  187. popd
  188. pushd ../Lib
  189. gcc -shared -Wl,-soname,libcholmod.so.%{cholmod_version_major} -o \
  190. libcholmod.so.%{cholmod_version} ../CHOLMOD/Lib/*.o \
  191. libamd.so.%{amd_version_major} \
  192. libcamd.so.%{camd_version_major} libcolamd.so.%{colamd_version_major} \
  193. libccolamd.so.%{ccolamd_version_major} \
  194. libsuitesparseconfig.so.%{SuiteSparse_config_major} -lm \
  195. -llapack -lblas -lgfortran
  196. # -L%{_libdir}/atlas %{atlaslibs} \
  197. ln -sf libcholmod.so.%{cholmod_version} libcholmod.so.%{cholmod_version_major}
  198. ln -sf libcholmod.so.%{cholmod_version} libcholmod.so
  199. cp -p ../CHOLMOD/Lib/*.a ./
  200. popd
  201. cp -p Include/*.h ../Include
  202. cp -p README.txt Doc/*.pdf ../Doc/CHOLMOD
  203. cp -p Cholesky/License.txt ../Doc/CHOLMOD/Cholesky_License.txt
  204. cp -p Core/License.txt ../Doc/CHOLMOD/Core_License.txt
  205. cp -p MatrixOps/License.txt ../Doc/CHOLMOD/MatrixOps_License.txt
  206. cp -p Partition/License.txt ../Doc/CHOLMOD/Partition_License.txt
  207. cp -p Supernodal/License.txt ../Doc/CHOLMOD/Supernodal_License.txt
  208. popd
  209. %if "%{?enable_csparse}" == "1"
  210. pushd CSparse
  211. pushd Source
  212. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  213. cp -p cs.h ../../Include
  214. popd
  215. pushd ../Lib
  216. gcc -shared -Wl,-soname,libcsparse.so.%{csparse_version_major} -o \
  217. libcsparse.so.%{csparse_version} ../CSparse/Source/*.o -lm
  218. ln -sf libcsparse.so.%{csparse_version} libcsparse.so.%{csparse_version_major}
  219. ln -sf libcsparse.so.%{csparse_version} libcsparse.so
  220. cp -p ../CSparse/Source/*.a ./
  221. popd
  222. mkdir ../Doc/CSparse/
  223. cp -p Doc/* ../Doc/CSparse
  224. popd
  225. %else
  226. pushd CXSparse
  227. pushd Lib
  228. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  229. popd
  230. pushd ../Lib
  231. gcc -shared -Wl,-soname,libcxsparse.so.%{cxsparse_version_major} -o \
  232. libcxsparse.so.%{cxsparse_version} ../CXSparse/Lib/*.o -lm
  233. ln -sf libcxsparse.so.%{cxsparse_version} libcxsparse.so.%{cxsparse_version_major}
  234. ln -sf libcxsparse.so.%{cxsparse_version} libcxsparse.so
  235. cp -p ../CXSparse/Lib/*.a ./
  236. popd
  237. cp -p Include/cs.h ../Include
  238. mkdir ../Doc/CXSparse/
  239. cp -p Doc/* ../Doc/CXSparse
  240. popd
  241. %endif
  242. pushd KLU
  243. pushd Lib
  244. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  245. popd
  246. pushd ../Lib
  247. gcc -shared -Wl,-soname,libklu.so.%{klu_version_major} -o \
  248. libklu.so.%{klu_version} ../KLU/Lib/*.o \
  249. libamd.so.%{amd_version_major} libcolamd.so.%{colamd_version_major} \
  250. libbtf.so.%{btf_version_major} \
  251. libsuitesparseconfig.so.%{SuiteSparse_config_major}
  252. ln -sf libklu.so.%{klu_version} libklu.so.%{klu_version_major}
  253. ln -sf libklu.so.%{klu_version} libklu.so
  254. cp -p ../KLU/Lib/*.a ./
  255. popd
  256. cp -p Include/*.h ../Include
  257. cp -p README.txt Doc/lesser.txt ../Doc/KLU
  258. popd
  259. pushd LDL
  260. pushd Lib
  261. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  262. popd
  263. pushd ../Lib
  264. gcc -shared -Wl,-soname,libldl.so.%{ldl_version_major} -o \
  265. libldl.so.%{ldl_version} ../LDL/Lib/*.o
  266. ln -sf libldl.so.%{ldl_version} libldl.so.%{ldl_version_major}
  267. ln -sf libldl.so.%{ldl_version} libldl.so
  268. cp -p ../LDL/Lib/*.a ./
  269. popd
  270. cp -p Include/*.h ../Include
  271. cp -p README.txt Doc/ChangeLog Doc/lesser.txt Doc/*.pdf ../Doc/LDL
  272. popd
  273. pushd UMFPACK
  274. pushd Lib
  275. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  276. popd
  277. pushd ../Lib
  278. gcc -shared -Wl,-soname,libumfpack.so.%{umfpack_version_major} -o \
  279. libumfpack.so.%{umfpack_version} ../UMFPACK/Lib/*.o \
  280. libamd.so.%{amd_version_major} \
  281. libcholmod.so.%{cholmod_version_major} \
  282. libsuitesparseconfig.so.%{SuiteSparse_config_major} -lm \
  283. -llapack -lblas -lgfortran
  284. # -L%{_libdir}/atlas %{atlaslibs} \
  285. ln -sf libumfpack.so.%{umfpack_version} libumfpack.so.%{umfpack_version_major}
  286. ln -sf libumfpack.so.%{umfpack_version} libumfpack.so
  287. cp -p ../UMFPACK/Lib/*.a ./
  288. popd
  289. cp -p Include/*.h ../Include
  290. cp -p README.txt Doc/License Doc/ChangeLog Doc/gpl.txt Doc/*.pdf ../Doc/UMFPACK
  291. popd
  292. pushd SPQR
  293. pushd Lib
  294. make CFLAGS="$RPM_OPT_FLAGS %{?with_tbb:-DHAVE_TBB} -DNPARTITION -fPIC"
  295. popd
  296. pushd ../Lib
  297. g++ -shared -Wl,-soname,libspqr.so.%{spqr_version_major} -o \
  298. libspqr.so.%{spqr_version} ../SPQR/Lib/*.o \
  299. -L%{_libdir} \
  300. %{?with_tbb:-ltbb} \
  301. libcholmod.so.%{cholmod_version_major} \
  302. libsuitesparseconfig.so.%{SuiteSparse_config_major} -lm \
  303. -llapack -lblas -lgfortran
  304. # -L%{_libdir}/atlas -L%{_libdir} %{atlaslibs} \
  305. ln -sf libspqr.so.%{spqr_version} libspqr.so.%{spqr_version_major}
  306. ln -sf libspqr.so.%{spqr_version} libspqr.so
  307. cp -p ../SPQR/Lib/*.a ./
  308. popd
  309. cp -p Include/*.h* ../Include
  310. cp -p README{,_SPQR}.txt
  311. cp -p README_SPQR.txt Doc/* ../Doc/SPQR
  312. popd
  313. pushd RBio
  314. pushd Lib
  315. make CFLAGS="$RPM_OPT_FLAGS -fPIC"
  316. popd
  317. pushd ../Lib
  318. gcc -shared -Wl,-soname,librbio.so.%{rbio_version_major} -o \
  319. librbio.so.%{rbio_version} ../RBio/Lib/*.o \
  320. libsuitesparseconfig.so.%{SuiteSparse_config_major}
  321. ln -sf librbio.so.%{rbio_version} librbio.so.%{rbio_version_major}
  322. ln -sf librbio.so.%{rbio_version} librbio.so
  323. cp -p ../RBio/Lib/*.a ./
  324. popd
  325. cp -p Include/*.h ../Include
  326. cp -p README.txt Doc/ChangeLog Doc/License.txt ../Doc/RBio
  327. popd
  328. %install
  329. rm -rf ${RPM_BUILD_ROOT}
  330. mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
  331. mkdir -p ${RPM_BUILD_ROOT}%{_includedir}/%{name}
  332. pushd Lib
  333. for f in *.a *.so*; do
  334. cp -a $f ${RPM_BUILD_ROOT}%{_libdir}/$f
  335. done
  336. popd
  337. pushd Include
  338. for f in *.h *.hpp; do
  339. cp -a $f ${RPM_BUILD_ROOT}%{_includedir}/%{name}/$f
  340. done
  341. popd
  342. %clean
  343. rm -rf ${RPM_BUILD_ROOT}
  344. %post -p /sbin/ldconfig
  345. %postun -p /sbin/ldconfig
  346. %files
  347. %defattr(-,root,root)
  348. %doc Doc/*
  349. %{_libdir}/lib*.so.*
  350. %files devel
  351. %defattr(-,root,root)
  352. %{_includedir}/%{name}
  353. %{_libdir}/lib*.so
  354. %files static
  355. %defattr(-,root,root)
  356. %{_libdir}/lib*.a
  357. %changelog
  358. * Tue Feb 17 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 4.3.1-1
  359. - updated to 4.3.1
  360. * Thu Mar 15 2012 NAKAMURA Kenta <kenta@vinelinux.org> 3.7.0-1
  361. - Updated to 3.7.0
  362. * Mon Dec 01 2008 NAKAMURA Kenta <kenta@vinelinux.org> 3.6.1-1
  363. - Updated to 3.6.1
  364. * Sat Oct 11 2008 Shu KONNO <owa@bg.wakwak.com> 3.1.0-3vl5
  365. - applied new versioning policy
  366. * Wed Jan 02 2008 NAKAMURA Kenta <kenta@vinelinux.org> 3.1.0-2vl1
  367. - New release.
  368. * Wed Jan 02 2008 NAKAMURA Kenta <kenta@vinelinux.org> 3.0.0-2vl1
  369. - Rebuild for VineSeed
  370. * Fri Aug 24 2007 Quentin Spencer <qspencer@users.sourceforge.net> 3.0.0-2
  371. - Rebuild for F8.
  372. * Tue Jul 3 2007 Quentin Spencer <qspencer@users.sourceforge.net> 3.0.0-1
  373. - Change package name to match upstream, including provides and obsoletes.
  374. - New release. Numerous changes in build to reflect source reorganization.
  375. - Moved static libs into separate package.
  376. * Mon Oct 16 2006 Quentin Spencer <qspencer@users.sourceforge.net> 2.1.1-1
  377. - New release, and package name change from UFsparse to SuiteSparse. Fixes
  378. bug #210846. Keep the ufsparse package name for now.
  379. * Thu Sep 7 2006 Quentin Spencer <qspencer@users.sourceforge.net> 2.1.0-1
  380. - New release. Increment versions of some libraries.
  381. - Rearrange and clean up spec file so all definitions are in one place.
  382. * Mon Aug 7 2006 Quentin Spencer <qspencer@users.sourceforge.net> 2.0.0-1
  383. - New release.
  384. - Build newly added CAMD library.
  385. - Misc minor spec changes.
  386. * Tue Mar 7 2006 Quentin Spencer <qspencer@users.sourceforge.net> 1.2-1
  387. - New release.
  388. - Build newly added library CXSparse (but not CSparse--see comments
  389. in build section).
  390. * Wed Feb 15 2006 Quentin Spencer <qspencer@users.sourceforge.net> 0.93-2
  391. - Rebuild for Fedora Extras 5.
  392. * Thu Feb 9 2006 Quentin Spencer <qspencer@users.sourceforge.net> 0.93-1
  393. - New release. Remove old patch.
  394. * Wed Dec 14 2005 Quentin Spencer <qspencer@users.sourceforge.net> 0.92-2
  395. - Add patch0--fixes LDL/Makefile so CFLAGS are used when compiling ldl.a.
  396. * Wed Dec 14 2005 Quentin Spencer <qspencer@users.sourceforge.net> 0.92-1
  397. - Update to Dec 8 2005 version.
  398. * Tue Oct 25 2005 Quentin Spencer <qspencer@users.sourceforge.net> 0.91-2
  399. - Rebuild.
  400. * Tue Oct 18 2005 Quentin Spencer <qspencer@users.sourceforge.net> 0.91-1
  401. - New upstream release, incorporating previous patches
  402. - chmod the build directory to ensure all headers are world readable
  403. * Fri Oct 07 2005 Quentin Spencer <qspencer@users.sourceforge.net> 0.9-3
  404. - Build cholmod, but disable METIS using -DNPARTITION flag.
  405. * Sat Oct 01 2005 Quentin Spencer <qspencer@users.sourceforge.net> 0.9-2
  406. - Modify description, other modifications for import into FE.
  407. - Add dist tag, cosmetic changes.
  408. * Tue Sep 08 2005 David Bateman <dbateman@free.fr> 0.9-1
  409. - First version.