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: 2edab8c06b24feeb3b82bbb3ebf3e7b3
17 Patch0: %{name}-info.patch
18 URL: http://www.fftw.org/
19 BuildRequires: autoconf
20 BuildRequires: automake
21 BuildRequires: gcc-fortran
22 %ifarch alpha ppc s390 s390x sparc sparcv9
24 # for 128-bit long double support
25 BuildRequires: gcc-fortran >= 5:4.1.0-1
26 BuildRequires: glibc >= 6:2.4-1
30 BuildRequires: gcc >= 6:4.6.0
31 BuildRequires: libquadmath-devel
34 BuildRequires: gcc >= 6:4.2.0
35 BuildRequires: libgomp-devel
37 BuildRequires: libtool
38 BuildRequires: texinfo
39 Requires: %{name}-common = %{version}-%{release}
40 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42 %define builds single double %{?with_fftwl:long-double} %{?with_fftwq:quad-precision}
45 FFTW is a collection of fast C routines for computing the Discrete
46 Fourier Transform in one or more dimensions. It includes complex,
47 real, and parallel transforms, and can handle arbitrary array sizes
48 efficiently. This RPM package includes the double precision FFTW
49 uniprocessor and threads libraries.
51 %description -l pl.UTF-8
52 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
53 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
54 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
55 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
56 zawiera wersje FFTW o podwójnej precyzji dla architektur
57 jednoprocesorowych oraz z obsługą wątków.
59 %description -l pt_BR.UTF-8
60 FFTW é uma coleção de rotinas rápidas em C para computar a Discrete
61 Fourier Transform em uma ou mais dimensões. Incluindo transformações
62 complexas, reais e paralelas, também pode manipular vetores de tamanho
63 arbitrário eficientemente. Esse pacote RPM inclui bibliotecas FFTW com
64 suporte a threads, normal e dupla precisão (Os arquivos de precisão
65 normal tem um prefixo "s").
68 Summary: Development files for fftw
69 Summary(pl.UTF-8): Pliki programistyczne do fftw
70 Summary(pt_BR.UTF-8): Headers e documentação do pacote FFTW
71 Group: Development/Libraries
72 Requires: %{name} = %{version}-%{release}
73 Requires: %{name}-common-devel = %{version}-%{release}
74 %{?with_gomp:Requires: libgomp-devel}
77 This package contains the files you need to develop programs using the
78 FFTW (fast fourier transform library).
80 %description devel -l pl.UTF-8
81 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
82 biblioteki FFTW (wykonującej szybką transformatę Fouriera).
84 %description devel -l pt_BR.UTF-8
85 Este pacote contém documentação e headers adicionais para desenvolver
86 programas usando a FFTW.
89 Summary: Static fftw libraries
90 Summary(pl.UTF-8): Statyczne biblioteki fftw
91 Summary(pt_BR.UTF-8): Bibliotecas estáticas do pacote FFTW
92 Group: Development/Libraries
93 Requires: %{name}-devel = %{version}-%{release}
96 Static fftw libraries.
98 %description static -l pl.UTF-8
99 Statyczne biblioteki fftw.
101 %description static -l pt_BR.UTF-8
102 Este pacote contém as bibliotecas estáticas do pacote FFTW.
105 Summary: Fast Fourier Transform library - single precision
106 Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - pojedynczej precyzji
108 Requires: %{name}-common = %{version}-%{release}
111 FFTW is a collection of fast C routines for computing the Discrete
112 Fourier Transform in one or more dimensions. It includes complex,
113 real, and parallel transforms, and can handle arbitrary array sizes
114 efficiently. This RPM package includes the single precision FFTW
115 uniprocessor and threads libraries.
117 %description single -l pl.UTF-8
118 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
119 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
120 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
121 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
122 zawiera wersje FFTW o pojedynczej precyzji dla architektur
123 jednoprocesorowych oraz z obsługą wątków.
125 %package single-devel
126 Summary: Development files for single precision fftw
127 Summary(pl.UTF-8): Pliki programistyczne do fftw pojedynczej precyzji
128 Group: Development/Libraries
129 Requires: %{name}-common-devel = %{version}-%{release}
130 Requires: %{name}-single = %{version}-%{release}
131 %{?with_gomp:Requires: libgomp-devel}
133 %description single-devel
134 This package contains the files you need to develop programs using the
135 single precision FFTW (fast fourier transform library).
137 %description single-devel -l pl.UTF-8
138 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
139 biblioteki FFTW (wykonującej szybką transformatę Fouriera) pojedynczej
142 %package single-static
143 Summary: Static fftw single precision libraries
144 Summary(pl.UTF-8): Statyczne biblioteki fftw pojedynczej precyzji
145 Group: Development/Libraries
146 Requires: %{name}-single-devel = %{version}-%{release}
148 %description single-static
149 Static fftw single precision libraries.
151 %description single-static -l pl.UTF-8
152 Statyczne biblioteki fftw pojedynczej precyzji.
155 Summary: Fast Fourier Transform library - long double precision
156 Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - rozszerzonej precyzji
158 Requires: %{name}-common = %{version}-%{release}
161 FFTW is a collection of fast C routines for computing the Discrete
162 Fourier Transform in one or more dimensions. It includes complex,
163 real, and parallel transforms, and can handle arbitrary array sizes
164 efficiently. This RPM package includes the long double precision FFTW
165 uniprocessor and threads libraries.
167 %description long -l pl.UTF-8
168 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
169 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
170 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
171 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
172 zawiera wersje FFTW o rozszerzonej precyzji dla architektur
173 jednoprocesorowych oraz z obsługą wątków.
176 Summary: Development files for long double precision fftw
177 Summary(pl.UTF-8): Pliki programistyczne do fftw rozszerzonej precyzji
178 Group: Development/Libraries
179 Requires: %{name}-common-devel = %{version}-%{release}
180 Requires: %{name}-long = %{version}-%{release}
181 %{?with_gomp:Requires: libgomp-devel}
183 %description long-devel
184 This package contains the files you need to develop programs using the
185 long double precision FFTW (fast fourier transform library).
187 %description long-devel -l pl.UTF-8
188 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
189 biblioteki FFTW (wykonującej szybką transformatę Fouriera)
190 rozszerzonej precyzji.
193 Summary: Static fftw long double precision libraries
194 Summary(pl.UTF-8): Statyczne biblioteki fftw rozszerzonej precyzji
195 Group: Development/Libraries
196 Requires: %{name}-long-devel = %{version}-%{release}
198 %description long-static
199 Static fftw long double precision libraries.
201 %description long-static -l pl.UTF-8
202 Statyczne biblioteki fftw rozszerzonej precyzji.
205 Summary: Fast Fourier Transform library - quad precision
206 Summary(pl.UTF-8): Biblioteka z funkcjami szybkiej transformaty Fouriera - poczwórnej precyzji
208 Requires: %{name}-common = %{version}-%{release}
211 FFTW is a collection of fast C routines for computing the Discrete
212 Fourier Transform in one or more dimensions. It includes complex,
213 real, and parallel transforms, and can handle arbitrary array sizes
214 efficiently. This RPM package includes the quad precision FFTW
215 uniprocessor and threads libraries.
217 %description quad -l pl.UTF-8
218 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
219 transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
220 zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
221 radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
222 zawiera wersje FFTW o poczwórnej precyzji dla architektur
223 jednoprocesorowych oraz z obsługą wątków.
226 Summary: Development files for quad precision fftw
227 Summary(pl.UTF-8): Pliki programistyczne do fftw poczwórnej precyzji
228 Group: Development/Libraries
229 Requires: %{name}-common-devel = %{version}-%{release}
230 Requires: %{name}-quad = %{version}-%{release}
231 %{?with_gomp:Requires: libgomp-devel}
232 Requires: libquadmath-devel
234 %description quad-devel
235 This package contains the files you need to develop programs using the
236 quad precision FFTW (fast fourier transform library).
238 %description quad-devel -l pl.UTF-8
239 Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
240 biblioteki FFTW (wykonującej szybką transformatę Fouriera) poczwórnej
244 Summary: Static fftw quad precision libraries
245 Summary(pl.UTF-8): Statyczne biblioteki fftw poczwórnej precyzji
246 Group: Development/Libraries
247 Requires: %{name}-quad-devel = %{version}-%{release}
249 %description quad-static
250 Static fftw quad precision libraries.
252 %description quad-static -l pl.UTF-8
253 Statyczne biblioteki fftw poczwórnej precyzji.
256 Summary: Files common for all versions of fftw libraries
257 Summary(pl.UTF-8): Pliki wspólne dla wszystkich wersji bibliotek fftw
261 Files common for all versions of fftw libraries (basic documentation,
262 fftw-wisdom-to-conf utility).
264 %description common -l pl.UTF-8
265 Pliki wspólne dla wszystkich wersji bibliotek fftw (podstawowa
266 dokumentacja, narzędzie fftw-wisdom-to-conf).
268 %package common-devel
269 Summary: Development files common for all versions of fftw libraries
270 Summary(pl.UTF-8): Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
271 Group: Development/Libraries
272 Requires: %{name}-common = %{version}-%{release}
274 %description common-devel
275 Development files common for all versions of fftw libraries (header
276 files, development documentation).
278 %description common-devel -l pl.UTF-8
279 Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
280 (pliki nagłówkowe, dokumentacja programisty).
283 %setup -q -n fftw-%{version}
292 # MMX/SSE/etc. seem to be safe because of runtime CPU detection
293 for ver in %{builds}; do
295 # k7,SSE,3dnow,altivec only for single
296 if [ "$ver" = "single" ]; then
297 %ifarch i686 pentium3 pentium4
301 OPTS="--enable-sse" # no "--enable-k7" - conflicts with shared, SEGV on athlons
304 OPTS="--enable-altivec"
306 %ifnarch i686 k6 athlon ppc
307 : # keep sh happy about syntax
310 %ifarch i686 pentium4
311 # SSE2 only for double
312 if [ "$ver" = "double" -o "$ver" = "single" ]; then
313 OPTS="--enable-sse2 --enable-avx"
316 install -d build-${ver}
324 --%{!?debug:dis}%{?debug:en}able-debug
331 rm -rf $RPM_BUILD_ROOT
332 install -d $RPM_BUILD_ROOT%{_sysconfdir}/fftw
334 for b in %{builds} ; do
335 %{__make} install -C build-${b} \
336 DESTDIR=$RPM_BUILD_ROOT
340 rm -rf $RPM_BUILD_ROOT
342 %post -p /sbin/ldconfig
343 %postun -p /sbin/ldconfig
345 %post single -p /sbin/ldconfig
346 %postun single -p /sbin/ldconfig
348 %post long -p /sbin/ldconfig
349 %postun long -p /sbin/ldconfig
351 %post common-devel -p /sbin/postshell
352 -/usr/sbin/fix-info-dir -c %{_infodir}
354 %postun common-devel -p /sbin/postshell
355 -/usr/sbin/fix-info-dir -c %{_infodir}
358 %defattr(644,root,root,755)
359 %attr(755,root,root) %{_bindir}/fftw-wisdom
360 %attr(755,root,root) %{_libdir}/libfftw3.so.*.*.*
361 %attr(755,root,root) %ghost %{_libdir}/libfftw3.so.3
362 %attr(755,root,root) %{_libdir}/libfftw3_threads.so.*.*.*
363 %attr(755,root,root) %ghost %{_libdir}/libfftw3_threads.so.3
365 %attr(755,root,root) %{_libdir}/libfftw3_omp.so.*.*.*
366 %attr(755,root,root) %ghost %{_libdir}/libfftw3_omp.so.3
368 %{_mandir}/man1/fftw-wisdom.1*
371 %defattr(644,root,root,755)
372 %attr(755,root,root) %{_libdir}/libfftw3.so
373 %attr(755,root,root) %{_libdir}/libfftw3_threads.so
374 %{_libdir}/libfftw3.la
375 %{_libdir}/libfftw3_threads.la
377 %attr(755,root,root) %{_libdir}/libfftw3_omp.so
378 %{_libdir}/libfftw3_omp.la
380 %{_pkgconfigdir}/fftw3.pc
383 %defattr(644,root,root,755)
384 %{_libdir}/libfftw3.a
385 %{_libdir}/libfftw3_threads.a
387 %{_libdir}/libfftw3_omp.a
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_bindir}/fftwf-wisdom
393 %attr(755,root,root) %{_libdir}/libfftw3f.so.*.*.*
394 %attr(755,root,root) %ghost %{_libdir}/libfftw3f.so.3
395 %attr(755,root,root) %{_libdir}/libfftw3f_threads.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libfftw3f_threads.so.3
398 %attr(755,root,root) %{_libdir}/libfftw3f_omp.so.*.*.*
399 %attr(755,root,root) %ghost %{_libdir}/libfftw3f_omp.so.3
401 %{_mandir}/man1/fftwf-wisdom.1*
404 %defattr(644,root,root,755)
405 %attr(755,root,root) %{_libdir}/libfftw3f.so
406 %attr(755,root,root) %{_libdir}/libfftw3f_threads.so
407 %{_libdir}/libfftw3f.la
408 %{_libdir}/libfftw3f_threads.la
410 %attr(755,root,root) %{_libdir}/libfftw3f_omp.so
411 %{_libdir}/libfftw3f_omp.la
413 %{_pkgconfigdir}/fftw3f.pc
416 %defattr(644,root,root,755)
417 %{_libdir}/libfftw3f.a
418 %{_libdir}/libfftw3f_threads.a
420 %{_libdir}/libfftw3f_omp.a
425 %defattr(644,root,root,755)
426 %attr(755,root,root) %{_bindir}/fftwl-wisdom
427 %attr(755,root,root) %{_libdir}/libfftw3l.so.*.*.*
428 %attr(755,root,root) %ghost %{_libdir}/libfftw3l.so.3
429 %attr(755,root,root) %{_libdir}/libfftw3l_threads.so.*.*.*
430 %attr(755,root,root) %ghost %{_libdir}/libfftw3l_threads.so.3
432 %attr(755,root,root) %{_libdir}/libfftw3l_omp.so.*.*.*
433 %attr(755,root,root) %ghost %{_libdir}/libfftw3l_omp.so.3
435 %{_mandir}/man1/fftwl-wisdom.1*
438 %defattr(644,root,root,755)
439 %attr(755,root,root) %{_libdir}/libfftw3l.so
440 %attr(755,root,root) %{_libdir}/libfftw3l_threads.so
441 %{_libdir}/libfftw3l.la
442 %{_libdir}/libfftw3l_threads.la
444 %attr(755,root,root) %{_libdir}/libfftw3l_omp.so
445 %{_libdir}/libfftw3l_omp.la
447 %{_includedir}/fftw3l.f03
448 %{_pkgconfigdir}/fftw3l.pc
451 %defattr(644,root,root,755)
452 %{_libdir}/libfftw3l.a
453 %{_libdir}/libfftw3l_threads.a
455 %{_libdir}/libfftw3l_omp.a
461 %defattr(644,root,root,755)
462 %attr(755,root,root) %{_bindir}/fftwq-wisdom
463 %attr(755,root,root) %{_libdir}/libfftw3q.so.*.*.*
464 %attr(755,root,root) %ghost %{_libdir}/libfftw3q.so.3
465 %attr(755,root,root) %{_libdir}/libfftw3q_threads.so.*.*.*
466 %attr(755,root,root) %ghost %{_libdir}/libfftw3q_threads.so.3
468 %attr(755,root,root) %{_libdir}/libfftw3q_omp.so.*.*.*
469 %attr(755,root,root) %ghost %{_libdir}/libfftw3q_omp.so.3
471 %{_mandir}/man1/fftwq-wisdom.1*
474 %defattr(644,root,root,755)
475 %attr(755,root,root) %{_libdir}/libfftw3q.so
476 %attr(755,root,root) %{_libdir}/libfftw3q_threads.so
477 %{_libdir}/libfftw3q.la
478 %{_libdir}/libfftw3q_threads.la
480 %attr(755,root,root) %{_libdir}/libfftw3q_omp.so
481 %{_libdir}/libfftw3q_omp.la
483 %{_includedir}/fftw3q.f03
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*