]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # Conditional build: | |
3 | %bcond_without fftwl # don't build "long" subpackages | |
4 | # | |
5 | Summary: Fast Fourier Transform library | |
6 | Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera | |
7 | Summary(pt_BR.UTF-8): biblioteca fast fourier transform | |
8 | Name: fftw3 | |
9 | Version: 3.2 | |
10 | Release: 1 | |
11 | License: GPL v2+ | |
12 | Group: Libraries | |
13 | Source0: ftp://ftp.fftw.org/pub/fftw/fftw-%{version}.tar.gz | |
14 | # Source0-md5: 280960ddbad368ebb96c073a2b642f5d | |
15 | Patch0: %{name}-info.patch | |
16 | Patch1: %{name}-link.patch | |
17 | Patch2: %{name}-ac_simd.patch | |
18 | URL: http://www.fftw.org/ | |
19 | BuildRequires: autoconf | |
20 | BuildRequires: automake | |
21 | %ifarch alpha ppc s390 s390x sparc sparcv9 | |
22 | %if %{with fftwl} | |
23 | # for 128-bit long double support | |
24 | BuildRequires: gcc-fortran >= 5:4.1.0-1 | |
25 | BuildRequires: glibc >= 6:2.4-1 | |
26 | %endif | |
27 | %endif | |
28 | BuildRequires: libtool | |
29 | BuildRequires: texinfo | |
30 | Requires: %{name}-common = %{version}-%{release} | |
31 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
32 | ||
33 | %description | |
34 | FFTW is a collection of fast C routines for computing the Discrete | |
35 | Fourier Transform in one or more dimensions. It includes complex, | |
36 | real, and parallel transforms, and can handle arbitrary array sizes | |
37 | efficiently. This RPM package includes the double precision FFTW | |
38 | uniprocessor and threads libraries. | |
39 | ||
40 | %description -l pl.UTF-8 | |
41 | FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych | |
42 | transformat Fouriera w jednym lub więcej wymiarach. Zawiera również | |
43 | zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie | |
44 | radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM | |
45 | zawiera wersje FFTW o podwójnej precyzji dla architektur | |
46 | jednoprocesorowych oraz z obsługą wątków. | |
47 | ||
48 | %description -l pt_BR.UTF-8 | |
49 | FFTW é uma coleção de rotinas rápidas em C para computar a Discrete | |
50 | Fourier Transform em uma ou mais dimensões. Incluindo transformações | |
51 | complexas, reais e paralelas, também pode manipular vetores de tamanho | |
52 | arbitrário eficientemente. Esse pacote RPM inclui bibliotecas FFTW com | |
53 | suporte a threads, normal e dupla precisão (Os arquivos de precisão | |
54 | normal tem um prefixo "s"). | |
55 | ||
56 | %package devel | |
57 | Summary: Development files for fftw | |
58 | Summary(pl.UTF-8): Pliki programistyczne do fftw | |
59 | Summary(pt_BR.UTF-8): Headers e documentação do pacote FFTW | |
60 | Group: Development/Libraries | |
61 | Requires: %{name} = %{version}-%{release} | |
62 | Requires: %{name}-common-devel = %{version}-%{release} | |
63 | ||
64 | %description devel | |
65 | This package contains the files you need to develop programs using the | |
66 | FFTW (fast fourier transform library). | |
67 | ||
68 | %description devel -l pl.UTF-8 | |
69 | Ten pakiet zawiera pliki potrzebne do tworzenia programów używających | |
70 | biblioteki FFTW (wykonującej szybką transformatę Fouriera). | |
71 | ||
72 | %description devel -l pt_BR.UTF-8 | |
73 | Este pacote contém documentação e headers adicionais para desenvolver | |
74 | programas usando a FFTW. | |
75 | ||
76 | %package static | |
77 | Summary: Static fftw libraries | |
78 | Summary(pl.UTF-8): Statyczne biblioteki fftw | |
79 | Summary(pt_BR.UTF-8): Bibliotecas estáticas do pacote FFTW | |
80 | Group: Development/Libraries | |
81 | Requires: %{name}-devel = %{version}-%{release} | |
82 | ||
83 | %description static | |
84 | Static fftw libraries. | |
85 | ||
86 | %description static -l pl.UTF-8 | |
87 | Statyczne biblioteki fftw. | |
88 | ||
89 | %description static -l pt_BR.UTF-8 | |
90 | Este pacote contém as bibliotecas estáticas do pacote FFTW. | |
91 | ||
92 | %package single | |
93 | Summary: Fast Fourier Transform library - single precision | |
94 | Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - pojedynczej precyzji | |
95 | Group: Libraries | |
96 | Requires: %{name}-common = %{version}-%{release} | |
97 | ||
98 | %description single | |
99 | FFTW is a collection of fast C routines for computing the Discrete | |
100 | Fourier Transform in one or more dimensions. It includes complex, | |
101 | real, and parallel transforms, and can handle arbitrary array sizes | |
102 | efficiently. This RPM package includes the single precision FFTW | |
103 | uniprocessor and threads libraries. | |
104 | ||
105 | %description single -l pl.UTF-8 | |
106 | FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych | |
107 | transformat Fouriera w jednym lub więcej wymiarach. Zawiera również | |
108 | zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie | |
109 | radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM | |
110 | zawiera wersje FFTW o pojedynczej precyzji dla architektur | |
111 | jednoprocesorowych oraz z obsługą wątków. | |
112 | ||
113 | %package single-devel | |
114 | Summary: Development files for single precision fftw | |
115 | Summary(pl.UTF-8): Pliki programistyczne do fftw pojedynczej precyzji | |
116 | Group: Development/Libraries | |
117 | Requires: %{name}-common-devel = %{version}-%{release} | |
118 | Requires: %{name}-single = %{version}-%{release} | |
119 | ||
120 | %description single-devel | |
121 | This package contains the files you need to develop programs using the | |
122 | single precision FFTW (fast fourier transform library). | |
123 | ||
124 | %description single-devel -l pl.UTF-8 | |
125 | Ten pakiet zawiera pliki potrzebne do tworzenia programów używających | |
126 | biblioteki FFTW pojedynczej precyzji (wykonującej szybką transformatę | |
127 | Fouriera). | |
128 | ||
129 | %package single-static | |
130 | Summary: Static fftw single precision libraries | |
131 | Summary(pl.UTF-8): Statyczne biblioteki fftw pojedynczej precyzji | |
132 | Group: Development/Libraries | |
133 | Requires: %{name}-single-devel = %{version}-%{release} | |
134 | ||
135 | %description single-static | |
136 | Static fftw single precision libraries. | |
137 | ||
138 | %description single-static -l pl.UTF-8 | |
139 | Statyczne biblioteki fftw pojedynczej precyzji. | |
140 | ||
141 | %package long | |
142 | Summary: Fast Fourier Transform library - long double precision | |
143 | Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - rozszerzonej precyzji | |
144 | Group: Libraries | |
145 | Requires: %{name}-common = %{version}-%{release} | |
146 | ||
147 | %description long | |
148 | FFTW is a collection of fast C routines for computing the Discrete | |
149 | Fourier Transform in one or more dimensions. It includes complex, | |
150 | real, and parallel transforms, and can handle arbitrary array sizes | |
151 | efficiently. This RPM package includes the long double precision FFTW | |
152 | uniprocessor and threads libraries. | |
153 | ||
154 | %description long -l pl.UTF-8 | |
155 | FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych | |
156 | transformat Fouriera w jednym lub więcej wymiarach. Zawiera również | |
157 | zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie | |
158 | radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM | |
159 | zawiera wersje FFTW o rozszerzonej precyzji dla architektur | |
160 | jednoprocesorowych oraz z obsługą wątków. | |
161 | ||
162 | %package long-devel | |
163 | Summary: Development files for long double precision fftw | |
164 | Summary(pl.UTF-8): Pliki programistyczne do fftw rozszerzonej precyzji | |
165 | Group: Development/Libraries | |
166 | Requires: %{name}-common-devel = %{version}-%{release} | |
167 | Requires: %{name}-long = %{version}-%{release} | |
168 | ||
169 | %description long-devel | |
170 | This package contains the files you need to develop programs using the | |
171 | long double precision FFTW (fast fourier transform library). | |
172 | ||
173 | %description long-devel -l pl.UTF-8 | |
174 | Ten pakiet zawiera pliki potrzebne do tworzenia programów używających | |
175 | biblioteki FFTW rozszerzonej precyzji (wykonującej szybką transformatę | |
176 | Fouriera). | |
177 | ||
178 | %package long-static | |
179 | Summary: Static fftw long double precision libraries | |
180 | Summary(pl.UTF-8): Statyczne biblioteki fftw rozszerzonej precyzji | |
181 | Group: Development/Libraries | |
182 | Requires: %{name}-long-devel = %{version}-%{release} | |
183 | ||
184 | %description long-static | |
185 | Static fftw long double precision libraries. | |
186 | ||
187 | %description long-static -l pl.UTF-8 | |
188 | Statyczne biblioteki fftw rozszerzonej precyzji. | |
189 | ||
190 | %package common | |
191 | Summary: Files common for all versions of fftw libraries | |
192 | Summary(pl.UTF-8): Pliki wspólne dla wszystkich wersji bibliotek fftw | |
193 | Group: Libraries | |
194 | ||
195 | %description common | |
196 | Files common for all versions of fftw libraries (basic documentation, | |
197 | fftw-wisdom-to-conf utility). | |
198 | ||
199 | %description common -l pl.UTF-8 | |
200 | Pliki wspólne dla wszystkich wersji bibliotek fftw (podstawowa | |
201 | dokumentacja, narzędzie fftw-wisdom-to-conf). | |
202 | ||
203 | %package common-devel | |
204 | Summary: Development files common for all versions of fftw libraries | |
205 | Summary(pl.UTF-8): Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw | |
206 | Group: Development/Libraries | |
207 | Requires: %{name}-common = %{version}-%{release} | |
208 | ||
209 | %description common-devel | |
210 | Development files common for all versions of fftw libraries (header | |
211 | files, development documentation). | |
212 | ||
213 | %description common-devel -l pl.UTF-8 | |
214 | Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw | |
215 | (pliki nagłówkowe, dokumentacja programisty). | |
216 | ||
217 | %prep | |
218 | %setup -q -n fftw-%{version} | |
219 | %patch0 -p1 | |
220 | %patch1 -p1 | |
221 | %patch2 -p1 | |
222 | ||
223 | %build | |
224 | %{__libtoolize} | |
225 | %{__aclocal} -I m4 | |
226 | %{__autoconf} | |
227 | %{__automake} | |
228 | ||
229 | # MMX/SSE/etc. seem to be safe because of runtime CPU detection | |
230 | for ver in single double %{?with_fftwl:long-double}; do | |
231 | OPTS="" | |
232 | # k7,SSE,3dnow,altivec only for single | |
233 | if [ "$ver" = "single" ]; then | |
234 | %ifarch i686 | |
235 | OPTS="--enable-sse" | |
236 | %endif | |
237 | %ifarch athlon | |
238 | OPTS="--enable-sse" # no "--enable-k7" - conflicts with shared, SEGV on athlons | |
239 | %endif | |
240 | %ifarch ppc | |
241 | OPTS="--enable-altivec" | |
242 | %endif | |
243 | %ifnarch i686 k6 athlon ppc | |
244 | : # keep sh happy about syntax | |
245 | %endif | |
246 | fi | |
247 | %ifarch i686 | |
248 | # SSE2 only for double | |
249 | if [ "$ver" = "double" ]; then | |
250 | OPTS="--enable-sse2" | |
251 | fi | |
252 | %endif | |
253 | install -d build-${ver} | |
254 | cd build-${ver} | |
255 | ../%configure \ | |
256 | --enable-shared \ | |
257 | --enable-threads \ | |
258 | --enable-$ver \ | |
259 | $OPTS \ | |
260 | --%{!?debug:dis}%{?debug:en}able-debug | |
261 | ||
262 | %{__make} | |
263 | cd .. | |
264 | done | |
265 | ||
266 | %install | |
267 | rm -rf $RPM_BUILD_ROOT | |
268 | ||
269 | %{__make} install -C build-single \ | |
270 | DESTDIR=$RPM_BUILD_ROOT | |
271 | ||
272 | %{__make} install -C build-double \ | |
273 | DESTDIR=$RPM_BUILD_ROOT | |
274 | ||
275 | %if %{with fftwl} | |
276 | %{__make} install -C build-long-double \ | |
277 | DESTDIR=$RPM_BUILD_ROOT | |
278 | %endif | |
279 | ||
280 | %clean | |
281 | rm -rf $RPM_BUILD_ROOT | |
282 | ||
283 | %post -p /sbin/ldconfig | |
284 | %postun -p /sbin/ldconfig | |
285 | ||
286 | %post single -p /sbin/ldconfig | |
287 | %postun single -p /sbin/ldconfig | |
288 | ||
289 | %post long -p /sbin/ldconfig | |
290 | %postun long -p /sbin/ldconfig | |
291 | ||
292 | %post common-devel -p /sbin/postshell | |
293 | -/usr/sbin/fix-info-dir -c %{_infodir} | |
294 | ||
295 | %postun common-devel -p /sbin/postshell | |
296 | -/usr/sbin/fix-info-dir -c %{_infodir} | |
297 | ||
298 | %files | |
299 | %defattr(644,root,root,755) | |
300 | %attr(755,root,root) %{_bindir}/fftw-wisdom | |
301 | %attr(755,root,root) %{_libdir}/libfftw3.so.*.*.* | |
302 | %attr(755,root,root) %ghost %{_libdir}/libfftw3.so.3 | |
303 | %attr(755,root,root) %{_libdir}/libfftw3_threads.so.*.*.* | |
304 | %attr(755,root,root) %ghost %{_libdir}/libfftw3_threads.so.3 | |
305 | %{_mandir}/man1/fftw-wisdom.1* | |
306 | ||
307 | %files devel | |
308 | %defattr(644,root,root,755) | |
309 | %attr(755,root,root) %{_libdir}/libfftw3.so | |
310 | %attr(755,root,root) %{_libdir}/libfftw3_threads.so | |
311 | %{_libdir}/libfftw3.la | |
312 | %{_libdir}/libfftw3_threads.la | |
313 | %{_pkgconfigdir}/fftw3.pc | |
314 | ||
315 | %files static | |
316 | %defattr(644,root,root,755) | |
317 | %{_libdir}/libfftw3.a | |
318 | %{_libdir}/libfftw3_threads.a | |
319 | ||
320 | %files single | |
321 | %defattr(644,root,root,755) | |
322 | %attr(755,root,root) %{_bindir}/fftwf-wisdom | |
323 | %attr(755,root,root) %{_libdir}/libfftw3f.so.*.*.* | |
324 | %attr(755,root,root) %ghost %{_libdir}/libfftw3f.so.3 | |
325 | %attr(755,root,root) %{_libdir}/libfftw3f_threads.so.*.*.* | |
326 | %attr(755,root,root) %ghost %{_libdir}/libfftw3f_threads.so.3 | |
327 | %{_mandir}/man1/fftwf-wisdom.1* | |
328 | ||
329 | %files single-devel | |
330 | %defattr(644,root,root,755) | |
331 | %attr(755,root,root) %{_libdir}/libfftw3f.so | |
332 | %attr(755,root,root) %{_libdir}/libfftw3f_threads.so | |
333 | %{_libdir}/libfftw3f.la | |
334 | %{_libdir}/libfftw3f_threads.la | |
335 | %{_pkgconfigdir}/fftw3f.pc | |
336 | ||
337 | %files single-static | |
338 | %defattr(644,root,root,755) | |
339 | %{_libdir}/libfftw3f.a | |
340 | %{_libdir}/libfftw3f_threads.a | |
341 | ||
342 | %if %{with fftwl} | |
343 | %files long | |
344 | %defattr(644,root,root,755) | |
345 | %attr(755,root,root) %{_bindir}/fftwl-wisdom | |
346 | %attr(755,root,root) %{_libdir}/libfftw3l.so.*.*.* | |
347 | %attr(755,root,root) %ghost %{_libdir}/libfftw3l.so.3 | |
348 | %attr(755,root,root) %{_libdir}/libfftw3l_threads.so.*.*.* | |
349 | %attr(755,root,root) %ghost %{_libdir}/libfftw3l_threads.so.3 | |
350 | %{_mandir}/man1/fftwl-wisdom.1* | |
351 | ||
352 | %files long-devel | |
353 | %defattr(644,root,root,755) | |
354 | %attr(755,root,root) %{_libdir}/libfftw3l.so | |
355 | %attr(755,root,root) %{_libdir}/libfftw3l_threads.so | |
356 | %{_libdir}/libfftw3l.la | |
357 | %{_libdir}/libfftw3l_threads.la | |
358 | %{_pkgconfigdir}/fftw3l.pc | |
359 | ||
360 | %files long-static | |
361 | %defattr(644,root,root,755) | |
362 | %{_libdir}/libfftw3l.a | |
363 | %{_libdir}/libfftw3l_threads.a | |
364 | %endif | |
365 | ||
366 | %files common | |
367 | %defattr(644,root,root,755) | |
368 | %doc AUTHORS COPYRIGHT ChangeLog NEWS README TODO | |
369 | %attr(755,root,root) %{_bindir}/fftw-wisdom-to-conf | |
370 | %{_mandir}/man1/fftw-wisdom-to-conf.1* | |
371 | ||
372 | %files common-devel | |
373 | %defattr(644,root,root,755) | |
374 | %doc doc/html doc/FAQ/fftw-faq.html | |
375 | %{_includedir}/fftw3.f | |
376 | %{_includedir}/fftw3.h | |
377 | %{_infodir}/fftw3.info* |