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
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)
27 # missing __stack_chk_fail symbol when only Fortran sources used
28 %undefine _fortify_cflags
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.
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.
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}
65 LAPACK development files.
67 %description devel -l pl.UTF-8
68 Pliki programistyczne LAPACK.
71 Summary: Static LAPACK libraries
72 Summary(pl.UTF-8): Biblioteki statyczne LAPACK
73 Group: Development/Libraries
74 Requires: %{name}-devel = %{version}-%{release}
77 Static LAPACK libraries.
79 %description static -l pl.UTF-8
80 Biblioteki statyczne LAPACK.
83 Summary: The BLAS (Basic Linear Algebra Subprograms) library for Linux
84 Summary(pl.UTF-8): Biblioteka BLAS (Basic Linear Algebra Subprograms) dla Linuksa
86 Obsoletes: lapack-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
94 Warning: this is a reference implementation from Netlib. If possible,
95 use version optimized for your architecture instead.
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
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ę.
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}
114 %description -n blas-devel
115 BLAS development files.
117 %description -n blas-devel -l pl.UTF-8
118 Pliki programistyczne BLAS.
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}
126 %description -n blas-static
129 %description -n blas-static -l pl.UTF-8
130 Biblioteka statyczna BLAS.
133 Summary: LAPACKE - native C interface to LAPACK library routines
134 Summary(pl.UTF-8): LAPACKE - natywny interfejs C do procedur biblioteki LAPACK
136 Requires: lapack = %{version}-%{release}
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).
143 This implementation provides a native C interface to LAPACK routines
144 to facilitate usage of LAPACK functionality for C programmers.
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.
151 Ta implementacja udostępnia natywny interfejs C do procedur biblioteki
152 LAPACK, ułatwiając jej użycie programistom C.
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}
161 %description -n lapacke-devel
162 Header files for LAPACKE - native C interface to LAPACK.
164 %description -n lapacke-devel -l pl.UTF-8
165 Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do
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}
174 %description -n lapacke-static
175 Static LAPACKE library - native C interface to LAPACK.
177 %description -n lapacke-static -l pl.UTF-8
178 Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki
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
191 %{__rm} man/man3/{_Users_julie_Downloads_lapack-*,groups-usr.dox}.3
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
215 rm -rf $RPM_BUILD_ROOT
218 DESTDIR=$RPM_BUILD_ROOT
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
231 if echo "$bn" | grep '\.[cfh]\.3$' ; then
233 elif echo "$bn" | grep -E "^($MANS_ADDITIONAL)\.3\$" ; then
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)
240 echo "Unknown manpage: $f"
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
250 echo "Unknown manpage: $f (source file: $ffn)"
256 rm -rf $RPM_BUILD_ROOT
258 %post -p /sbin/ldconfig
259 %postun -p /sbin/ldconfig
261 %post -n blas -p /sbin/ldconfig
262 %postun -n blas -p /sbin/ldconfig
264 %post -n lapacke -p /sbin/ldconfig
265 %postun -n lapacke -p /sbin/ldconfig
268 %defattr(644,root,root,755)
270 %attr(755,root,root) %{_libdir}/liblapack.so.*.*.*
271 %attr(755,root,root) %ghost %{_libdir}/liblapack.so.3
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
280 %defattr(644,root,root,755)
281 %{_libdir}/liblapack.a
284 %defattr(644,root,root,755)
285 %attr(755,root,root) %{_libdir}/libblas.so.*.*.*
286 %attr(755,root,root) %ghost %{_libdir}/libblas.so.3
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
294 %files -n blas-static
295 %defattr(644,root,root,755)
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
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
311 %files -n lapacke-static
312 %defattr(644,root,root,755)
313 %{_libdir}/liblapacke.a