]> git.pld-linux.org Git - packages/lapack.git/blame - lapack.spec
- updated to 3.11.0
[packages/lapack.git] / lapack.spec
CommitLineData
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 7Summary: The LAPACK libraries for numerical linear algebra
084ff819 8Summary(pl.UTF-8): Biblioteki numeryczne LAPACK do algebry liniowej
3c513ef3 9Name: lapack
8896f6e6 10Version: 3.11.0
f998fa12 11Release: 1
b3147294 12License: BSD-like
4d771884 13Group: Libraries
f998fa12
JB
14#Source0Download: https://github.com/Reference-LAPACK/lapack/releases
15Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{version}/%{name}-%{version}.tar.gz
8896f6e6 16# Source0-md5: 595b064fd448b161cd711fe346f498a7
c61ebd8f 17Source1: https://netlib.org/lapack/manpages.tgz
8896f6e6 18# Source1-md5: b13491eb1bcb381918a5b86437c4b029
840838df 19Patch0: blas-nan.patch
c61ebd8f 20URL: https://netlib.org/lapack/
8896f6e6 21BuildRequires: cmake >= 3.2
a1923521 22BuildRequires: gcc-fortran
840838df 23%{?with_xblas:BuildRequires: xblas-devel}
584ffaf6 24Requires: blas = %{version}-%{release}
64123b99 25BuildRoot: %{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
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
6ec8881e
JB
42is coded in Fortran77.
43
eb8f2cff
JR
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
6ec8881e 54napisany w Fortranie 77.
3c513ef3 55
f1593bb3 56%package devel
e956dfe5
JB
57Summary: LAPACK development files
58Summary(pl.UTF-8): Pliki programistyczne LAPACK
f1593bb3 59Group: Development/Libraries
584ffaf6
JB
60Requires: %{name} = %{version}-%{release}
61Requires: blas-devel = %{version}-%{release}
c61ebd8f 62Obsoletes: lapack-man < 3.0-3
f1593bb3 63
64%description devel
e956dfe5 65LAPACK development files.
f1593bb3 66
eb8f2cff 67%description devel -l pl.UTF-8
e956dfe5 68Pliki programistyczne LAPACK.
f1593bb3 69
70%package static
6ec8881e 71Summary: Static LAPACK libraries
084ff819 72Summary(pl.UTF-8): Biblioteki statyczne LAPACK
f1593bb3 73Group: Development/Libraries
584ffaf6 74Requires: %{name}-devel = %{version}-%{release}
f1593bb3 75
76%description static
6ec8881e 77Static LAPACK libraries.
f1593bb3 78
eb8f2cff 79%description static -l pl.UTF-8
6ec8881e 80Biblioteki statyczne LAPACK.
f1593bb3 81
3c513ef3 82%package -n blas
6ec8881e 83Summary: The BLAS (Basic Linear Algebra Subprograms) library for Linux
084ff819 84Summary(pl.UTF-8): Biblioteka BLAS (Basic Linear Algebra Subprograms) dla Linuksa
4d771884 85Group: Libraries
c61ebd8f
JB
86URL: https://netlib.org/blas/
87Obsoletes: lapack-blas < 3.1
3c513ef3 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
6ec8881e
JB
9377.
94
1599bb15
RW
95Warning: this is a reference implementation from Netlib. If possible,
96use version optimized for your architecture instead.
97
eb8f2cff
JR
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
6ec8881e 102w Fortranie 77.
3c513ef3 103
eb8f2cff
JR
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ę.
1599bb15 107
f1593bb3 108%package -n blas-devel
e956dfe5
JB
109Summary: BLAS development files
110Summary(pl.UTF-8): Pliki programistyczne BLAS
f1593bb3 111Group: Development/Libraries
840838df 112URL: http://www.netlib.org/blas/
584ffaf6 113Requires: blas = %{version}-%{release}
c61ebd8f 114Obsoletes: blas-man < 3.0-3
f1593bb3 115
116%description -n blas-devel
e956dfe5 117BLAS development files.
f1593bb3 118
eb8f2cff 119%description -n blas-devel -l pl.UTF-8
e956dfe5 120Pliki programistyczne BLAS.
f1593bb3 121
122%package -n blas-static
c7c26a27
JB
123Summary: Static BLAS library
124Summary(pl.UTF-8): Biblioteka statyczna BLAS
f1593bb3 125Group: Development/Libraries
840838df 126URL: http://www.netlib.org/blas/
584ffaf6 127Requires: blas-devel = %{version}-%{release}
f1593bb3 128
129%description -n blas-static
c7c26a27 130Static BLAS library.
f1593bb3 131
eb8f2cff 132%description -n blas-static -l pl.UTF-8
c7c26a27
JB
133Biblioteka statyczna BLAS.
134
840838df
JB
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
c7c26a27
JB
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
840838df 180URL: http://www.netlib.org/lapack/lapacke.html
c7c26a27
JB
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
840838df 203URL: http://www.netlib.org/lapack/lapacke.html
c7c26a27
JB
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
840838df 218URL: http://www.netlib.org/lapack/lapacke.html
c7c26a27
JB
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.
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
f998fa12
JB
236%{__rm} man/man3/_Users_julielangou_Documents_GitHub_lapack_*.3
237%{__rm} man/man3/groups-usr.dox.3
c7c26a27 238# duplicated...
b3147294 239%{__rm} man/man3/{SRC_xerbla,SRC_xerbla_array}.f.3
c7c26a27 240# ...in BLAS and LAPACK sources; keep versions from BLAS
b3147294
JB
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
840838df
JB
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
b3147294 248# not used variants of some procedures
840838df 249%{__rm} man/man3/{VARIANTS_*,sceil,sceil.f}.3
b3147294
JB
250# documentation for examples
251%{__rm} man/man3/{LDA,LDB,N,NRHS,example_*,lapacke_example_aux.*,main,print_*}.3
f998fa12
JB
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
c7c26a27 257
3c513ef3 258%build
840838df
JB
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}
c42e604c 280%{__make}
3c513ef3 281
840838df
JB
282%{?with_tests:ctest}
283
3c513ef3 284%install
285rm -rf $RPM_BUILD_ROOT
64123b99 286
840838df
JB
287%if %{with static_libs}
288%{__make} -C build-static install \
289 DESTDIR=$RPM_BUILD_ROOT
290%endif
291
292%{__make} -C build install \
584ffaf6 293 DESTDIR=$RPM_BUILD_ROOT
448f9206 294
c7c26a27 295# install man pages, distributing them among blas-devel and lapack-devel
3d16712d 296install -d $RPM_BUILD_ROOT%{_mandir}/man3
e956dfe5 297echo "%defattr(644,root,root,755)" > blasmans.list
e956dfe5 298echo "%defattr(644,root,root,755)" > mans.list
b3147294 299echo "%defattr(644,root,root,755)" > lapackemans.list
f998fa12
JB
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'
b3147294 302MANS_ADDITIONAL="$BLAS_ADDITIONAL|$LAPACK_ADDITIONAL"
c7c26a27
JB
303for f in man/man3/*.3 ; do
304 cp -p "$f" $RPM_BUILD_ROOT%{_mandir}/man3
305 bn=$(basename $f)
f998fa12 306 if echo "$bn" | grep '\.[Fcfh]\.3$' ; then
c7c26a27 307 ffn="${bn%.3}"
b3147294
JB
308 elif echo "$bn" | grep -E "^($MANS_ADDITIONAL)\.3\$" ; then
309 ffn="${bn%.3}"
f998fa12
JB
310 elif grep '^\.so man3/.*\.[Fcfh]\.3$' "$f" ; then
311 ffn=$(sed -e '1s,^\.so man3/\(.*\.[Fcfh]\)\.3,\1,' $f)
b3147294
JB
312 elif grep -E "^\.so man3/($MANS_ADDITIONAL)\.3" "$f"; then
313 ffn=$(sed -e '1s,^\.so man3/\([^.]*\)\.3,\1,' $f)
c7c26a27
JB
314 else
315 echo "Unknown manpage: $f"
316 exit 1
317 fi
b3147294 318 if [ -f "BLAS/SRC/$ffn" ] || echo "$ffn" | grep -E "^($BLAS_ADDITIONAL)\$" ; then
c7c26a27 319 echo "%{_mandir}/man3/${bn}*" >> blasmans.list
b3147294 320 elif [ -f "SRC/$ffn" -o -f "INSTALLSRC/$ffn" ] || echo "$ffn" | grep -E "^($LAPACK_ADDITIONAL)\$"; then
c7c26a27 321 echo "%{_mandir}/man3/${bn}*" >> mans.list
b3147294
JB
322 elif [ -f "LAPACKE/include/$ffn" -o -f "LAPACKE/src/$ffn" -o -f "LAPACKE/utils/$ffn" ]; then
323 echo "%{_mandir}/man3/${bn}*" >> lapackemans.list
c7c26a27
JB
324 else
325 echo "Unknown manpage: $f (source file: $ffn)"
326 exit 1
327 fi
328done
448f9206 329
6ec8881e 330%clean
5f8b7996 331rm -rf $RPM_BUILD_ROOT
6ec8881e 332
ed70c195
JB
333%post -p /sbin/ldconfig
334%postun -p /sbin/ldconfig
1d0d5108 335
448f9206 336%post -n blas -p /sbin/ldconfig
337%postun -n blas -p /sbin/ldconfig
3c513ef3 338
78b3783e
JB
339%post -n cblas -p /sbin/ldconfig
340%postun -n cblas -p /sbin/ldconfig
341
c7c26a27
JB
342%post -n lapacke -p /sbin/ldconfig
343%postun -n lapacke -p /sbin/ldconfig
344
3c513ef3 345%files
346%defattr(644,root,root,755)
840838df 347%doc LICENSE README.md
f1593bb3 348%attr(755,root,root) %{_libdir}/liblapack.so.*.*.*
b3147294 349%attr(755,root,root) %ghost %{_libdir}/liblapack.so.3
f1593bb3 350
1d0d5108 351%files devel -f mans.list
f1593bb3 352%defattr(644,root,root,755)
64123b99 353%attr(755,root,root) %{_libdir}/liblapack.so
f5975a02 354%{_includedir}/lapack.h
70328b5c 355%{_pkgconfigdir}/lapack.pc
840838df 356%{_libdir}/cmake/lapack-%{version}
f1593bb3 357
a495190c 358%if %{with static_libs}
f1593bb3 359%files static
360%defattr(644,root,root,755)
361%{_libdir}/liblapack.a
208f9952 362%endif
3c513ef3 363
ea4aa0a4 364%files -n blas
3c513ef3 365%defattr(644,root,root,755)
d51e15b2 366%attr(755,root,root) %{_libdir}/libblas.so.*.*.*
b3147294 367%attr(755,root,root) %ghost %{_libdir}/libblas.so.3
f1593bb3 368
1d0d5108 369%files -n blas-devel -f blasmans.list
f1593bb3 370%defattr(644,root,root,755)
64123b99 371%attr(755,root,root) %{_libdir}/libblas.so
70328b5c 372%{_pkgconfigdir}/blas.pc
f1593bb3 373
a495190c 374%if %{with static_libs}
f1593bb3 375%files -n blas-static
376%defattr(644,root,root,755)
377%{_libdir}/libblas.a
208f9952 378%endif
c7c26a27 379
840838df
JB
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
a495190c 392%if %{with static_libs}
840838df
JB
393%files -n cblas-static
394%defattr(644,root,root,755)
395%{_libdir}/libcblas.a
208f9952 396%endif
840838df 397
b3147294 398%files -n lapacke -f lapackemans.list
c7c26a27 399%defattr(644,root,root,755)
b3147294 400%doc LAPACKE/{LICENSE,README}
c7c26a27 401%attr(755,root,root) %{_libdir}/liblapacke.so.*.*.*
b3147294 402%attr(755,root,root) %ghost %{_libdir}/liblapacke.so.3
f998fa12
JB
403%attr(755,root,root) %{_libdir}/libtmglib.so.*.*.*
404%attr(755,root,root) %ghost %{_libdir}/libtmglib.so.3
c7c26a27
JB
405
406%files -n lapacke-devel
407%defattr(644,root,root,755)
408%attr(755,root,root) %{_libdir}/liblapacke.so
f998fa12 409%attr(755,root,root) %{_libdir}/libtmglib.so
c7c26a27 410%{_includedir}/lapacke*.h
971ba2bf 411%{_pkgconfigdir}/lapacke.pc
840838df 412%{_libdir}/cmake/lapacke-%{version}
c7c26a27 413
a495190c 414%if %{with static_libs}
c7c26a27
JB
415%files -n lapacke-static
416%defattr(644,root,root,755)
417%{_libdir}/liblapacke.a
840838df 418%{_libdir}/libtmglib.a
208f9952 419%endif
This page took 0.165955 seconds and 4 git commands to generate.