]>
Commit | Line | Data |
---|---|---|
840838df JB |
1 | # |
2 | # Conditional build: | |
3 | %bcond_without static_libs # static libraries | |
4 | %bcond_without tests # unit tests | |
5 | %bcond_with xblas # use xblas | |
6 | ||
1d0d5108 | 7 | Summary: The LAPACK libraries for numerical linear algebra |
084ff819 | 8 | Summary(pl.UTF-8): Biblioteki numeryczne LAPACK do algebry liniowej |
3c513ef3 | 9 | Name: lapack |
840838df JB |
10 | Version: 3.8.0 |
11 | %define man_ver 3.8.0 | |
a06982c2 | 12 | Release: 2 |
b3147294 | 13 | License: BSD-like |
4d771884 | 14 | Group: Libraries |
840838df JB |
15 | Source0: http://www.netlib.org/lapack/%{name}-%{version}.tar.gz |
16 | # Source0-md5: 96591affdbf58c450d45c1daa540dbd2 | |
c42e604c | 17 | Source1: http://www.netlib.org/lapack/manpages-%{man_ver}.tgz |
840838df JB |
18 | # Source1-md5: bbf94b49b43e2195de42c1d76b620de1 |
19 | Patch0: blas-nan.patch | |
3c513ef3 | 20 | URL: http://www.netlib.org/lapack/ |
840838df | 21 | BuildRequires: cmake >= 2.8.12 |
a1923521 | 22 | BuildRequires: gcc-fortran |
840838df | 23 | %{?with_xblas:BuildRequires: xblas-devel} |
584ffaf6 | 24 | Requires: blas = %{version}-%{release} |
64123b99 | 25 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
3c513ef3 | 26 | |
b371c4ed JB |
27 | # missing __stack_chk_fail symbol when only Fortran sources used |
28 | %undefine _fortify_cflags | |
29 | %undefine _ssp_cflags | |
30 | ||
3c513ef3 | 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 | |
6ec8881e JB |
42 | is coded in Fortran77. |
43 | ||
eb8f2cff JR |
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 | |
6ec8881e | 54 | napisany w Fortranie 77. |
3c513ef3 | 55 | |
f1593bb3 | 56 | %package devel |
e956dfe5 JB |
57 | Summary: LAPACK development files |
58 | Summary(pl.UTF-8): Pliki programistyczne LAPACK | |
f1593bb3 | 59 | Group: Development/Libraries |
584ffaf6 JB |
60 | Requires: %{name} = %{version}-%{release} |
61 | Requires: blas-devel = %{version}-%{release} | |
1d0d5108 | 62 | Obsoletes: lapack-man |
f1593bb3 | 63 | |
64 | %description devel | |
e956dfe5 | 65 | LAPACK development files. |
f1593bb3 | 66 | |
eb8f2cff | 67 | %description devel -l pl.UTF-8 |
e956dfe5 | 68 | Pliki programistyczne LAPACK. |
f1593bb3 | 69 | |
70 | %package static | |
6ec8881e | 71 | Summary: Static LAPACK libraries |
084ff819 | 72 | Summary(pl.UTF-8): Biblioteki statyczne LAPACK |
f1593bb3 | 73 | Group: Development/Libraries |
584ffaf6 | 74 | Requires: %{name}-devel = %{version}-%{release} |
f1593bb3 | 75 | |
76 | %description static | |
6ec8881e | 77 | Static LAPACK libraries. |
f1593bb3 | 78 | |
eb8f2cff | 79 | %description static -l pl.UTF-8 |
6ec8881e | 80 | Biblioteki statyczne LAPACK. |
f1593bb3 | 81 | |
3c513ef3 | 82 | %package -n blas |
6ec8881e | 83 | Summary: The BLAS (Basic Linear Algebra Subprograms) library for Linux |
084ff819 | 84 | Summary(pl.UTF-8): Biblioteka BLAS (Basic Linear Algebra Subprograms) dla Linuksa |
4d771884 | 85 | Group: Libraries |
840838df | 86 | URL: http://www.netlib.org/blas/ |
3c513ef3 | 87 | Obsoletes: lapack-blas |
88 | ||
89 | %description -n blas | |
90 | BLAS (Basic Linear Algebra Subprograms) is a standard library for | |
91 | numerical algebra. BLAS provides a number of basic algorithms for | |
92 | linear algebra. BLAS is fast and well-tested, was written in FORTRAN | |
6ec8881e JB |
93 | 77. |
94 | ||
1599bb15 RW |
95 | Warning: this is a reference implementation from Netlib. If possible, |
96 | use version optimized for your architecture instead. | |
97 | ||
eb8f2cff JR |
98 | %description -n blas -l pl.UTF-8 |
99 | BLAS (Basic Linear Algebra Subprograms) jest standardową biblioteką | |
100 | numeryczną algebry. Dostarcza wiele podstawowych algorytmów dla | |
101 | algebry liniowej. Jest szybka i dobrze przetestowana, została napisana | |
6ec8881e | 102 | w Fortranie 77. |
3c513ef3 | 103 | |
eb8f2cff JR |
104 | Ostrzeżenie: to jest implementacja przykładowa z repozytorium Netlib. |
105 | Jeżeli to możliwe, należy używać zamiast niej wersji zoptymalizowanej | |
106 | pod daną architekturę. | |
1599bb15 | 107 | |
f1593bb3 | 108 | %package -n blas-devel |
e956dfe5 JB |
109 | Summary: BLAS development files |
110 | Summary(pl.UTF-8): Pliki programistyczne BLAS | |
f1593bb3 | 111 | Group: Development/Libraries |
840838df | 112 | URL: http://www.netlib.org/blas/ |
584ffaf6 | 113 | Requires: blas = %{version}-%{release} |
1d0d5108 | 114 | Obsoletes: blas-man |
f1593bb3 | 115 | |
116 | %description -n blas-devel | |
e956dfe5 | 117 | BLAS development files. |
f1593bb3 | 118 | |
eb8f2cff | 119 | %description -n blas-devel -l pl.UTF-8 |
e956dfe5 | 120 | Pliki programistyczne BLAS. |
f1593bb3 | 121 | |
122 | %package -n blas-static | |
c7c26a27 JB |
123 | Summary: Static BLAS library |
124 | Summary(pl.UTF-8): Biblioteka statyczna BLAS | |
f1593bb3 | 125 | Group: Development/Libraries |
840838df | 126 | URL: http://www.netlib.org/blas/ |
584ffaf6 | 127 | Requires: blas-devel = %{version}-%{release} |
f1593bb3 | 128 | |
129 | %description -n blas-static | |
c7c26a27 | 130 | Static BLAS library. |
f1593bb3 | 131 | |
eb8f2cff | 132 | %description -n blas-static -l pl.UTF-8 |
c7c26a27 JB |
133 | Biblioteka statyczna BLAS. |
134 | ||
840838df JB |
135 | %package -n cblas |
136 | Summary: C Standard Interface to BLAS Basic Linear Algebra Subprograms | |
137 | Summary(pl.UTF-8): Interfejs C do procedur BLAS (Basic Linear Algebra Subprograms) | |
138 | Group: Libraries | |
139 | URL: http://www.netlib.org/blas/#_cblas | |
140 | Requires: blas = %{version}-%{release} | |
141 | ||
142 | %description -n cblas | |
143 | C Standard Interface to BLAS Basic Linear Algebra Subprograms. | |
144 | ||
145 | %description -n cblas -l pl.UTF-8 | |
146 | Interfejs C do procedur BLAS (Basic Linear Algebra Subprograms - | |
147 | podstawowych procedur algebry liniowej). | |
148 | ||
149 | %package -n cblas-devel | |
150 | Summary: Header files of C Standard Interface to BLAS | |
151 | Summary(pl.UTF-8): Pliki nagłówkowe interfejsu C do BLAS | |
152 | Group: Libraries | |
153 | URL: http://www.netlib.org/blas/#_cblas | |
154 | Requires: blas-devel = %{version}-%{release} | |
155 | Requires: cblas = %{version}-%{release} | |
156 | ||
157 | %description -n cblas-devel | |
158 | Header files of C Standard Interface to BLAS. | |
159 | ||
160 | %description -n cblas-devel -l pl.UTF-8 | |
161 | Pliki nagłówkowe interfejsu C do BLAS. | |
162 | ||
163 | %package -n cblas-static | |
164 | Summary: Static CBLAS library | |
165 | Summary(pl.UTF-8): Statyczna biblioteka CBLAS | |
166 | Group: Libraries | |
167 | URL: http://www.netlib.org/blas/#_cblas | |
168 | Requires: cblas-devel = %{version}-%{release} | |
169 | ||
170 | %description -n cblas-static | |
171 | Static CBLAS library. | |
172 | ||
173 | %description -n cblas-static -l pl.UTF-8 | |
174 | Statyczna biblioteka CBLAS. | |
175 | ||
c7c26a27 JB |
176 | %package -n lapacke |
177 | Summary: LAPACKE - native C interface to LAPACK library routines | |
178 | Summary(pl.UTF-8): LAPACKE - natywny interfejs C do procedur biblioteki LAPACK | |
179 | Group: Libraries | |
840838df | 180 | URL: http://www.netlib.org/lapack/lapacke.html |
c7c26a27 JB |
181 | Requires: lapack = %{version}-%{release} |
182 | ||
183 | %description -n lapacke | |
184 | This library is a part of reference implementation for the C interface | |
185 | to LAPACK project according to the specifications described at the | |
186 | forum for the Intel(R) Math Kernel Library (Intel(R) MKL). | |
187 | ||
188 | This implementation provides a native C interface to LAPACK routines | |
189 | to facilitate usage of LAPACK functionality for C programmers. | |
190 | ||
191 | %description -n lapacke -l pl.UTF-8 | |
192 | Ta bilioteka jest częścią implementacji referencyjnej interfejsu C do | |
193 | projektu LAPACK, zgodnej ze specyfikacją opisaną na forum biblioteki | |
194 | Intel(R) Math Kernel Library. | |
195 | ||
196 | Ta implementacja udostępnia natywny interfejs C do procedur biblioteki | |
197 | LAPACK, ułatwiając jej użycie programistom C. | |
198 | ||
199 | %package -n lapacke-devel | |
200 | Summary: Header files for LAPACKE - native C interface to LAPACK | |
201 | Summary(pl.UTF-8): Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do biblioteki LAPACK | |
202 | Group: Development/Libraries | |
840838df | 203 | URL: http://www.netlib.org/lapack/lapacke.html |
c7c26a27 JB |
204 | Requires: lapack-devel = %{version}-%{release} |
205 | Requires: lapacke = %{version}-%{release} | |
206 | ||
207 | %description -n lapacke-devel | |
208 | Header files for LAPACKE - native C interface to LAPACK. | |
209 | ||
210 | %description -n lapacke-devel -l pl.UTF-8 | |
211 | Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do | |
212 | biblioteki LAPACK. | |
213 | ||
214 | %package -n lapacke-static | |
215 | Summary: Static LAPACKE library - native C interface to LAPACK | |
216 | Summary(pl.UTF-8): Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki LAPACK | |
217 | Group: Development/Libraries | |
840838df | 218 | URL: http://www.netlib.org/lapack/lapacke.html |
c7c26a27 JB |
219 | Requires: lapacke-devel = %{version}-%{release} |
220 | ||
221 | %description -n lapacke-static | |
222 | Static LAPACKE library - native C interface to LAPACK. | |
223 | ||
224 | %description -n lapacke-static -l pl.UTF-8 | |
225 | Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki | |
226 | LAPACK. | |
f1593bb3 | 227 | |
3c513ef3 | 228 | %prep |
a1923521 | 229 | %setup -q -a1 |
448f9206 | 230 | %patch0 -p1 |
c42e604c | 231 | # copy selected routines; use INT_ETIME versions of second |
840838df JB |
232 | # FIXME? CMakeLists doesn't handle second |
233 | #cp -f INSTALLSRC/{second_INT_ETIME,dsecnd_INT_ETIME}.f SRC | |
3c513ef3 | 234 | |
c7c26a27 | 235 | # bogus |
840838df | 236 | %{__rm} man/man3/_Users_julie_Documents_Boulot_GIT_lapack-release_*.3 |
c7c26a27 | 237 | # duplicated... |
b3147294 | 238 | %{__rm} man/man3/{SRC_xerbla,SRC_xerbla_array}.f.3 |
c7c26a27 | 239 | # ...in BLAS and LAPACK sources; keep versions from BLAS |
b3147294 JB |
240 | %{__mv} man/man3/BLAS_SRC_xerbla.f.3 man/man3/xerbla.f.3 |
241 | %{__mv} man/man3/BLAS_SRC_xerbla_array.f.3 man/man3/xerbla_array.f.3 | |
840838df JB |
242 | %{__sed} -i -e 's/BLAS_SRC_//' man/man3/{xerbla,xerbla_array}.3 |
243 | # in base and variants; adjust .so links to use base | |
244 | %{__sed} -i -e 's/VARIANTS_qr_LL_//' man/man3/zgeqrf.3 | |
245 | %{__sed} -i -e 's/VARIANTS_lu_CR_//' man/man3/zgetrf.3 | |
246 | %{__sed} -i -e 's/VARIANTS_cholesky_RL_//' man/man3/zpotrf.3 | |
b3147294 | 247 | # not used variants of some procedures |
840838df | 248 | %{__rm} man/man3/{VARIANTS_*,sceil,sceil.f}.3 |
b3147294 JB |
249 | # documentation for examples |
250 | %{__rm} man/man3/{LDA,LDB,N,NRHS,example_*,lapacke_example_aux.*,main,print_*}.3 | |
c7c26a27 | 251 | |
3c513ef3 | 252 | %build |
840838df JB |
253 | %if %{with static_libs} |
254 | install -d build-static | |
255 | cd build-static | |
256 | %cmake .. \ | |
257 | -DBUILD_DEPRECATED=ON \ | |
258 | -DBUILD_SHARED_LIBS=OFF \ | |
259 | -DCBLAS=ON \ | |
260 | -DLAPACKE_WITH_TMG=ON \ | |
261 | %{?with_xblas:-DUSE_XBLAS=ON} | |
262 | %{__make} | |
263 | cd .. | |
264 | %endif | |
265 | ||
266 | install -d build | |
267 | cd build | |
268 | %cmake .. \ | |
269 | -DBUILD_DEPRECATED=ON \ | |
270 | %{?with_tests:-DBUILD_TESTING=ON} \ | |
271 | -DCBLAS=ON \ | |
272 | -DLAPACKE_WITH_TMG=ON \ | |
273 | %{?with_xblas:-DUSE_XBLAS=ON} | |
c42e604c | 274 | %{__make} |
3c513ef3 | 275 | |
840838df JB |
276 | %{?with_tests:ctest} |
277 | ||
3c513ef3 | 278 | %install |
279 | rm -rf $RPM_BUILD_ROOT | |
64123b99 | 280 | |
840838df JB |
281 | %if %{with static_libs} |
282 | %{__make} -C build-static install \ | |
283 | DESTDIR=$RPM_BUILD_ROOT | |
284 | %endif | |
285 | ||
286 | %{__make} -C build install \ | |
584ffaf6 | 287 | DESTDIR=$RPM_BUILD_ROOT |
448f9206 | 288 | |
c7c26a27 | 289 | # install man pages, distributing them among blas-devel and lapack-devel |
3d16712d | 290 | install -d $RPM_BUILD_ROOT%{_mandir}/man3 |
e956dfe5 | 291 | echo "%defattr(644,root,root,755)" > blasmans.list |
e956dfe5 | 292 | echo "%defattr(644,root,root,755)" > mans.list |
b3147294 JB |
293 | echo "%defattr(644,root,root,755)" > lapackemans.list |
294 | BLAS_ADDITIONAL='aux_blas|(complex|complex16|double|single)_blas_level[123]' | |
295 | 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' | |
296 | MANS_ADDITIONAL="$BLAS_ADDITIONAL|$LAPACK_ADDITIONAL" | |
c7c26a27 JB |
297 | for f in man/man3/*.3 ; do |
298 | cp -p "$f" $RPM_BUILD_ROOT%{_mandir}/man3 | |
299 | bn=$(basename $f) | |
b3147294 | 300 | if echo "$bn" | grep '\.[cfh]\.3$' ; then |
c7c26a27 | 301 | ffn="${bn%.3}" |
b3147294 JB |
302 | elif echo "$bn" | grep -E "^($MANS_ADDITIONAL)\.3\$" ; then |
303 | ffn="${bn%.3}" | |
304 | elif grep '^\.so man3/.*\.[cfh]\.3$' "$f" ; then | |
305 | ffn=$(sed -e '1s,^\.so man3/\(.*\.[cfh]\)\.3,\1,' $f) | |
306 | elif grep -E "^\.so man3/($MANS_ADDITIONAL)\.3" "$f"; then | |
307 | ffn=$(sed -e '1s,^\.so man3/\([^.]*\)\.3,\1,' $f) | |
c7c26a27 JB |
308 | else |
309 | echo "Unknown manpage: $f" | |
310 | exit 1 | |
311 | fi | |
b3147294 | 312 | if [ -f "BLAS/SRC/$ffn" ] || echo "$ffn" | grep -E "^($BLAS_ADDITIONAL)\$" ; then |
c7c26a27 | 313 | echo "%{_mandir}/man3/${bn}*" >> blasmans.list |
b3147294 | 314 | elif [ -f "SRC/$ffn" -o -f "INSTALLSRC/$ffn" ] || echo "$ffn" | grep -E "^($LAPACK_ADDITIONAL)\$"; then |
c7c26a27 | 315 | echo "%{_mandir}/man3/${bn}*" >> mans.list |
b3147294 JB |
316 | elif [ -f "LAPACKE/include/$ffn" -o -f "LAPACKE/src/$ffn" -o -f "LAPACKE/utils/$ffn" ]; then |
317 | echo "%{_mandir}/man3/${bn}*" >> lapackemans.list | |
c7c26a27 JB |
318 | else |
319 | echo "Unknown manpage: $f (source file: $ffn)" | |
320 | exit 1 | |
321 | fi | |
322 | done | |
448f9206 | 323 | |
6ec8881e | 324 | %clean |
5f8b7996 | 325 | rm -rf $RPM_BUILD_ROOT |
6ec8881e | 326 | |
ed70c195 JB |
327 | %post -p /sbin/ldconfig |
328 | %postun -p /sbin/ldconfig | |
1d0d5108 | 329 | |
448f9206 | 330 | %post -n blas -p /sbin/ldconfig |
331 | %postun -n blas -p /sbin/ldconfig | |
3c513ef3 | 332 | |
c7c26a27 JB |
333 | %post -n lapacke -p /sbin/ldconfig |
334 | %postun -n lapacke -p /sbin/ldconfig | |
335 | ||
3c513ef3 | 336 | %files |
337 | %defattr(644,root,root,755) | |
840838df | 338 | %doc LICENSE README.md |
f1593bb3 | 339 | %attr(755,root,root) %{_libdir}/liblapack.so.*.*.* |
b3147294 | 340 | %attr(755,root,root) %ghost %{_libdir}/liblapack.so.3 |
f1593bb3 | 341 | |
1d0d5108 | 342 | %files devel -f mans.list |
f1593bb3 | 343 | %defattr(644,root,root,755) |
64123b99 | 344 | %attr(755,root,root) %{_libdir}/liblapack.so |
70328b5c | 345 | %{_pkgconfigdir}/lapack.pc |
840838df | 346 | %{_libdir}/cmake/lapack-%{version} |
f1593bb3 | 347 | |
348 | %files static | |
349 | %defattr(644,root,root,755) | |
350 | %{_libdir}/liblapack.a | |
3c513ef3 | 351 | |
ea4aa0a4 | 352 | %files -n blas |
3c513ef3 | 353 | %defattr(644,root,root,755) |
d51e15b2 | 354 | %attr(755,root,root) %{_libdir}/libblas.so.*.*.* |
b3147294 | 355 | %attr(755,root,root) %ghost %{_libdir}/libblas.so.3 |
f1593bb3 | 356 | |
1d0d5108 | 357 | %files -n blas-devel -f blasmans.list |
f1593bb3 | 358 | %defattr(644,root,root,755) |
64123b99 | 359 | %attr(755,root,root) %{_libdir}/libblas.so |
70328b5c | 360 | %{_pkgconfigdir}/blas.pc |
f1593bb3 | 361 | |
362 | %files -n blas-static | |
363 | %defattr(644,root,root,755) | |
364 | %{_libdir}/libblas.a | |
c7c26a27 | 365 | |
840838df JB |
366 | %files -n cblas |
367 | %defattr(644,root,root,755) | |
368 | %attr(755,root,root) %{_libdir}/libcblas.so.*.*.* | |
369 | %attr(755,root,root) %ghost %{_libdir}/libcblas.so.3 | |
370 | ||
371 | %files -n cblas-devel | |
372 | %defattr(644,root,root,755) | |
373 | %attr(755,root,root) %{_libdir}/libcblas.so | |
374 | %{_includedir}/cblas*.h | |
375 | %{_pkgconfigdir}/cblas.pc | |
376 | %{_libdir}/cmake/cblas-%{version} | |
377 | ||
378 | %files -n cblas-static | |
379 | %defattr(644,root,root,755) | |
380 | %{_libdir}/libcblas.a | |
381 | ||
b3147294 | 382 | %files -n lapacke -f lapackemans.list |
c7c26a27 | 383 | %defattr(644,root,root,755) |
b3147294 | 384 | %doc LAPACKE/{LICENSE,README} |
c7c26a27 | 385 | %attr(755,root,root) %{_libdir}/liblapacke.so.*.*.* |
b3147294 | 386 | %attr(755,root,root) %ghost %{_libdir}/liblapacke.so.3 |
840838df | 387 | %attr(755,root,root) %{_libdir}/libtmglib.so |
c7c26a27 JB |
388 | |
389 | %files -n lapacke-devel | |
390 | %defattr(644,root,root,755) | |
391 | %attr(755,root,root) %{_libdir}/liblapacke.so | |
c7c26a27 | 392 | %{_includedir}/lapacke*.h |
971ba2bf | 393 | %{_pkgconfigdir}/lapacke.pc |
840838df | 394 | %{_libdir}/cmake/lapacke-%{version} |
c7c26a27 JB |
395 | |
396 | %files -n lapacke-static | |
397 | %defattr(644,root,root,755) | |
398 | %{_libdir}/liblapacke.a | |
840838df | 399 | %{_libdir}/libtmglib.a |