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