- upstream fix for texinfo 5
[packages/fftw3.git] / fftw3.spec
1 #
2 # Conditional build:
3 %bcond_without  fftwl   # "long" subpackages
4 %bcond_without  fftwq   # "quad" subpackages
5 %bcond_without  gomp    # OpenMP support
6 #
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
10 Name:           fftw3
11 Version:        3.3.3
12 Release:        2
13 License:        GPL v2+
14 Group:          Libraries
15 Source0:        ftp://ftp.fftw.org/pub/fftw/fftw-%{version}.tar.gz
16 # Source0-md5:  0a05ca9c7b3bfddc8278e7c40791a1c2
17 Patch0:         %{name}-info.patch
18 Patch1:         texinfo5.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
24 %if %{with fftwl}
25 # for 128-bit long double support
26 BuildRequires:  gcc-fortran >= 5:4.1.0-1
27 BuildRequires:  glibc >= 6:2.4-1
28 %endif
29 %endif
30 %if %{with fftwq}
31 BuildRequires:  gcc >= 6:4.6.0
32 BuildRequires:  libquadmath-devel
33 %endif
34 %if %{with gomp}
35 BuildRequires:  gcc >= 6:4.2.0
36 BuildRequires:  libgomp-devel
37 %endif
38 BuildRequires:  libtool
39 BuildRequires:  texinfo
40 Requires:       %{name}-common = %{version}-%{release}
41 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42
43 %define builds  single double %{?with_fftwl:long-double} %{?with_fftwq:quad-precision}
44
45 %description
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.
51
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.
59
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").
67
68 %package devel
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}
76
77 %description devel
78 This package contains the files you need to develop programs using the
79 FFTW (fast fourier transform library).
80
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).
84
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.
88
89 %package static
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}
95
96 %description static
97 Static fftw libraries.
98
99 %description static -l pl.UTF-8
100 Statyczne biblioteki fftw.
101
102 %description static -l pt_BR.UTF-8
103 Este pacote contém as bibliotecas estáticas do pacote FFTW.
104
105 %package single
106 Summary:        Fast Fourier Transform library - single precision
107 Summary(pl.UTF-8):      Biblioteka z funkcjami szybkiej transformaty Fouriera - pojedynczej precyzji
108 Group:          Libraries
109 Requires:       %{name}-common = %{version}-%{release}
110
111 %description single
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.
117
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.
125
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}
133
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).
137
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
141 precyzji.
142
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}
148
149 %description single-static
150 Static fftw single precision libraries.
151
152 %description single-static -l pl.UTF-8
153 Statyczne biblioteki fftw pojedynczej precyzji.
154
155 %package long
156 Summary:        Fast Fourier Transform library - long double precision
157 Summary(pl.UTF-8):      Biblioteka z funkcjami szybkiej transformaty Fouriera - rozszerzonej precyzji
158 Group:          Libraries
159 Requires:       %{name}-common = %{version}-%{release}
160
161 %description long
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.
167
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.
175
176 %package long-devel
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}
183
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).
187
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.
192
193 %package long-static
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}
198
199 %description long-static
200 Static fftw long double precision libraries.
201
202 %description long-static -l pl.UTF-8
203 Statyczne biblioteki fftw rozszerzonej precyzji.
204
205 %package quad
206 Summary:        Fast Fourier Transform library - quad precision
207 Summary(pl.UTF-8):      Biblioteka z funkcjami szybkiej transformaty Fouriera - poczwórnej precyzji
208 Group:          Libraries
209 Requires:       %{name}-common = %{version}-%{release}
210
211 %description quad
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.
217
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.
225
226 %package quad-devel
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
234
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).
238
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
242 precyzji.
243
244 %package quad-static
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}
249
250 %description quad-static
251 Static fftw quad precision libraries.
252
253 %description quad-static -l pl.UTF-8
254 Statyczne biblioteki fftw poczwórnej precyzji.
255
256 %package common
257 Summary:        Files common for all versions of fftw libraries
258 Summary(pl.UTF-8):      Pliki wspólne dla wszystkich wersji bibliotek fftw
259 Group:          Libraries
260
261 %description common
262 Files common for all versions of fftw libraries (basic documentation,
263 fftw-wisdom-to-conf utility).
264
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).
268
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}
274
275 %description common-devel
276 Development files common for all versions of fftw libraries (header
277 files, development documentation).
278
279 %description common-devel -l pl.UTF-8
280 Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
281 (pliki nagłówkowe, dokumentacja programisty).
282
283 %prep
284 %setup -q -n fftw-%{version}
285 %patch0 -p1
286 %patch1 -p1
287
288 %build
289 %{__libtoolize}
290 %{__aclocal} -I m4
291 %{__autoconf}
292 %{__automake}
293
294 # MMX/SSE/etc. seem to be safe because of runtime CPU detection
295 for ver in %{builds}; do
296         OPTS=""
297         # k7,SSE,3dnow,altivec only for single
298         if [ "$ver" = "single" ]; then
299 %ifarch i686 pentium3 pentium4
300                 OPTS="--enable-sse"
301 %endif
302 %ifarch athlon
303                 OPTS="--enable-sse" # no "--enable-k7" - conflicts with shared, SEGV on athlons
304 %endif
305 %ifarch ppc
306                 OPTS="--enable-altivec"
307 %endif
308 %ifnarch i686 k6 athlon ppc
309                 :       # keep sh happy about syntax
310 %endif
311         fi
312 %ifarch i686 pentium4
313         # SSE2 only for double
314         if [ "$ver" = "double" -o "$ver" = "single" ]; then
315                 OPTS="--enable-sse2 --enable-avx"
316         fi
317 %endif
318 install -d build-${ver}
319 cd build-${ver}
320 ../%configure \
321         --enable-openmp \
322         --enable-shared \
323         --enable-threads \
324         --enable-$ver \
325         $OPTS \
326         --%{!?debug:dis}%{?debug:en}able-debug
327
328 %{__make}
329 cd ..
330 done
331
332 %install
333 rm -rf $RPM_BUILD_ROOT
334 install -d $RPM_BUILD_ROOT%{_sysconfdir}/fftw
335
336 for b in %{builds} ; do
337         %{__make} install -C build-${b} \
338                 DESTDIR=$RPM_BUILD_ROOT
339 done
340
341 %clean
342 rm -rf $RPM_BUILD_ROOT
343
344 %post   -p /sbin/ldconfig
345 %postun -p /sbin/ldconfig
346
347 %post   single -p /sbin/ldconfig
348 %postun single -p /sbin/ldconfig
349
350 %post   long -p /sbin/ldconfig
351 %postun long -p /sbin/ldconfig
352
353 %post   common-devel -p /sbin/postshell
354 -/usr/sbin/fix-info-dir -c %{_infodir}
355
356 %postun common-devel -p /sbin/postshell
357 -/usr/sbin/fix-info-dir -c %{_infodir}
358
359 %files
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
366 %if %{with gomp}
367 %attr(755,root,root) %{_libdir}/libfftw3_omp.so.*.*.*
368 %attr(755,root,root) %ghost %{_libdir}/libfftw3_omp.so.3
369 %endif
370 %{_mandir}/man1/fftw-wisdom.1*
371
372 %files devel
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
378 %if %{with gomp}
379 %attr(755,root,root) %{_libdir}/libfftw3_omp.so
380 %{_libdir}/libfftw3_omp.la
381 %endif
382 %{_pkgconfigdir}/fftw3.pc
383
384 %files static
385 %defattr(644,root,root,755)
386 %{_libdir}/libfftw3.a
387 %{_libdir}/libfftw3_threads.a
388 %if %{with gomp}
389 %{_libdir}/libfftw3_omp.a
390 %endif
391
392 %files single
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
399 %if %{with gomp}
400 %attr(755,root,root) %{_libdir}/libfftw3f_omp.so.*.*.*
401 %attr(755,root,root) %ghost %{_libdir}/libfftw3f_omp.so.3
402 %endif
403 %{_mandir}/man1/fftwf-wisdom.1*
404
405 %files single-devel
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
411 %if %{with gomp}
412 %attr(755,root,root) %{_libdir}/libfftw3f_omp.so
413 %{_libdir}/libfftw3f_omp.la
414 %endif
415 %{_pkgconfigdir}/fftw3f.pc
416
417 %files single-static
418 %defattr(644,root,root,755)
419 %{_libdir}/libfftw3f.a
420 %{_libdir}/libfftw3f_threads.a
421 %if %{with gomp}
422 %{_libdir}/libfftw3f_omp.a
423 %endif
424
425 %if %{with fftwl}
426 %files long
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
433 %if %{with gomp}
434 %attr(755,root,root) %{_libdir}/libfftw3l_omp.so.*.*.*
435 %attr(755,root,root) %ghost %{_libdir}/libfftw3l_omp.so.3
436 %endif
437 %{_mandir}/man1/fftwl-wisdom.1*
438
439 %files long-devel
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
445 %if %{with gomp}
446 %attr(755,root,root) %{_libdir}/libfftw3l_omp.so
447 %{_libdir}/libfftw3l_omp.la
448 %endif
449 %{_includedir}/fftw3l.f03
450 %{_pkgconfigdir}/fftw3l.pc
451
452 %files long-static
453 %defattr(644,root,root,755)
454 %{_libdir}/libfftw3l.a
455 %{_libdir}/libfftw3l_threads.a
456 %if %{with gomp}
457 %{_libdir}/libfftw3l_omp.a
458 %endif
459 %endif
460
461 %if %{with fftwq}
462 %files quad
463 %defattr(644,root,root,755)
464 %attr(755,root,root) %{_bindir}/fftwq-wisdom
465 %attr(755,root,root) %{_libdir}/libfftw3q.so.*.*.*
466 %attr(755,root,root) %ghost %{_libdir}/libfftw3q.so.3
467 %attr(755,root,root) %{_libdir}/libfftw3q_threads.so.*.*.*
468 %attr(755,root,root) %ghost %{_libdir}/libfftw3q_threads.so.3
469 %if %{with gomp}
470 %attr(755,root,root) %{_libdir}/libfftw3q_omp.so.*.*.*
471 %attr(755,root,root) %ghost %{_libdir}/libfftw3q_omp.so.3
472 %endif
473 %{_mandir}/man1/fftwq-wisdom.1*
474
475 %files quad-devel
476 %defattr(644,root,root,755)
477 %attr(755,root,root) %{_libdir}/libfftw3q.so
478 %attr(755,root,root) %{_libdir}/libfftw3q_threads.so
479 %{_libdir}/libfftw3q.la
480 %{_libdir}/libfftw3q_threads.la
481 %if %{with gomp}
482 %attr(755,root,root) %{_libdir}/libfftw3q_omp.so
483 %{_libdir}/libfftw3q_omp.la
484 %endif
485 %{_includedir}/fftw3q.f03
486 %{_pkgconfigdir}/fftw3q.pc
487
488 %files quad-static
489 %defattr(644,root,root,755)
490 %{_libdir}/libfftw3q.a
491 %{_libdir}/libfftw3q_threads.a
492 %if %{with gomp}
493 %{_libdir}/libfftw3q_omp.a
494 %endif
495 %endif
496
497 %files common
498 %defattr(644,root,root,755)
499 %doc AUTHORS COPYRIGHT ChangeLog NEWS README TODO
500 %dir %{_sysconfdir}/fftw
501 %attr(755,root,root) %{_bindir}/fftw-wisdom-to-conf
502 %{_mandir}/man1/fftw-wisdom-to-conf.1*
503
504 %files common-devel
505 %defattr(644,root,root,755)
506 %doc doc/html doc/FAQ/fftw-faq.html
507 %{_includedir}/fftw3.f
508 %{_includedir}/fftw3.f03
509 %{_includedir}/fftw3.h
510 %{_infodir}/fftw3.info*
This page took 0.166986 seconds and 3 git commands to generate.