]> git.pld-linux.org Git - packages/lapack.git/blame_incremental - lapack.spec
- updated to 3.11.0
[packages/lapack.git] / lapack.spec
... / ...
CommitLineData
1#
2# Conditional build:
3%bcond_without static_libs # static libraries
4%bcond_without tests # unit tests
5%bcond_with xblas # use xblas
6
7Summary: The LAPACK libraries for numerical linear algebra
8Summary(pl.UTF-8): Biblioteki numeryczne LAPACK do algebry liniowej
9Name: lapack
10Version: 3.11.0
11Release: 1
12License: BSD-like
13Group: Libraries
14#Source0Download: https://github.com/Reference-LAPACK/lapack/releases
15Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{version}/%{name}-%{version}.tar.gz
16# Source0-md5: 595b064fd448b161cd711fe346f498a7
17Source1: https://netlib.org/lapack/manpages.tgz
18# Source1-md5: b13491eb1bcb381918a5b86437c4b029
19Patch0: blas-nan.patch
20URL: https://netlib.org/lapack/
21BuildRequires: cmake >= 3.2
22BuildRequires: gcc-fortran
23%{?with_xblas:BuildRequires: xblas-devel}
24Requires: blas = %{version}-%{release}
25BuildRoot: %{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
32LAPACK (Linear Algebra PACKage) is a standard library for numerical
33linear algebra. LAPACK provides routines for solving systems of
34simultaneous linear equations, least-squares solutions of linear
35systems of equations, eigenvalue problems, and singular value
36problems. Associated matrix factorizations (LU, Cholesky, QR, SVD,
37Schur, and generalized Schur) and related computations (i.e.,
38reordering of Schur factorizations and estimating condition numbers)
39are also included. LAPACK can handle dense and banded matrices, but
40not general sparse matrices. Similar functionality is provided for
41real and complex matrices in both single and double precision. LAPACK
42is coded in Fortran77.
43
44%description -l pl.UTF-8
45LAPACK (Linear Algebra PACKage) jest standardową biblioteką numeryczną
46do algebry liniowej. Dostarcza funkcje rozwiązywania: układów równań
47liniowych, układów równań metodą najmniejszych kwadratów, problemów
48własnych. Zawiera algorytmy faktoryzacji macierzy (LU, Cholesky'ego,
49QR, SVD, Schura, uogólnioną Schura) i związanych z tym obliczeń (np.
50przenumerowywanie w faktoryzacji Schura i estymację uwarunkowania).
51LAPACK może obsługiwać macierze blokowe i pasmowe, ale nie rzadkie w
52ogólnym przypadku. Zapewnia funkcjonalność dla macierzy rzeczywistych
53i zespolonych, dla liczb pojedynczej i podwójnej precyzji. LAPACK jest
54napisany w Fortranie 77.
55
56%package devel
57Summary: LAPACK development files
58Summary(pl.UTF-8): Pliki programistyczne LAPACK
59Group: Development/Libraries
60Requires: %{name} = %{version}-%{release}
61Requires: blas-devel = %{version}-%{release}
62Obsoletes: lapack-man < 3.0-3
63
64%description devel
65LAPACK development files.
66
67%description devel -l pl.UTF-8
68Pliki programistyczne LAPACK.
69
70%package static
71Summary: Static LAPACK libraries
72Summary(pl.UTF-8): Biblioteki statyczne LAPACK
73Group: Development/Libraries
74Requires: %{name}-devel = %{version}-%{release}
75
76%description static
77Static LAPACK libraries.
78
79%description static -l pl.UTF-8
80Biblioteki statyczne LAPACK.
81
82%package -n blas
83Summary: The BLAS (Basic Linear Algebra Subprograms) library for Linux
84Summary(pl.UTF-8): Biblioteka BLAS (Basic Linear Algebra Subprograms) dla Linuksa
85Group: Libraries
86URL: https://netlib.org/blas/
87Obsoletes: lapack-blas < 3.1
88
89%description -n blas
90BLAS (Basic Linear Algebra Subprograms) is a standard library for
91numerical algebra. BLAS provides a number of basic algorithms for
92linear algebra. BLAS is fast and well-tested, was written in FORTRAN
9377.
94
95Warning: this is a reference implementation from Netlib. If possible,
96use version optimized for your architecture instead.
97
98%description -n blas -l pl.UTF-8
99BLAS (Basic Linear Algebra Subprograms) jest standardową biblioteką
100numeryczną algebry. Dostarcza wiele podstawowych algorytmów dla
101algebry liniowej. Jest szybka i dobrze przetestowana, została napisana
102w Fortranie 77.
103
104Ostrzeżenie: to jest implementacja przykładowa z repozytorium Netlib.
105Jeżeli to możliwe, należy używać zamiast niej wersji zoptymalizowanej
106pod daną architekturę.
107
108%package -n blas-devel
109Summary: BLAS development files
110Summary(pl.UTF-8): Pliki programistyczne BLAS
111Group: Development/Libraries
112URL: http://www.netlib.org/blas/
113Requires: blas = %{version}-%{release}
114Obsoletes: blas-man < 3.0-3
115
116%description -n blas-devel
117BLAS development files.
118
119%description -n blas-devel -l pl.UTF-8
120Pliki programistyczne BLAS.
121
122%package -n blas-static
123Summary: Static BLAS library
124Summary(pl.UTF-8): Biblioteka statyczna BLAS
125Group: Development/Libraries
126URL: http://www.netlib.org/blas/
127Requires: blas-devel = %{version}-%{release}
128
129%description -n blas-static
130Static BLAS library.
131
132%description -n blas-static -l pl.UTF-8
133Biblioteka statyczna BLAS.
134
135%package -n cblas
136Summary: C Standard Interface to BLAS Basic Linear Algebra Subprograms
137Summary(pl.UTF-8): Interfejs C do procedur BLAS (Basic Linear Algebra Subprograms)
138Group: Libraries
139URL: http://www.netlib.org/blas/#_cblas
140Requires: blas = %{version}-%{release}
141
142%description -n cblas
143C Standard Interface to BLAS Basic Linear Algebra Subprograms.
144
145%description -n cblas -l pl.UTF-8
146Interfejs C do procedur BLAS (Basic Linear Algebra Subprograms -
147podstawowych procedur algebry liniowej).
148
149%package -n cblas-devel
150Summary: Header files of C Standard Interface to BLAS
151Summary(pl.UTF-8): Pliki nagłówkowe interfejsu C do BLAS
152Group: Libraries
153URL: http://www.netlib.org/blas/#_cblas
154Requires: blas-devel = %{version}-%{release}
155Requires: cblas = %{version}-%{release}
156
157%description -n cblas-devel
158Header files of C Standard Interface to BLAS.
159
160%description -n cblas-devel -l pl.UTF-8
161Pliki nagłówkowe interfejsu C do BLAS.
162
163%package -n cblas-static
164Summary: Static CBLAS library
165Summary(pl.UTF-8): Statyczna biblioteka CBLAS
166Group: Libraries
167URL: http://www.netlib.org/blas/#_cblas
168Requires: cblas-devel = %{version}-%{release}
169
170%description -n cblas-static
171Static CBLAS library.
172
173%description -n cblas-static -l pl.UTF-8
174Statyczna biblioteka CBLAS.
175
176%package -n lapacke
177Summary: LAPACKE - native C interface to LAPACK library routines
178Summary(pl.UTF-8): LAPACKE - natywny interfejs C do procedur biblioteki LAPACK
179Group: Libraries
180URL: http://www.netlib.org/lapack/lapacke.html
181Requires: lapack = %{version}-%{release}
182
183%description -n lapacke
184This library is a part of reference implementation for the C interface
185to LAPACK project according to the specifications described at the
186forum for the Intel(R) Math Kernel Library (Intel(R) MKL).
187
188This implementation provides a native C interface to LAPACK routines
189to facilitate usage of LAPACK functionality for C programmers.
190
191%description -n lapacke -l pl.UTF-8
192Ta bilioteka jest częścią implementacji referencyjnej interfejsu C do
193projektu LAPACK, zgodnej ze specyfikacją opisaną na forum biblioteki
194Intel(R) Math Kernel Library.
195
196Ta implementacja udostępnia natywny interfejs C do procedur biblioteki
197LAPACK, ułatwiając jej użycie programistom C.
198
199%package -n lapacke-devel
200Summary: Header files for LAPACKE - native C interface to LAPACK
201Summary(pl.UTF-8): Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do biblioteki LAPACK
202Group: Development/Libraries
203URL: http://www.netlib.org/lapack/lapacke.html
204Requires: lapack-devel = %{version}-%{release}
205Requires: lapacke = %{version}-%{release}
206
207%description -n lapacke-devel
208Header files for LAPACKE - native C interface to LAPACK.
209
210%description -n lapacke-devel -l pl.UTF-8
211Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do
212biblioteki LAPACK.
213
214%package -n lapacke-static
215Summary: Static LAPACKE library - native C interface to LAPACK
216Summary(pl.UTF-8): Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki LAPACK
217Group: Development/Libraries
218URL: http://www.netlib.org/lapack/lapacke.html
219Requires: lapacke-devel = %{version}-%{release}
220
221%description -n lapacke-static
222Static LAPACKE library - native C interface to LAPACK.
223
224%description -n lapacke-static -l pl.UTF-8
225Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki
226LAPACK.
227
228%prep
229%setup -q -a1
230%patch0 -p1
231# copy selected routines; use INT_ETIME versions of second
232# FIXME? CMakeLists doesn't handle second
233#cp -f INSTALLSRC/{second_INT_ETIME,dsecnd_INT_ETIME}.f SRC
234
235# bogus
236%{__rm} man/man3/_Users_julielangou_Documents_GitHub_lapack_*.3
237%{__rm} man/man3/groups-usr.dox.3
238# duplicated...
239%{__rm} man/man3/{SRC_xerbla,SRC_xerbla_array}.f.3
240# ...in BLAS and LAPACK sources; keep versions from BLAS
241%{__mv} man/man3/BLAS_SRC_xerbla.f.3 man/man3/xerbla.f.3
242%{__mv} man/man3/BLAS_SRC_xerbla_array.f.3 man/man3/xerbla_array.f.3
243%{__sed} -i -e 's/BLAS_SRC_//' man/man3/{xerbla,xerbla_array}.3
244# in base and variants; adjust .so links to use base
245%{__sed} -i -e 's/VARIANTS_qr_LL_//' man/man3/zgeqrf.3
246%{__sed} -i -e 's/VARIANTS_lu_CR_//' man/man3/zgetrf.3
247%{__sed} -i -e 's/VARIANTS_cholesky_RL_//' man/man3/zpotrf.3
248# not used variants of some procedures
249%{__rm} man/man3/{VARIANTS_*,sceil,sceil.f}.3
250# documentation for examples
251%{__rm} man/man3/{LDA,LDB,N,NRHS,example_*,lapacke_example_aux.*,main,print_*}.3
252# too common names
253%{__mv} man/man3/{testing,lapacktesting}.3
254%{__mv} man/man3/{level1,blaslevel1}.3
255%{__mv} man/man3/{level2,blaslevel2}.3
256%{__mv} man/man3/{level3,blaslevel3}.3
257
258%build
259%if %{with static_libs}
260install -d build-static
261cd build-static
262%cmake .. \
263 -DBUILD_DEPRECATED=ON \
264 -DBUILD_SHARED_LIBS=OFF \
265 -DCBLAS=ON \
266 -DLAPACKE_WITH_TMG=ON \
267 %{?with_xblas:-DUSE_XBLAS=ON}
268%{__make}
269cd ..
270%endif
271
272install -d build
273cd build
274%cmake .. \
275 -DBUILD_DEPRECATED=ON \
276 %{?with_tests:-DBUILD_TESTING=ON} \
277 -DCBLAS=ON \
278 -DLAPACKE_WITH_TMG=ON \
279 %{?with_xblas:-DUSE_XBLAS=ON}
280%{__make}
281
282%{?with_tests:ctest}
283
284%install
285rm -rf $RPM_BUILD_ROOT
286
287%if %{with static_libs}
288%{__make} -C build-static install \
289 DESTDIR=$RPM_BUILD_ROOT
290%endif
291
292%{__make} -C build install \
293 DESTDIR=$RPM_BUILD_ROOT
294
295# install man pages, distributing them among blas-devel and lapack-devel
296install -d $RPM_BUILD_ROOT%{_mandir}/man3
297echo "%defattr(644,root,root,755)" > blasmans.list
298echo "%defattr(644,root,root,755)" > mans.list
299echo "%defattr(644,root,root,755)" > lapackemans.list
300BLAS_ADDITIONAL='blas|blaslevel[123]|blastesting|aux_blas|(complex|complex16|double|single)_blas_(level[123]|testing)'
301LAPACK_ADDITIONAL='lapack|lapacktesting|OTHERauxiliary|(aux|auxiliary|complex|complex16|computational|double|eigen|real|sing|solve|variants)?(GB|GE|GT|HE|OTHER|PO|PT|SY)(auxiliary|computational|eigen|sing|solve)?|((aux|complex|complex16|double|real|single)_)?(eig|lin|matgen)|variants(GE|OTHER|PO)computational'
302MANS_ADDITIONAL="$BLAS_ADDITIONAL|$LAPACK_ADDITIONAL"
303for f in man/man3/*.3 ; do
304 cp -p "$f" $RPM_BUILD_ROOT%{_mandir}/man3
305 bn=$(basename $f)
306 if echo "$bn" | grep '\.[Fcfh]\.3$' ; then
307 ffn="${bn%.3}"
308 elif echo "$bn" | grep -E "^($MANS_ADDITIONAL)\.3\$" ; then
309 ffn="${bn%.3}"
310 elif grep '^\.so man3/.*\.[Fcfh]\.3$' "$f" ; then
311 ffn=$(sed -e '1s,^\.so man3/\(.*\.[Fcfh]\)\.3,\1,' $f)
312 elif grep -E "^\.so man3/($MANS_ADDITIONAL)\.3" "$f"; then
313 ffn=$(sed -e '1s,^\.so man3/\([^.]*\)\.3,\1,' $f)
314 else
315 echo "Unknown manpage: $f"
316 exit 1
317 fi
318 if [ -f "BLAS/SRC/$ffn" ] || echo "$ffn" | grep -E "^($BLAS_ADDITIONAL)\$" ; then
319 echo "%{_mandir}/man3/${bn}*" >> blasmans.list
320 elif [ -f "SRC/$ffn" -o -f "INSTALLSRC/$ffn" ] || echo "$ffn" | grep -E "^($LAPACK_ADDITIONAL)\$"; then
321 echo "%{_mandir}/man3/${bn}*" >> mans.list
322 elif [ -f "LAPACKE/include/$ffn" -o -f "LAPACKE/src/$ffn" -o -f "LAPACKE/utils/$ffn" ]; then
323 echo "%{_mandir}/man3/${bn}*" >> lapackemans.list
324 else
325 echo "Unknown manpage: $f (source file: $ffn)"
326 exit 1
327 fi
328done
329
330%clean
331rm -rf $RPM_BUILD_ROOT
332
333%post -p /sbin/ldconfig
334%postun -p /sbin/ldconfig
335
336%post -n blas -p /sbin/ldconfig
337%postun -n blas -p /sbin/ldconfig
338
339%post -n cblas -p /sbin/ldconfig
340%postun -n cblas -p /sbin/ldconfig
341
342%post -n lapacke -p /sbin/ldconfig
343%postun -n lapacke -p /sbin/ldconfig
344
345%files
346%defattr(644,root,root,755)
347%doc LICENSE README.md
348%attr(755,root,root) %{_libdir}/liblapack.so.*.*.*
349%attr(755,root,root) %ghost %{_libdir}/liblapack.so.3
350
351%files devel -f mans.list
352%defattr(644,root,root,755)
353%attr(755,root,root) %{_libdir}/liblapack.so
354%{_includedir}/lapack.h
355%{_pkgconfigdir}/lapack.pc
356%{_libdir}/cmake/lapack-%{version}
357
358%if %{with static_libs}
359%files static
360%defattr(644,root,root,755)
361%{_libdir}/liblapack.a
362%endif
363
364%files -n blas
365%defattr(644,root,root,755)
366%attr(755,root,root) %{_libdir}/libblas.so.*.*.*
367%attr(755,root,root) %ghost %{_libdir}/libblas.so.3
368
369%files -n blas-devel -f blasmans.list
370%defattr(644,root,root,755)
371%attr(755,root,root) %{_libdir}/libblas.so
372%{_pkgconfigdir}/blas.pc
373
374%if %{with static_libs}
375%files -n blas-static
376%defattr(644,root,root,755)
377%{_libdir}/libblas.a
378%endif
379
380%files -n cblas
381%defattr(644,root,root,755)
382%attr(755,root,root) %{_libdir}/libcblas.so.*.*.*
383%attr(755,root,root) %ghost %{_libdir}/libcblas.so.3
384
385%files -n cblas-devel
386%defattr(644,root,root,755)
387%attr(755,root,root) %{_libdir}/libcblas.so
388%{_includedir}/cblas*.h
389%{_pkgconfigdir}/cblas.pc
390%{_libdir}/cmake/cblas-%{version}
391
392%if %{with static_libs}
393%files -n cblas-static
394%defattr(644,root,root,755)
395%{_libdir}/libcblas.a
396%endif
397
398%files -n lapacke -f lapackemans.list
399%defattr(644,root,root,755)
400%doc LAPACKE/{LICENSE,README}
401%attr(755,root,root) %{_libdir}/liblapacke.so.*.*.*
402%attr(755,root,root) %ghost %{_libdir}/liblapacke.so.3
403%attr(755,root,root) %{_libdir}/libtmglib.so.*.*.*
404%attr(755,root,root) %ghost %{_libdir}/libtmglib.so.3
405
406%files -n lapacke-devel
407%defattr(644,root,root,755)
408%attr(755,root,root) %{_libdir}/liblapacke.so
409%attr(755,root,root) %{_libdir}/libtmglib.so
410%{_includedir}/lapacke*.h
411%{_pkgconfigdir}/lapacke.pc
412%{_libdir}/cmake/lapacke-%{version}
413
414%if %{with static_libs}
415%files -n lapacke-static
416%defattr(644,root,root,755)
417%{_libdir}/liblapacke.a
418%{_libdir}/libtmglib.a
419%endif
This page took 0.04017 seconds and 4 git commands to generate.