]> git.pld-linux.org Git - packages/fftw3.git/blobdiff - fftw3.spec
- up to 3.2
[packages/fftw3.git] / fftw3.spec
index 3d45545624af66952c4d6433ba984b3b8026b860..100023a03229beeadeac5d85310871c270c4cf58 100644 (file)
@@ -1,21 +1,32 @@
+#
+# Conditional build:
+%bcond_without fftwl   # don't build "long" subpackages
+#
 Summary:       Fast Fourier Transform library
-Summary(pl):   Biblioteka z funkcjami szybkiej transformaty Fouriera
-Summary(pt_BR):        biblioteca fast fourier transform
+Summary(pl.UTF-8):     Biblioteka z funkcjami szybkiej transformaty Fouriera
+Summary(pt_BR.UTF-8):  biblioteca fast fourier transform
 Name:          fftw3
-Version:       3.0.1
-Release:       2
-License:       GPL
+Version:       3.2
+Release:       1
+License:       GPL v2+
 Group:         Libraries
 Source0:       ftp://ftp.fftw.org/pub/fftw/fftw-%{version}.tar.gz
-# Source0-md5: 76cd21ecc9a7bed6343566c473c36477
+# Source0-md5: 280960ddbad368ebb96c073a2b642f5d
 Patch0:                %{name}-info.patch
 Patch1:                %{name}-link.patch
-Icon:          fftw-logo-thumb.gif
+Patch2:                %{name}-ac_simd.patch
 URL:           http://www.fftw.org/
 BuildRequires: autoconf
 BuildRequires: automake
-BuildRequires: gcc-g77
+%ifarch alpha ppc s390 s390x sparc sparcv9
+%if %{with fftwl}
+# for 128-bit long double support
+BuildRequires: gcc-fortran >= 5:4.1.0-1
+BuildRequires: glibc >= 6:2.4-1
+%endif
+%endif
 BuildRequires: libtool
+BuildRequires: texinfo
 Requires:      %{name}-common = %{version}-%{release}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -26,26 +37,26 @@ real, and parallel transforms, and can handle arbitrary array sizes
 efficiently. This RPM package includes the double precision FFTW
 uniprocessor and threads libraries.
 
-%description -l pl
+%description -l pl.UTF-8
 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
-transformat Fouriera w jednym lub wiêcej wymiarach. Zawiera równie¿
-zespolone, rzeczywiste oraz równoleg³e transformaty i potrafi wydajnie
-radziæ sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
-zawiera wersje FFTW o podwójnej precyzji dla architektur
-jednoprocesorowych oraz z obs³ug± w±tków.
-
-%description -l pt_BR
-FFTW é uma coleção de rotinas rápidas em C para computar a Discrete
-Fourier Transform em uma ou mais dimensões. Incluindo transformações
-complexas, reais e paralelas, também pode manipular vetores de tamanho
-arbitrário eficientemente. Esse pacote RPM inclui bibliotecas FFTW com
-suporte a threads, normal e dupla precisão (Os arquivos de precisão
+transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
+zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
+radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
+zawiera wersje FFTW o podwójnej precyzji dla architektur
+jednoprocesorowych oraz z obsługą wątków.
+
+%description -l pt_BR.UTF-8
+FFTW é uma coleção de rotinas rápidas em C para computar a Discrete
+Fourier Transform em uma ou mais dimensões. Incluindo transformações
+complexas, reais e paralelas, também pode manipular vetores de tamanho
+arbitrário eficientemente. Esse pacote RPM inclui bibliotecas FFTW com
+suporte a threads, normal e dupla precisão (Os arquivos de precisão
 normal tem um prefixo "s").
 
 %package devel
 Summary:       Development files for fftw
-Summary(pl):   Pliki programistyczne do fftw
-Summary(pt_BR):        Headers e documentação do pacote FFTW
+Summary(pl.UTF-8):     Pliki programistyczne do fftw
+Summary(pt_BR.UTF-8):  Headers e documentação do pacote FFTW
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
 Requires:      %{name}-common-devel = %{version}-%{release}
@@ -54,33 +65,33 @@ Requires:   %{name}-common-devel = %{version}-%{release}
 This package contains the files you need to develop programs using the
 FFTW (fast fourier transform library).
 
-%description devel -l pl
-Ten pakiet zawiera pliki potrzebne do tworzenia programów u¿ywaj±cych
-biblioteki FFTW (wykonuj±cej szybk± transformatê Fouriera).
+%description devel -l pl.UTF-8
+Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
+biblioteki FFTW (wykonującej szybką transformatę Fouriera).
 
-%description devel -l pt_BR
-Este pacote contém documentação e headers adicionais para desenvolver
+%description devel -l pt_BR.UTF-8
+Este pacote contém documentação e headers adicionais para desenvolver
 programas usando a FFTW.
 
 %package static
 Summary:       Static fftw libraries
-Summary(pl):   Statyczne biblioteki fftw
-Summary(pt_BR):        Bibliotecas estáticas do pacote FFTW
+Summary(pl.UTF-8):     Statyczne biblioteki fftw
+Summary(pt_BR.UTF-8):  Bibliotecas estáticas do pacote FFTW
 Group:         Development/Libraries
 Requires:      %{name}-devel = %{version}-%{release}
 
 %description static
 Static fftw libraries.
 
-%description static -l pl
+%description static -l pl.UTF-8
 Statyczne biblioteki fftw.
 
-%description static -l pt_BR
-Este pacote contém as bibliotecas estáticas do pacote FFTW.
+%description static -l pt_BR.UTF-8
+Este pacote contém as bibliotecas estáticas do pacote FFTW.
 
 %package single
 Summary:       Fast Fourier Transform library - single precision
-Summary(pl):   Biblioteka z funkcjami szybkiej transformaty Fouriera - pojedynczej precyzji
+Summary(pl.UTF-8):     Biblioteka z funkcjami szybkiej transformaty Fouriera - pojedynczej precyzji
 Group:         Libraries
 Requires:      %{name}-common = %{version}-%{release}
 
@@ -91,17 +102,17 @@ real, and parallel transforms, and can handle arbitrary array sizes
 efficiently. This RPM package includes the single precision FFTW
 uniprocessor and threads libraries.
 
-%description single -l pl
+%description single -l pl.UTF-8
 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
-transformat Fouriera w jednym lub wiêcej wymiarach. Zawiera równie¿
-zespolone, rzeczywiste oraz równoleg³e transformaty i potrafi wydajnie
-radziæ sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
+transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
+zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
+radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
 zawiera wersje FFTW o pojedynczej precyzji dla architektur
-jednoprocesorowych oraz z obs³ug± w±tków.
+jednoprocesorowych oraz z obsługą wątków.
 
 %package single-devel
 Summary:       Development files for single precision fftw
-Summary(pl):   Pliki programistyczne do fftw pojedynczej precyzji
+Summary(pl.UTF-8):     Pliki programistyczne do fftw pojedynczej precyzji
 Group:         Development/Libraries
 Requires:      %{name}-common-devel = %{version}-%{release}
 Requires:      %{name}-single = %{version}-%{release}
@@ -110,26 +121,26 @@ Requires: %{name}-single = %{version}-%{release}
 This package contains the files you need to develop programs using the
 single precision FFTW (fast fourier transform library).
 
-%description single-devel -l pl
-Ten pakiet zawiera pliki potrzebne do tworzenia programów u¿ywaj±cych
-biblioteki FFTW pojedynczej precyzji (wykonuj±cej szybk± transformatê
+%description single-devel -l pl.UTF-8
+Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
+biblioteki FFTW pojedynczej precyzji (wykonującej szybką transformatę
 Fouriera).
 
 %package single-static
 Summary:       Static fftw single precision libraries
-Summary(pl):   Statyczne biblioteki fftw pojedynczej precyzji
+Summary(pl.UTF-8):     Statyczne biblioteki fftw pojedynczej precyzji
 Group:         Development/Libraries
 Requires:      %{name}-single-devel = %{version}-%{release}
 
 %description single-static
 Static fftw single precision libraries.
 
-%description single-static -l pl
+%description single-static -l pl.UTF-8
 Statyczne biblioteki fftw pojedynczej precyzji.
 
 %package long
 Summary:       Fast Fourier Transform library - long double precision
-Summary(pl):   Biblioteka z funkcjami szybkiej transformaty Fouriera - rozszerzonej precyzji
+Summary(pl.UTF-8):     Biblioteka z funkcjami szybkiej transformaty Fouriera - rozszerzonej precyzji
 Group:         Libraries
 Requires:      %{name}-common = %{version}-%{release}
 
@@ -140,17 +151,17 @@ real, and parallel transforms, and can handle arbitrary array sizes
 efficiently. This RPM package includes the long double precision FFTW
 uniprocessor and threads libraries.
 
-%description long -l pl
+%description long -l pl.UTF-8
 FFTW jest zbiorem szybkich funkcji C do obliczania dyskretnych
-transformat Fouriera w jednym lub wiêcej wymiarach. Zawiera równie¿
-zespolone, rzeczywiste oraz równoleg³e transformaty i potrafi wydajnie
-radziæ sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
+transformat Fouriera w jednym lub więcej wymiarach. Zawiera również
+zespolone, rzeczywiste oraz równoległe transformaty i potrafi wydajnie
+radzić sobie z tablicami o dowolnych rozmiarach. Ten pakiet RPM
 zawiera wersje FFTW o rozszerzonej precyzji dla architektur
-jednoprocesorowych oraz z obs³ug± w±tków.
+jednoprocesorowych oraz z obsługą wątków.
 
 %package long-devel
 Summary:       Development files for long double precision fftw
-Summary(pl):   Pliki programistyczne do fftw rozszerzonej precyzji
+Summary(pl.UTF-8):     Pliki programistyczne do fftw rozszerzonej precyzji
 Group:         Development/Libraries
 Requires:      %{name}-common-devel = %{version}-%{release}
 Requires:      %{name}-long = %{version}-%{release}
@@ -159,39 +170,39 @@ Requires: %{name}-long = %{version}-%{release}
 This package contains the files you need to develop programs using the
 long double precision FFTW (fast fourier transform library).
 
-%description long-devel -l pl
-Ten pakiet zawiera pliki potrzebne do tworzenia programów u¿ywaj±cych
-biblioteki FFTW rozszerzonej precyzji (wykonuj±cej szybk± transformatê
+%description long-devel -l pl.UTF-8
+Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
+biblioteki FFTW rozszerzonej precyzji (wykonującej szybką transformatę
 Fouriera).
 
 %package long-static
 Summary:       Static fftw long double precision libraries
-Summary(pl):   Statyczne biblioteki fftw rozszerzonej precyzji
+Summary(pl.UTF-8):     Statyczne biblioteki fftw rozszerzonej precyzji
 Group:         Development/Libraries
 Requires:      %{name}-long-devel = %{version}-%{release}
 
 %description long-static
 Static fftw long double precision libraries.
 
-%description long-static -l pl
+%description long-static -l pl.UTF-8
 Statyczne biblioteki fftw rozszerzonej precyzji.
 
 %package common
 Summary:       Files common for all versions of fftw libraries
-Summary(pl):   Pliki wspólne dla wszystkich wersji bibliotek fftw
+Summary(pl.UTF-8):     Pliki wspólne dla wszystkich wersji bibliotek fftw
 Group:         Libraries
 
 %description common
 Files common for all versions of fftw libraries (basic documentation,
 fftw-wisdom-to-conf utility).
 
-%description common -l pl
-Pliki wspólne dla wszystkich wersji bibliotek fftw (podstawowa
-dokumentacja, narzêdzie fftw-wisdom-to-conf).
+%description common -l pl.UTF-8
+Pliki wspólne dla wszystkich wersji bibliotek fftw (podstawowa
+dokumentacja, narzędzie fftw-wisdom-to-conf).
 
 %package common-devel
 Summary:       Development files common for all versions of fftw libraries
-Summary(pl):   Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
+Summary(pl.UTF-8):     Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
 Group:         Development/Libraries
 Requires:      %{name}-common = %{version}-%{release}
 
@@ -199,46 +210,37 @@ Requires: %{name}-common = %{version}-%{release}
 Development files common for all versions of fftw libraries (header
 files, development documentation).
 
-%description common-devel -l pl
-Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
-(pliki nag³ówkowe, dokumentacja programisty).
+%description common-devel -l pl.UTF-8
+Pliki programistyczne wspólne dla wszystkich wersji bibliotek fftw
+(pliki nagłówkowe, dokumentacja programisty).
 
 %prep
 %setup -q -n fftw-%{version}
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %build
 %{__libtoolize}
-%{__aclocal}
+%{__aclocal} -I m4
 %{__autoconf}
 %{__automake}
 
-# prepare three trees (for single, double, long-double precision)
-echo * > files.list
-install -d single long-double
-cp -a `cat files.list` single
-cp -a `cat files.list` long-double
-ln -sf . double
-
 # MMX/SSE/etc. seem to be safe because of runtime CPU detection
-for ver in single double long-double ; do
+for ver in single double %{?with_fftwl:long-double}; do
        OPTS=""
        # k7,SSE,3dnow,altivec only for single
        if [ "$ver" = "single" ]; then
-%ifarch i586 k6
-               OPTS="--enable-3dnow"
-%endif
 %ifarch i686
                OPTS="--enable-sse"
 %endif
 %ifarch athlon
-               OPTS="--enable-sse" # "--enable-k7" disabled - causes SEGV on athlons
+               OPTS="--enable-sse" # no "--enable-k7" - conflicts with shared, SEGV on athlons
 %endif
 %ifarch ppc
                OPTS="--enable-altivec"
 %endif
-%ifnarch i586 i686 k6 athlon ppc
+%ifnarch i686 k6 athlon ppc
                :       # keep sh happy about syntax
 %endif
        fi
@@ -248,8 +250,9 @@ for ver in single double long-double ; do
                OPTS="--enable-sse2"
        fi
 %endif
-cd $ver
-%configure \
+install -d build-${ver}
+cd build-${ver}
+../%configure \
        --enable-shared \
        --enable-threads \
        --enable-$ver \
@@ -257,21 +260,22 @@ cd $ver
        --%{!?debug:dis}%{?debug:en}able-debug
 
 %{__make}
-
 cd ..
 done
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-%{__make} install \
+%{__make} install -C build-single \
        DESTDIR=$RPM_BUILD_ROOT
 
-%{__make} install -C single \
+%{__make} install -C build-double \
        DESTDIR=$RPM_BUILD_ROOT
 
-%{__make} install -C long-double\
+%if %{with fftwl}
+%{__make} install -C build-long-double \
        DESTDIR=$RPM_BUILD_ROOT
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -279,17 +283,25 @@ rm -rf $RPM_BUILD_ROOT
 %post  -p /sbin/ldconfig
 %postun        -p /sbin/ldconfig
 
-%post common-devel
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post  single -p /sbin/ldconfig
+%postun        single -p /sbin/ldconfig
+
+%post  long -p /sbin/ldconfig
+%postun        long -p /sbin/ldconfig
 
-%postun common-devel
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post common-devel     -p      /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun common-devel   -p      /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
 
 %files
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/fftw-wisdom
 %attr(755,root,root) %{_libdir}/libfftw3.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3.so.3
 %attr(755,root,root) %{_libdir}/libfftw3_threads.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3_threads.so.3
 %{_mandir}/man1/fftw-wisdom.1*
 
 %files devel
@@ -309,7 +321,9 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/fftwf-wisdom
 %attr(755,root,root) %{_libdir}/libfftw3f.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3f.so.3
 %attr(755,root,root) %{_libdir}/libfftw3f_threads.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3f_threads.so.3
 %{_mandir}/man1/fftwf-wisdom.1*
 
 %files single-devel
@@ -325,11 +339,14 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libfftw3f.a
 %{_libdir}/libfftw3f_threads.a
 
+%if %{with fftwl}
 %files long
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/fftwl-wisdom
 %attr(755,root,root) %{_libdir}/libfftw3l.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3l.so.3
 %attr(755,root,root) %{_libdir}/libfftw3l_threads.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3l_threads.so.3
 %{_mandir}/man1/fftwl-wisdom.1*
 
 %files long-devel
@@ -344,6 +361,7 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %{_libdir}/libfftw3l.a
 %{_libdir}/libfftw3l_threads.a
+%endif
 
 %files common
 %defattr(644,root,root,755)
@@ -354,5 +372,6 @@ rm -rf $RPM_BUILD_ROOT
 %files common-devel
 %defattr(644,root,root,755)
 %doc doc/html doc/FAQ/fftw-faq.html
-%{_includedir}/fftw3.*
+%{_includedir}/fftw3.f
+%{_includedir}/fftw3.h
 %{_infodir}/fftw3.info*
This page took 0.088454 seconds and 4 git commands to generate.