Update to 3.3 series.

This commit is contained in:
Jussi Lehtola 2011-07-29 01:05:25 +03:00
parent 5fc959907f
commit 6648ee5d32
1 changed files with 108 additions and 68 deletions

168
fftw.spec
View File

@ -1,6 +1,6 @@
Name: fftw Name: fftw
Version: 3.2.2 Version: 3.3
Release: 5%{?dist} Release: 1%{?dist}
Summary: A Fast Fourier Transform library Summary: A Fast Fourier Transform library
Group: System Environment/Libraries Group: System Environment/Libraries
License: GPLv2+ License: GPLv2+
@ -10,28 +10,40 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gcc-gfortran BuildRequires: gcc-gfortran
# For check phase # For check phase
BuildRequires: time perl BuildRequires: time
BuildRequires: perl
Requires(post): info Requires(post): info
Requires(preun): info Requires(preun): info
Provides: fftw3 = %{version}-%{release}
Obsoletes: fftw3 < %{version}-%{release}
%description %description
FFTW is a C subroutine library for computing the Discrete Fourier FFTW is a C subroutine library for computing the Discrete Fourier
Transform (DFT) in one or more dimensions, of both real and complex Transform (DFT) in one or more dimensions, of both real and complex
data, and of arbitrary input size. data, and of arbitrary input size.
%package libs
Summary: FFTW run-time library
Group: System Environment/Libraries
Provides: fftw3 = %{version}-%{release}
Obsoletes: fftw3 < 3.3
# Libs branched from rpm containing binaries in version 3.3
Obsoletes: fftw < 3.3
%description libs
This package contains the FFTW run-time libraries.
%package devel %package devel
Summary: Headers, libraries and docs for the FFTW library Summary: Headers, libraries and docs for the FFTW library
Group: Development/Libraries Group: Development/Libraries
Requires: %{name} = %{version}-%{release} pkgconfig Requires: pkgconfig
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: fftw3-devel = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Obsoletes: fftw3-devel < %{version}-%{release} Requires: %{name}-libs-openmp%{?_isa} = %{version}-%{release}
Requires: %{name}-libs-threads%{?_isa} = %{version}-%{release}
Provides: fftw3-devel%{?_isa} = %{version}-%{release}
Obsoletes: fftw3-devel%{?_isa} < 3.3
%description devel %description devel
FFTW is a C subroutine library for computing the Discrete Fourier FFTW is a C subroutine library for computing the Discrete Fourier
@ -41,19 +53,31 @@ data, and of arbitrary input size.
This package contains header files and development libraries needed to This package contains header files and development libraries needed to
develop programs using the FFTW fast Fourier transform library. develop programs using the FFTW fast Fourier transform library.
%package libs-threads
Summary: FFTW library with threading support
Group: Development/Libraries
%description libs-threads
This package contains the FFTW library compiled with threading support.
%package libs-openmp
Summary: FFTW library with OpenMP support
Group: Development/Libraries
%description libs-openmp
This package contains the FFTW library compiled with OpenMP support.
%package static %package static
Summary: Static version of the FFTW library Summary: Static versions of the FFTW libraries
Group: Development/Libraries Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release} Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Obsoletes: fftw3-static < %{version}-%{release} Provides: fftw3-static%{?_isa} = %{version}-%{release}
Provides: fftw3-static = %{version}-%{release} Obsoletes: fftw3-static%{?_isa} < 3.3
%description static %description static
The fftw-static package contains the statically linkable version of The fftw-static package contains the statically linkable version of
the FFTW fast Fourier transform library. the FFTW fast Fourier transform library.
%package doc %package doc
Summary: FFTW library manual Summary: FFTW library manual
Group: Documentation Group: Documentation
@ -63,68 +87,62 @@ BuildArch: noarch
This package contains the manual for the FFTW fast Fourier transform This package contains the manual for the FFTW fast Fourier transform
library. library.
%prep %prep
%setup -q -c %{name}-%{version} %setup -q
for dir in single double long; do
cp -a fftw-%{version} $dir
done
rm -rf fftw-%{version}
%build %build
# Configure uses g77 by default, if present on system # Configure uses g77 by default, if present on system
export F77=gfortran export F77=gfortran
BASEFLAGS="--enable-shared --disable-dependency-tracking --enable-threads --enable-openmp"
CONFIG_FLAGS="--enable-shared --disable-dependency-tracking --enable-threads" # Precisions to build
pushd double prec_name[0]=single
%configure $CONFIG_FLAGS prec_name[1]=double
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool prec_name[2]=long
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool prec_name[3]=quad
make %{?_smp_mflags}
popd
pushd single
%configure $CONFIG_FLAGS --enable-single
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags}
popd
pushd long
%configure $CONFIG_FLAGS --enable-long-double
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags}
popd
# Corresponding flags
prec_flags[0]=--enable-single
prec_flags[1]=--enable-double
prec_flags[2]=--enable-long-double
prec_flags[3]=--enable-quad-precision
# Loop over precisions
for((iprec=0;iprec<4;iprec++)); do
mkdir ${prec_name[iprec]}${ver_name[iver]}
cd ${prec_name[iprec]}${ver_name[iver]}
ln -s ../configure .
%{configure} ${BASEFLAGS} ${prec_flags[iprec]}
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags}
cd ..
done
%install %install
rm -rf ${RPM_BUILD_ROOT} rm -rf %{buildroot}
pushd double for ver in single double long quad; do
make install DESTDIR=${RPM_BUILD_ROOT} make -C $ver install DESTDIR=%{buildroot}
cp -a AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO ../ done
cp -a doc/ ../ rm -f %{buildroot}%{_infodir}/dir
popd rm -f %{buildroot}%{_libdir}/*.la
pushd single
make install DESTDIR=${RPM_BUILD_ROOT}
popd
pushd long
make install DESTDIR=${RPM_BUILD_ROOT}
popd
rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/*.la
%check %check
bdir=`pwd` bdir=`pwd`
export LD_LIBRARY_PATH=$bdir/single/.libs:$bdir/single/threads/.libs:$bdir/double/.libs:$bdir/double/threads/.libs:$bdir/long/.libs:$bdir/long/threads/.libs for ver in single double long quad; do
make -C single check export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
make -C double check make -C $ver check
make -C long check done
%clean %clean
rm -rf ${RPM_BUILD_ROOT} rm -rf %{buildroot}
%post -p /sbin/ldconfig %post libs -p /sbin/ldconfig
%postun -p /sbin/ldconfig %postun libs -p /sbin/ldconfig
%post libs-openmp -p /sbin/ldconfig
%postun libs-openmp -p /sbin/ldconfig
%post libs-threads -p /sbin/ldconfig
%postun libs-threads -p /sbin/ldconfig
%post devel %post devel
/sbin/install-info --section="Math" %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || : /sbin/install-info --section="Math" %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || :
@ -136,10 +154,30 @@ fi
%files %files
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
%doc %{_mandir}/man1/fftw*.1.* %doc %{_mandir}/man1/fftw*.1.*
%{_bindir}/fftw*-wisdom* %{_bindir}/fftw*-wisdom*
%{_libdir}/libfftw3*.so.*
%files libs
%defattr(-,root,root,-)
%doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
%{_libdir}/libfftw3.so.*
%{_libdir}/libfftw3f.so.*
%{_libdir}/libfftw3l.so.*
%{_libdir}/libfftw3q.so.*
%files libs-openmp
%defattr(-,root,root,-)
%{_libdir}/libfftw3_omp.so.*
%{_libdir}/libfftw3f_omp.so.*
%{_libdir}/libfftw3l_omp.so.*
%{_libdir}/libfftw3q_omp.so.*
%files libs-threads
%defattr(-,root,root,-)
%{_libdir}/libfftw3_threads.so.*
%{_libdir}/libfftw3f_threads.so.*
%{_libdir}/libfftw3l_threads.so.*
%{_libdir}/libfftw3q_threads.so.*
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -157,8 +195,10 @@ fi
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_libdir}/libfftw3*.a %{_libdir}/libfftw3*.a
%changelog %changelog
* Thu Jul 28 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-1
- Update to 3.3.
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.2-5 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild