]>
Commit | Line | Data |
---|---|---|
1 | # NOTE: when updating automake_support patch, look both on included | |
2 | # cmake suite and plain Makefiles - one of them is mostly outdated | |
3 | # (as of 3.4.0, cmake misses some files added in 3.4; also it | |
4 | # doesn't care about setting soname, so currently isn't worth using) | |
5 | Summary: The LAPACK libraries for numerical linear algebra | |
6 | Summary(pl.UTF-8): Biblioteki numeryczne LAPACK do algebry liniowej | |
7 | Name: lapack | |
8 | Version: 3.7.0 | |
9 | %define man_ver 3.7.0 | |
10 | Release: 2 | |
11 | License: BSD-like | |
12 | Group: Libraries | |
13 | Source0: http://www.netlib.org/lapack/%{name}-%{version}.tgz | |
14 | # Source0-md5: 697bb8d67c7d336a0f339cc9dd0fa72f | |
15 | Source1: http://www.netlib.org/lapack/manpages-%{man_ver}.tgz | |
16 | # Source1-md5: 5d538ef8b8240bf7e9895feae45428dc | |
17 | Patch0: %{name}-automake_support.patch | |
18 | Patch1: blas-nan.patch | |
19 | URL: http://www.netlib.org/lapack/ | |
20 | BuildRequires: autoconf >= 2.50 | |
21 | BuildRequires: automake | |
22 | BuildRequires: gcc-fortran | |
23 | BuildRequires: libtool >= 2:1.5 | |
24 | Requires: blas = %{version}-%{release} | |
25 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
26 | ||
27 | # missing __stack_chk_fail symbol when only Fortran sources used | |
28 | %undefine _fortify_cflags | |
29 | %undefine _ssp_cflags | |
30 | ||
31 | %description | |
32 | LAPACK (Linear Algebra PACKage) is a standard library for numerical | |
33 | linear algebra. LAPACK provides routines for solving systems of | |
34 | simultaneous linear equations, least-squares solutions of linear | |
35 | systems of equations, eigenvalue problems, and singular value | |
36 | problems. Associated matrix factorizations (LU, Cholesky, QR, SVD, | |
37 | Schur, and generalized Schur) and related computations (i.e., | |
38 | reordering of Schur factorizations and estimating condition numbers) | |
39 | are also included. LAPACK can handle dense and banded matrices, but | |
40 | not general sparse matrices. Similar functionality is provided for | |
41 | real and complex matrices in both single and double precision. LAPACK | |
42 | is coded in Fortran77. | |
43 | ||
44 | %description -l pl.UTF-8 | |
45 | LAPACK (Linear Algebra PACKage) jest standardową biblioteką numeryczną | |
46 | do algebry liniowej. Dostarcza funkcje rozwiązywania: układów równań | |
47 | liniowych, układów równań metodą najmniejszych kwadratów, problemów | |
48 | własnych. Zawiera algorytmy faktoryzacji macierzy (LU, Cholesky'ego, | |
49 | QR, SVD, Schura, uogólnioną Schura) i związanych z tym obliczeń (np. | |
50 | przenumerowywanie w faktoryzacji Schura i estymację uwarunkowania). | |
51 | LAPACK może obsługiwać macierze blokowe i pasmowe, ale nie rzadkie w | |
52 | ogólnym przypadku. Zapewnia funkcjonalność dla macierzy rzeczywistych | |
53 | i zespolonych, dla liczb pojedynczej i podwójnej precyzji. LAPACK jest | |
54 | napisany w Fortranie 77. | |
55 | ||
56 | %package devel | |
57 | Summary: LAPACK development files | |
58 | Summary(pl.UTF-8): Pliki programistyczne LAPACK | |
59 | Group: Development/Libraries | |
60 | Requires: %{name} = %{version}-%{release} | |
61 | Requires: blas-devel = %{version}-%{release} | |
62 | Obsoletes: lapack-man | |
63 | ||
64 | %description devel | |
65 | LAPACK development files. | |
66 | ||
67 | %description devel -l pl.UTF-8 | |
68 | Pliki programistyczne LAPACK. | |
69 | ||
70 | %package static | |
71 | Summary: Static LAPACK libraries | |
72 | Summary(pl.UTF-8): Biblioteki statyczne LAPACK | |
73 | Group: Development/Libraries | |
74 | Requires: %{name}-devel = %{version}-%{release} | |
75 | ||
76 | %description static | |
77 | Static LAPACK libraries. | |
78 | ||
79 | %description static -l pl.UTF-8 | |
80 | Biblioteki statyczne LAPACK. | |
81 | ||
82 | %package -n blas | |
83 | Summary: The BLAS (Basic Linear Algebra Subprograms) library for Linux | |
84 | Summary(pl.UTF-8): Biblioteka BLAS (Basic Linear Algebra Subprograms) dla Linuksa | |
85 | Group: Libraries | |
86 | Obsoletes: lapack-blas | |
87 | ||
88 | %description -n blas | |
89 | BLAS (Basic Linear Algebra Subprograms) is a standard library for | |
90 | numerical algebra. BLAS provides a number of basic algorithms for | |
91 | linear algebra. BLAS is fast and well-tested, was written in FORTRAN | |
92 | 77. | |
93 | ||
94 | Warning: this is a reference implementation from Netlib. If possible, | |
95 | use version optimized for your architecture instead. | |
96 | ||
97 | %description -n blas -l pl.UTF-8 | |
98 | BLAS (Basic Linear Algebra Subprograms) jest standardową biblioteką | |
99 | numeryczną algebry. Dostarcza wiele podstawowych algorytmów dla | |
100 | algebry liniowej. Jest szybka i dobrze przetestowana, została napisana | |
101 | w Fortranie 77. | |
102 | ||
103 | Ostrzeżenie: to jest implementacja przykładowa z repozytorium Netlib. | |
104 | Jeżeli to możliwe, należy używać zamiast niej wersji zoptymalizowanej | |
105 | pod daną architekturę. | |
106 | ||
107 | %package -n blas-devel | |
108 | Summary: BLAS development files | |
109 | Summary(pl.UTF-8): Pliki programistyczne BLAS | |
110 | Group: Development/Libraries | |
111 | Requires: blas = %{version}-%{release} | |
112 | Obsoletes: blas-man | |
113 | ||
114 | %description -n blas-devel | |
115 | BLAS development files. | |
116 | ||
117 | %description -n blas-devel -l pl.UTF-8 | |
118 | Pliki programistyczne BLAS. | |
119 | ||
120 | %package -n blas-static | |
121 | Summary: Static BLAS library | |
122 | Summary(pl.UTF-8): Biblioteka statyczna BLAS | |
123 | Group: Development/Libraries | |
124 | Requires: blas-devel = %{version}-%{release} | |
125 | ||
126 | %description -n blas-static | |
127 | Static BLAS library. | |
128 | ||
129 | %description -n blas-static -l pl.UTF-8 | |
130 | Biblioteka statyczna BLAS. | |
131 | ||
132 | %package -n lapacke | |
133 | Summary: LAPACKE - native C interface to LAPACK library routines | |
134 | Summary(pl.UTF-8): LAPACKE - natywny interfejs C do procedur biblioteki LAPACK | |
135 | Group: Libraries | |
136 | Requires: lapack = %{version}-%{release} | |
137 | ||
138 | %description -n lapacke | |
139 | This library is a part of reference implementation for the C interface | |
140 | to LAPACK project according to the specifications described at the | |
141 | forum for the Intel(R) Math Kernel Library (Intel(R) MKL). | |
142 | ||
143 | This implementation provides a native C interface to LAPACK routines | |
144 | to facilitate usage of LAPACK functionality for C programmers. | |
145 | ||
146 | %description -n lapacke -l pl.UTF-8 | |
147 | Ta bilioteka jest częścią implementacji referencyjnej interfejsu C do | |
148 | projektu LAPACK, zgodnej ze specyfikacją opisaną na forum biblioteki | |
149 | Intel(R) Math Kernel Library. | |
150 | ||
151 | Ta implementacja udostępnia natywny interfejs C do procedur biblioteki | |
152 | LAPACK, ułatwiając jej użycie programistom C. | |
153 | ||
154 | %package -n lapacke-devel | |
155 | Summary: Header files for LAPACKE - native C interface to LAPACK | |
156 | Summary(pl.UTF-8): Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do biblioteki LAPACK | |
157 | Group: Development/Libraries | |
158 | Requires: lapack-devel = %{version}-%{release} | |
159 | Requires: lapacke = %{version}-%{release} | |
160 | ||
161 | %description -n lapacke-devel | |
162 | Header files for LAPACKE - native C interface to LAPACK. | |
163 | ||
164 | %description -n lapacke-devel -l pl.UTF-8 | |
165 | Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do | |
166 | biblioteki LAPACK. | |
167 | ||
168 | %package -n lapacke-static | |
169 | Summary: Static LAPACKE library - native C interface to LAPACK | |
170 | Summary(pl.UTF-8): Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki LAPACK | |
171 | Group: Development/Libraries | |
172 | Requires: lapacke-devel = %{version}-%{release} | |
173 | ||
174 | %description -n lapacke-static | |
175 | Static LAPACKE library - native C interface to LAPACK. | |
176 | ||
177 | %description -n lapacke-static -l pl.UTF-8 | |
178 | Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki | |
179 | LAPACK. | |
180 | ||
181 | %prep | |
182 | %setup -q -a1 | |
183 | %patch0 -p1 | |
184 | %patch1 -p1 | |
185 | # directory INSTALL conflicts with file INSTALL needed by automake | |
186 | %{__mv} INSTALL INSTALLSRC | |
187 | # copy selected routines; use INT_ETIME versions of second | |
188 | cp -f INSTALLSRC/{ilaver,slamch,dlamch,second_INT_ETIME,dsecnd_INT_ETIME}.f SRC | |
189 | ||
190 | # bogus | |
191 | %{__rm} man/man3/{_Users_julie_Downloads_lapack-*,groups-usr.dox}.3 | |
192 | # duplicated... | |
193 | %{__rm} man/man3/{SRC_xerbla,SRC_xerbla_array}.f.3 | |
194 | # ...in BLAS and LAPACK sources; keep versions from BLAS | |
195 | %{__mv} man/man3/BLAS_SRC_xerbla.f.3 man/man3/xerbla.f.3 | |
196 | %{__mv} man/man3/BLAS_SRC_xerbla_array.f.3 man/man3/xerbla_array.f.3 | |
197 | # not used variants of some procedures | |
198 | %{__rm} man/man3/{VARIANTS_*,sceil.f}.3 | |
199 | # directory only pages with no real information and non-man references to others | |
200 | %{__rm} man/man3/{GB,GE,GT,HE,OTHERcomputational,OTHEReigen,OTHERsolve,PO,PT,SY,aux_{eig,lin,matgen},{auxiliary,computational}{GB,GE,GT,HE,PO,PT,SY},blas,blastesting,{complex,complex16}{POauxiliary,SYeigen,_blas_testing,_lin,_matgen},{double,real}{{GT,PO,PT}auxiliary,_matgen},{double,single}{_blas_testing,_lin},eig,eigen{GE,HE,SY},lapack,level{1,2,3},lin,matgen,singGE,solve{GB,GE,GT,HE,PO,PT,SY},testing}.3 | |
201 | # documentation for examples | |
202 | %{__rm} man/man3/{LDA,LDB,N,NRHS,example_*,lapacke_example_aux.*,main,print_*}.3 | |
203 | ||
204 | %build | |
205 | %{__libtoolize} | |
206 | %{__aclocal} | |
207 | %{__autoheader} | |
208 | %{__autoconf} | |
209 | %{__automake} | |
210 | %configure | |
211 | ||
212 | %{__make} | |
213 | ||
214 | %install | |
215 | rm -rf $RPM_BUILD_ROOT | |
216 | ||
217 | %{__make} install \ | |
218 | DESTDIR=$RPM_BUILD_ROOT | |
219 | ||
220 | # install man pages, distributing them among blas-devel and lapack-devel | |
221 | install -d $RPM_BUILD_ROOT%{_mandir}/man3 | |
222 | echo "%defattr(644,root,root,755)" > blasmans.list | |
223 | echo "%defattr(644,root,root,755)" > mans.list | |
224 | echo "%defattr(644,root,root,755)" > lapackemans.list | |
225 | BLAS_ADDITIONAL='aux_blas|(complex|complex16|double|single)_blas_level[123]' | |
226 | LAPACK_ADDITIONAL='OTHERauxiliary|(aux|complex|complex16|double|real|variants)(GB|GE|GT|HE|OTHER|PO|PT|SY)(auxiliary|computational|eigen|sing|solve)|(complex|complex16|double|single)_eig|variants(GE|OTHER|PO)computational' | |
227 | MANS_ADDITIONAL="$BLAS_ADDITIONAL|$LAPACK_ADDITIONAL" | |
228 | for f in man/man3/*.3 ; do | |
229 | cp -p "$f" $RPM_BUILD_ROOT%{_mandir}/man3 | |
230 | bn=$(basename $f) | |
231 | if echo "$bn" | grep '\.[cfh]\.3$' ; then | |
232 | ffn="${bn%.3}" | |
233 | elif echo "$bn" | grep -E "^($MANS_ADDITIONAL)\.3\$" ; then | |
234 | ffn="${bn%.3}" | |
235 | elif grep '^\.so man3/.*\.[cfh]\.3$' "$f" ; then | |
236 | ffn=$(sed -e '1s,^\.so man3/\(.*\.[cfh]\)\.3,\1,' $f) | |
237 | elif grep -E "^\.so man3/($MANS_ADDITIONAL)\.3" "$f"; then | |
238 | ffn=$(sed -e '1s,^\.so man3/\([^.]*\)\.3,\1,' $f) | |
239 | else | |
240 | echo "Unknown manpage: $f" | |
241 | exit 1 | |
242 | fi | |
243 | if [ -f "BLAS/SRC/$ffn" ] || echo "$ffn" | grep -E "^($BLAS_ADDITIONAL)\$" ; then | |
244 | echo "%{_mandir}/man3/${bn}*" >> blasmans.list | |
245 | elif [ -f "SRC/$ffn" -o -f "INSTALLSRC/$ffn" ] || echo "$ffn" | grep -E "^($LAPACK_ADDITIONAL)\$"; then | |
246 | echo "%{_mandir}/man3/${bn}*" >> mans.list | |
247 | elif [ -f "LAPACKE/include/$ffn" -o -f "LAPACKE/src/$ffn" -o -f "LAPACKE/utils/$ffn" ]; then | |
248 | echo "%{_mandir}/man3/${bn}*" >> lapackemans.list | |
249 | else | |
250 | echo "Unknown manpage: $f (source file: $ffn)" | |
251 | exit 1 | |
252 | fi | |
253 | done | |
254 | ||
255 | %clean | |
256 | rm -rf $RPM_BUILD_ROOT | |
257 | ||
258 | %post -p /sbin/ldconfig | |
259 | %postun -p /sbin/ldconfig | |
260 | ||
261 | %post -n blas -p /sbin/ldconfig | |
262 | %postun -n blas -p /sbin/ldconfig | |
263 | ||
264 | %post -n lapacke -p /sbin/ldconfig | |
265 | %postun -n lapacke -p /sbin/ldconfig | |
266 | ||
267 | %files | |
268 | %defattr(644,root,root,755) | |
269 | %doc LICENSE README | |
270 | %attr(755,root,root) %{_libdir}/liblapack.so.*.*.* | |
271 | %attr(755,root,root) %ghost %{_libdir}/liblapack.so.3 | |
272 | ||
273 | %files devel -f mans.list | |
274 | %defattr(644,root,root,755) | |
275 | %attr(755,root,root) %{_libdir}/liblapack.so | |
276 | %{_libdir}/liblapack.la | |
277 | %{_pkgconfigdir}/lapack.pc | |
278 | ||
279 | %files static | |
280 | %defattr(644,root,root,755) | |
281 | %{_libdir}/liblapack.a | |
282 | ||
283 | %files -n blas | |
284 | %defattr(644,root,root,755) | |
285 | %attr(755,root,root) %{_libdir}/libblas.so.*.*.* | |
286 | %attr(755,root,root) %ghost %{_libdir}/libblas.so.3 | |
287 | ||
288 | %files -n blas-devel -f blasmans.list | |
289 | %defattr(644,root,root,755) | |
290 | %attr(755,root,root) %{_libdir}/libblas.so | |
291 | %{_libdir}/libblas.la | |
292 | %{_pkgconfigdir}/blas.pc | |
293 | ||
294 | %files -n blas-static | |
295 | %defattr(644,root,root,755) | |
296 | %{_libdir}/libblas.a | |
297 | ||
298 | %files -n lapacke -f lapackemans.list | |
299 | %defattr(644,root,root,755) | |
300 | %doc LAPACKE/{LICENSE,README} | |
301 | %attr(755,root,root) %{_libdir}/liblapacke.so.*.*.* | |
302 | %attr(755,root,root) %ghost %{_libdir}/liblapacke.so.3 | |
303 | ||
304 | %files -n lapacke-devel | |
305 | %defattr(644,root,root,755) | |
306 | %attr(755,root,root) %{_libdir}/liblapacke.so | |
307 | %{_libdir}/liblapacke.la | |
308 | %{_includedir}/lapacke*.h | |
309 | %{_pkgconfigdir}/lapacke.pc | |
310 | ||
311 | %files -n lapacke-static | |
312 | %defattr(644,root,root,755) | |
313 | %{_libdir}/liblapacke.a |