]> git.pld-linux.org Git - packages/lapack.git/blame - lapack.spec
- release 2 (by relup.sh)
[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
840838df
JB
10Version: 3.8.0
11%define man_ver 3.8.0
a06982c2 12Release: 2
b3147294 13License: BSD-like
4d771884 14Group: Libraries
840838df
JB
15Source0: http://www.netlib.org/lapack/%{name}-%{version}.tar.gz
16# Source0-md5: 96591affdbf58c450d45c1daa540dbd2
c42e604c 17Source1: http://www.netlib.org/lapack/manpages-%{man_ver}.tgz
840838df
JB
18# Source1-md5: bbf94b49b43e2195de42c1d76b620de1
19Patch0: blas-nan.patch
3c513ef3 20URL: http://www.netlib.org/lapack/
840838df 21BuildRequires: cmake >= 2.8.12
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}
1d0d5108 62Obsoletes: lapack-man
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
840838df 86URL: http://www.netlib.org/blas/
3c513ef3 87Obsoletes: lapack-blas
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}
1d0d5108 114Obsoletes: blas-man
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
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}
254install -d build-static
255cd 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}
263cd ..
264%endif
265
266install -d build
267cd 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
279rm -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 290install -d $RPM_BUILD_ROOT%{_mandir}/man3
e956dfe5 291echo "%defattr(644,root,root,755)" > blasmans.list
e956dfe5 292echo "%defattr(644,root,root,755)" > mans.list
b3147294
JB
293echo "%defattr(644,root,root,755)" > lapackemans.list
294BLAS_ADDITIONAL='aux_blas|(complex|complex16|double|single)_blas_level[123]'
295LAPACK_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'
296MANS_ADDITIONAL="$BLAS_ADDITIONAL|$LAPACK_ADDITIONAL"
c7c26a27
JB
297for 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
322done
448f9206 323
6ec8881e 324%clean
5f8b7996 325rm -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
This page took 0.102979 seconds and 4 git commands to generate.