source: projects/specs/trunk/s/suitesparse/suitesparse-vl.spec @ 12034

Revision 12034, 15.9 KB checked in by ara_t, 5 years ago (diff)

suitesparse: rebuild with gfortran-8.2.0

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