3 %bcond_without fftwl # "long" subpackages
4 %bcond_without fftwq # "quad" subpackages
5 %bcond_without gomp # OpenMP support
7 Summary: Fast Fourier Transform library
8 Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera
9 Summary(pt_BR.UTF-8): biblioteca fast fourier transform
15 Source0: ftp://ftp.fftw.org/pub/fftw/fftw-%{version}.tar.gz
16 # Source0-md5: 0728ab3ec0ebb06631ab3b80a5c3d130
17 Patch0: %{name}-info.patch
18 Patch1: %{name}-link.patch
19 URL: http://www.fftw.org/
20 BuildRequires: autoconf
21 BuildRequires: automake
22 BuildRequires: gcc-fortran
23 %ifarch alpha ppc s390 s390x sparc sparcv9
25 # for 128-bit long double support
26 BuildRequires: gcc-fortran >= 5:4.1.0-1
27 BuildRequires: glibc >= 6:2.4-1
31 BuildRequires: gcc >= 6:4.6.0
32 BuildRequires: libquadmath-devel
35 BuildRequires: gcc >= 6:4.2.0
36 BuildRequires: libgomp-devel
38 BuildRequires: libtool
39 BuildRequires: texinfo
40 Requires: %{name}-common = %{version}-%{release}
41 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43 %define builds single double %{?with_fftwl:long-double} %{?with_fftwq:quad-precision}
46 FFTW is a collection of fast C routines for computing the Discrete
47 Fourier Transform in one or more dimensions. It includes complex,
48 real, and parallel transforms, and can handle arbitrary array sizes
49 efficiently. This RPM package includes the double precision FFTW
50 uniprocessor and threads libraries.
52 %description -l pl.UTF-8
53 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
54 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
55 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
56 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
57 zawiera wersje FFTW o podwójnej precyzji dla architektur
58 jednoprocesorowych oraz z obsługą wątków.
60 %description -l pt_BR.UTF-8
61 FFTW é uma coleção de rotinas rápidas em C para computar a Discrete
62 Fourier Transform em uma ou mais dimensões. Incluindo transformações
63 complexas, reais e paralelas, também pode manipular vetores de tamanho
64 arbitrário eficientemente. Esse pacote RPM inclui bibliotecas FFTW com
65 suporte a threads, normal e dupla precisão (Os arquivos de precisão
66 normal tem um prefixo "s").
69 Summary: Development files for fftw
70 Summary(pl.UTF-8): Pliki programistyczne do fftw
71 Summary(pt_BR.UTF-8): Headers e documentação do pacote FFTW
72 Group: Development/Libraries
73 Requires: %{name} = %{version}-%{release}
74 Requires: %{name}-common-devel = %{version}-%{release}
75 %{?with_gomp:Requires: libgomp-devel}
78 This package contains the files you need to develop programs using the
79 FFTW (fast fourier transform library).
81 %description devel -l pl.UTF-8
82 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
83 biblioteki FFTW (wykonującej szybką transformatę Fouriera).
85 %description devel -l pt_BR.UTF-8
86 Este pacote contém documentação e headers adicionais para desenvolver
87 programas usando a FFTW.
90 Summary: Static fftw libraries
91 Summary(pl.UTF-8): Statyczne biblioteki fftw
92 Summary(pt_BR.UTF-8): Bibliotecas estáticas do pacote FFTW
93 Group: Development/Libraries
94 Requires: %{name}-devel = %{version}-%{release}
97 Static fftw libraries.
99 %description static -l pl.UTF-8
100 Statyczne biblioteki fftw.
102 %description static -l pt_BR.UTF-8
103 Este pacote contém as bibliotecas estáticas do pacote FFTW.
106 Summary: Fast Fourier Transform library - single precision
107 Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - pojedynczej precyzji
109 Requires: %{name}-common = %{version}-%{release}
112 FFTW is a collection of fast C routines for computing the Discrete
113 Fourier Transform in one or more dimensions. It includes complex,
114 real, and parallel transforms, and can handle arbitrary array sizes
115 efficiently. This RPM package includes the single precision FFTW
116 uniprocessor and threads libraries.
118 %description single -l pl.UTF-8
119 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
120 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
121 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
122 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
123 zawiera wersje FFTW o pojedynczej precyzji dla architektur
124 jednoprocesorowych oraz z obsługą wątków.
126 %package single-devel
127 Summary: Development files for single precision fftw
128 Summary(pl.UTF-8): Pliki programistyczne do fftw pojedynczej precyzji
129 Group: Development/Libraries
130 Requires: %{name}-common-devel = %{version}-%{release}
131 Requires: %{name}-single = %{version}-%{release}
132 %{?with_gomp:Requires: libgomp-devel}
134 %description single-devel
135 This package contains the files you need to develop programs using the
136 single precision FFTW (fast fourier transform library).
138 %description single-devel -l pl.UTF-8
139 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
140 biblioteki FFTW (wykonującej szybką transformatę Fouriera) pojedynczej
143 %package single-static
144 Summary: Static fftw single precision libraries
145 Summary(pl.UTF-8): Statyczne biblioteki fftw pojedynczej precyzji
146 Group: Development/Libraries
147 Requires: %{name}-single-devel = %{version}-%{release}
149 %description single-static
150 Static fftw single precision libraries.
152 %description single-static -l pl.UTF-8
153 Statyczne biblioteki fftw pojedynczej precyzji.
156 Summary: Fast Fourier Transform library - long double precision
157 Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - rozszerzonej precyzji
159 Requires: %{name}-common = %{version}-%{release}
162 FFTW is a collection of fast C routines for computing the Discrete
163 Fourier Transform in one or more dimensions. It includes complex,
164 real, and parallel transforms, and can handle arbitrary array sizes
165 efficiently. This RPM package includes the long double precision FFTW
166 uniprocessor and threads libraries.
168 %description long -l pl.UTF-8
169 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
170 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
171 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
172 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
173 zawiera wersje FFTW o rozszerzonej precyzji dla architektur
174 jednoprocesorowych oraz z obsługą wątków.
177 Summary: Development files for long double precision fftw
178 Summary(pl.UTF-8): Pliki programistyczne do fftw rozszerzonej precyzji
179 Group: Development/Libraries
180 Requires: %{name}-common-devel = %{version}-%{release}
181 Requires: %{name}-long = %{version}-%{release}
182 %{?with_gomp:Requires: libgomp-devel}
184 %description long-devel
185 This package contains the files you need to develop programs using the
186 long double precision FFTW (fast fourier transform library).
188 %description long-devel -l pl.UTF-8
189 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
190 biblioteki FFTW (wykonującej szybką transformatę Fouriera)
191 rozszerzonej precyzji.
194 Summary: Static fftw long double precision libraries
195 Summary(pl.UTF-8): Statyczne biblioteki fftw rozszerzonej precyzji
196 Group: Development/Libraries
197 Requires: %{name}-long-devel = %{version}-%{release}
199 %description long-static
200 Static fftw long double precision libraries.
202 %description long-static -l pl.UTF-8
203 Statyczne biblioteki fftw rozszerzonej precyzji.
206 Summary: Fast Fourier Transform library - quad precision
207 Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - poczwórnej precyzji
209 Requires: %{name}-common = %{version}-%{release}
212 FFTW is a collection of fast C routines for computing the Discrete
213 Fourier Transform in one or more dimensions. It includes complex,
214 real, and parallel transforms, and can handle arbitrary array sizes
215 efficiently. This RPM package includes the quad precision FFTW
216 uniprocessor and threads libraries.
218 %description quad -l pl.UTF-8
219 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
220 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
221 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
222 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
223 zawiera wersje FFTW o poczwórnej precyzji dla architektur
224 jednoprocesorowych oraz z obsługą wątków.
227 Summary: Development files for quad precision fftw
228 Summary(pl.UTF-8): Pliki programistyczne do fftw poczwórnej precyzji
229 Group: Development/Libraries
230 Requires: %{name}-common-devel = %{version}-%{release}
231 Requires: %{name}-quad = %{version}-%{release}
232 %{?with_gomp:Requires: libgomp-devel}
233 Requires: libquadmath-devel
235 %description quad-devel
236 This package contains the files you need to develop programs using the
237 quad precision FFTW (fast fourier transform library).
239 %description quad-devel -l pl.UTF-8
240 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
241 biblioteki FFTW (wykonującej szybką transformatę Fouriera) poczwórnej
245 Summary: Static fftw quad precision libraries
246 Summary(pl.UTF-8): Statyczne biblioteki fftw poczwórnej precyzji
247 Group: Development/Libraries
248 Requires: %{name}-quad-devel = %{version}-%{release}
250 %description quad-static
251 Static fftw quad precision libraries.
253 %description quad-static -l pl.UTF-8
254 Statyczne biblioteki fftw poczwórnej precyzji.
257 Summary: Files common for all versions of fftw libraries
258 Summary(pl.UTF-8): Pliki wspólne dla wszystkich wersji bibliotek fftw
262 Files common for all versions of fftw libraries (basic documentation,
263 fftw-wisdom-to-conf utility).
265 %description common -l pl.UTF-8
266 Pliki wspólne dla wszystkich wersji bibliotek fftw (podstawowa
267 dokumentacja, narzędzie fftw-wisdom-to-conf).
269 %package common-devel
270 Summary: Development files common for all versions of fftw libraries
271 Summary(pl.UTF-8): Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
272 Group: Development/Libraries
273 Requires: %{name}-common = %{version}-%{release}
275 %description common-devel
276 Development files common for all versions of fftw libraries (header
277 files, development documentation).
279 %description common-devel -l pl.UTF-8
280 Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
281 (pliki nagłówkowe, dokumentacja programisty).
284 %setup -q -n fftw-%{version}
294 # MMX/SSE/etc. seem to be safe because of runtime CPU detection
295 for ver in %{builds}; do
297 # k7,SSE,3dnow,altivec only for single
298 if [ "$ver" = "single" ]; then
299 %ifarch i686 pentium3 pentium4
303 OPTS="--enable-sse" # no "--enable-k7" - conflicts with shared, SEGV on athlons
306 OPTS="--enable-altivec"
308 %ifnarch i686 k6 athlon ppc
309 : # keep sh happy about syntax
312 %ifarch i686 pentium4
313 # SSE2 only for double
314 if [ "$ver" = "double" -o "$ver" = "single" ]; then
315 OPTS="--enable-sse2 --enable-avx"
318 install -d build-${ver}
326 --%{!?debug:dis}%{?debug:en}able-debug
333 rm -rf $RPM_BUILD_ROOT
334 install -d $RPM_BUILD_ROOT%{_sysconfdir}/fftw
336 for b in %{builds} ; do
337 %{__make} install -C build-${b} \
338 DESTDIR=$RPM_BUILD_ROOT
342 rm -rf $RPM_BUILD_ROOT
344 %post -p /sbin/ldconfig
345 %postun -p /sbin/ldconfig
347 %post single -p /sbin/ldconfig
348 %postun single -p /sbin/ldconfig
350 %post long -p /sbin/ldconfig
351 %postun long -p /sbin/ldconfig
353 %post common-devel -p /sbin/postshell
354 -/usr/sbin/fix-info-dir -c %{_infodir}
356 %postun common-devel -p /sbin/postshell
357 -/usr/sbin/fix-info-dir -c %{_infodir}
360 %defattr(644,root,root,755)
361 %attr(755,root,root) %{_bindir}/fftw-wisdom
362 %attr(755,root,root) %{_libdir}/libfftw3.so.*.*.*
363 %attr(755,root,root) %ghost %{_libdir}/libfftw3.so.3
364 %attr(755,root,root) %{_libdir}/libfftw3_threads.so.*.*.*
365 %attr(755,root,root) %ghost %{_libdir}/libfftw3_threads.so.3
367 %attr(755,root,root) %{_libdir}/libfftw3_omp.so.*.*.*
368 %attr(755,root,root) %ghost %{_libdir}/libfftw3_omp.so.3
370 %{_mandir}/man1/fftw-wisdom.1*
373 %defattr(644,root,root,755)
374 %attr(755,root,root) %{_libdir}/libfftw3.so
375 %attr(755,root,root) %{_libdir}/libfftw3_threads.so
376 %{_libdir}/libfftw3.la
377 %{_libdir}/libfftw3_threads.la
379 %attr(755,root,root) %{_libdir}/libfftw3_omp.so
380 %{_libdir}/libfftw3_omp.la
382 %{_pkgconfigdir}/fftw3.pc
385 %defattr(644,root,root,755)
386 %{_libdir}/libfftw3.a
387 %{_libdir}/libfftw3_threads.a
389 %{_libdir}/libfftw3_omp.a
393 %defattr(644,root,root,755)
394 %attr(755,root,root) %{_bindir}/fftwf-wisdom
395 %attr(755,root,root) %{_libdir}/libfftw3f.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libfftw3f.so.3
397 %attr(755,root,root) %{_libdir}/libfftw3f_threads.so.*.*.*
398 %attr(755,root,root) %ghost %{_libdir}/libfftw3f_threads.so.3
400 %attr(755,root,root) %{_libdir}/libfftw3f_omp.so.*.*.*
401 %attr(755,root,root) %ghost %{_libdir}/libfftw3f_omp.so.3
403 %{_mandir}/man1/fftwf-wisdom.1*
406 %defattr(644,root,root,755)
407 %attr(755,root,root) %{_libdir}/libfftw3f.so
408 %attr(755,root,root) %{_libdir}/libfftw3f_threads.so
409 %{_libdir}/libfftw3f.la
410 %{_libdir}/libfftw3f_threads.la
412 %attr(755,root,root) %{_libdir}/libfftw3f_omp.so
413 %{_libdir}/libfftw3f_omp.la
415 %{_pkgconfigdir}/fftw3f.pc
418 %defattr(644,root,root,755)
419 %{_libdir}/libfftw3f.a
420 %{_libdir}/libfftw3f_threads.a
422 %{_libdir}/libfftw3f_omp.a
427 %defattr(644,root,root,755)
428 %attr(755,root,root) %{_bindir}/fftwl-wisdom
429 %attr(755,root,root) %{_libdir}/libfftw3l.so.*.*.*
430 %attr(755,root,root) %ghost %{_libdir}/libfftw3l.so.3
431 %attr(755,root,root) %{_libdir}/libfftw3l_threads.so.*.*.*
432 %attr(755,root,root) %ghost %{_libdir}/libfftw3l_threads.so.3
434 %attr(755,root,root) %{_libdir}/libfftw3l_omp.so.*.*.*
435 %attr(755,root,root) %ghost %{_libdir}/libfftw3l_omp.so.3
437 %{_mandir}/man1/fftwl-wisdom.1*
440 %defattr(644,root,root,755)
441 %attr(755,root,root) %{_libdir}/libfftw3l.so
442 %attr(755,root,root) %{_libdir}/libfftw3l_threads.so
443 %{_libdir}/libfftw3l.la
444 %{_libdir}/libfftw3l_threads.la
446 %attr(755,root,root) %{_libdir}/libfftw3l_omp.so
447 %{_libdir}/libfftw3l_omp.la
449 %{_pkgconfigdir}/fftw3l.pc
452 %defattr(644,root,root,755)
453 %{_libdir}/libfftw3l.a
454 %{_libdir}/libfftw3l_threads.a
456 %{_libdir}/libfftw3l_omp.a
462 %defattr(644,root,root,755)
463 %attr(755,root,root) %{_bindir}/fftwq-wisdom
464 %attr(755,root,root) %{_libdir}/libfftw3q.so.*.*.*
465 %attr(755,root,root) %ghost %{_libdir}/libfftw3q.so.3
466 %attr(755,root,root) %{_libdir}/libfftw3q_threads.so.*.*.*
467 %attr(755,root,root) %ghost %{_libdir}/libfftw3q_threads.so.3
469 %attr(755,root,root) %{_libdir}/libfftw3q_omp.so.*.*.*
470 %attr(755,root,root) %ghost %{_libdir}/libfftw3q_omp.so.3
472 %{_mandir}/man1/fftwq-wisdom.1*
475 %defattr(644,root,root,755)
476 %attr(755,root,root) %{_libdir}/libfftw3q.so
477 %attr(755,root,root) %{_libdir}/libfftw3q_threads.so
478 %{_libdir}/libfftw3q.la
479 %{_libdir}/libfftw3q_threads.la
481 %attr(755,root,root) %{_libdir}/libfftw3q_omp.so
482 %{_libdir}/libfftw3q_omp.la
484 %{_pkgconfigdir}/fftw3q.pc
487 %defattr(644,root,root,755)
488 %{_libdir}/libfftw3q.a
489 %{_libdir}/libfftw3q_threads.a
491 %{_libdir}/libfftw3q_omp.a
496 %defattr(644,root,root,755)
497 %doc AUTHORS COPYRIGHT ChangeLog NEWS README TODO
498 %dir %{_sysconfdir}/fftw
499 %attr(755,root,root) %{_bindir}/fftw-wisdom-to-conf
500 %{_mandir}/man1/fftw-wisdom-to-conf.1*
503 %defattr(644,root,root,755)
504 %doc doc/html doc/FAQ/fftw-faq.html
505 %{_includedir}/fftw3.f
506 %{_includedir}/fftw3.f03
507 %{_includedir}/fftw3.h
508 %{_infodir}/fftw3.info*