]> git.pld-linux.org Git - packages/lapack.git/blob - lapack.spec
0dacbaf7d0a7387fb5dff087c4d0de5cca896fd1
[packages/lapack.git] / lapack.spec
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
7 Name:           lapack
8 Version:        3.7.0
9 %define man_ver 3.7.0
10 Release:        2
11 License:        BSD-like
12 Group:          Libraries
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)
26
27 # missing __stack_chk_fail symbol when only Fortran sources used
28 %undefine       _fortify_cflags
29 %undefine       _ssp_cflags
30
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
42 is coded in Fortran77.
43
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.
55
56 %package devel
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}
62 Obsoletes:      lapack-man
63
64 %description devel
65 LAPACK development files.
66
67 %description devel -l pl.UTF-8
68 Pliki programistyczne LAPACK.
69
70 %package static
71 Summary:        Static LAPACK libraries
72 Summary(pl.UTF-8):      Biblioteki statyczne LAPACK
73 Group:          Development/Libraries
74 Requires:       %{name}-devel = %{version}-%{release}
75
76 %description static
77 Static LAPACK libraries.
78
79 %description static -l pl.UTF-8
80 Biblioteki statyczne LAPACK.
81
82 %package -n blas
83 Summary:        The BLAS (Basic Linear Algebra Subprograms) library for Linux
84 Summary(pl.UTF-8):      Biblioteka BLAS (Basic Linear Algebra Subprograms) dla Linuksa
85 Group:          Libraries
86 Obsoletes:      lapack-blas
87
88 %description -n 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
92 77.
93
94 Warning: this is a reference implementation from Netlib. If possible,
95 use version optimized for your architecture instead.
96
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
101 w Fortranie 77.
102
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ę.
106
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}
112 Obsoletes:      blas-man
113
114 %description -n blas-devel
115 BLAS development files.
116
117 %description -n blas-devel -l pl.UTF-8
118 Pliki programistyczne BLAS.
119
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}
125
126 %description -n blas-static
127 Static BLAS library.
128
129 %description -n blas-static -l pl.UTF-8
130 Biblioteka statyczna BLAS.
131
132 %package -n lapacke
133 Summary:        LAPACKE - native C interface to LAPACK library routines
134 Summary(pl.UTF-8):      LAPACKE - natywny interfejs C do procedur biblioteki LAPACK
135 Group:          Libraries
136 Requires:       lapack = %{version}-%{release}
137
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).
142
143 This implementation provides a native C interface to LAPACK routines
144 to facilitate usage of LAPACK functionality for C programmers.
145
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.
150
151 Ta implementacja udostępnia natywny interfejs C do procedur biblioteki
152 LAPACK, ułatwiając jej użycie programistom C.
153
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}
160
161 %description -n lapacke-devel
162 Header files for LAPACKE - native C interface to LAPACK.
163
164 %description -n lapacke-devel -l pl.UTF-8
165 Pliki nagłówkowe biblioteki LAPACKE - natywnego interfejsu C do
166 biblioteki LAPACK.
167
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}
173
174 %description -n lapacke-static
175 Static LAPACKE library - native C interface to LAPACK.
176
177 %description -n lapacke-static -l pl.UTF-8
178 Statyczna biblioteka LAPACKE - natywny interfejs C do biblioteki
179 LAPACK.
180
181 %prep
182 %setup -q -a1
183 %patch0 -p1
184 %patch1 -p1
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
189
190 # bogus
191 %{__rm} man/man3/{_Users_julie_Downloads_lapack-*,groups-usr.dox}.3
192 # duplicated...
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
203
204 %build
205 %{__libtoolize}
206 %{__aclocal}
207 %{__autoheader}
208 %{__autoconf}
209 %{__automake}
210 %configure
211
212 %{__make}
213
214 %install
215 rm -rf $RPM_BUILD_ROOT
216
217 %{__make} install \
218         DESTDIR=$RPM_BUILD_ROOT
219
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
230         bn=$(basename $f)
231         if echo "$bn" | grep '\.[cfh]\.3$' ; then
232                 ffn="${bn%.3}"
233         elif echo "$bn" | grep -E "^($MANS_ADDITIONAL)\.3\$" ; then
234                 ffn="${bn%.3}"
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)
239         else
240                 echo "Unknown manpage: $f"
241                 exit 1
242         fi
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
249         else
250                 echo "Unknown manpage: $f (source file: $ffn)"
251                 exit 1
252         fi
253 done
254
255 %clean
256 rm -rf $RPM_BUILD_ROOT
257
258 %post   -p /sbin/ldconfig
259 %postun -p /sbin/ldconfig
260
261 %post   -n blas -p /sbin/ldconfig
262 %postun -n blas -p /sbin/ldconfig
263
264 %post   -n lapacke -p /sbin/ldconfig
265 %postun -n lapacke -p /sbin/ldconfig
266
267 %files
268 %defattr(644,root,root,755)
269 %doc LICENSE README
270 %attr(755,root,root) %{_libdir}/liblapack.so.*.*.*
271 %attr(755,root,root) %ghost %{_libdir}/liblapack.so.3
272
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
278
279 %files static
280 %defattr(644,root,root,755)
281 %{_libdir}/liblapack.a
282
283 %files -n blas
284 %defattr(644,root,root,755)
285 %attr(755,root,root) %{_libdir}/libblas.so.*.*.*
286 %attr(755,root,root) %ghost %{_libdir}/libblas.so.3
287
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
293
294 %files -n blas-static
295 %defattr(644,root,root,755)
296 %{_libdir}/libblas.a
297
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
303
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
310
311 %files -n lapacke-static
312 %defattr(644,root,root,755)
313 %{_libdir}/liblapacke.a
This page took 0.137644 seconds and 3 git commands to generate.