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

Revision 5911, 11.9 KB checked in by kenta, 12 years ago (diff)

suitesparse: Updated to 3.7.0

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