Support builds on older distros as well.
This commit is contained in:
parent
5c203d6f92
commit
13faf53823
76
fftw.spec
76
fftw.spec
@ -1,6 +1,6 @@
|
|||||||
Name: fftw
|
Name: fftw
|
||||||
Version: 3.3
|
Version: 3.3
|
||||||
Release: 1%{?dist}
|
Release: 2%{?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+
|
||||||
@ -8,7 +8,22 @@ URL: http://www.fftw.org
|
|||||||
Source0: http://www.fftw.org/fftw-%{version}.tar.gz
|
Source0: http://www.fftw.org/fftw-%{version}.tar.gz
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
|
# OpenMP support not available on RHEL 4
|
||||||
|
%if 0%{?rhel} == 4
|
||||||
|
BuildRequires: gcc-g77
|
||||||
|
%global openmp 0
|
||||||
|
%else
|
||||||
BuildRequires: gcc-gfortran
|
BuildRequires: gcc-gfortran
|
||||||
|
%global openmp 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Quad precision support only available with gcc >= 4.6
|
||||||
|
%if 0%{?fedora} >= 15
|
||||||
|
%global quad 1
|
||||||
|
%else
|
||||||
|
%global quad 0
|
||||||
|
%endif
|
||||||
|
|
||||||
# For check phase
|
# For check phase
|
||||||
BuildRequires: time
|
BuildRequires: time
|
||||||
BuildRequires: perl
|
BuildRequires: perl
|
||||||
@ -39,9 +54,10 @@ Group: Development/Libraries
|
|||||||
Requires: pkgconfig
|
Requires: pkgconfig
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||||
Requires: %{name}-libs-openmp%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: %{name}-libs-threads%{?_isa} = %{version}-%{release}
|
Requires: %{name}-libs-threads%{?_isa} = %{version}-%{release}
|
||||||
|
%if %{openmp}
|
||||||
|
Requires: %{name}-libs-openmp%{?_isa} = %{version}-%{release}
|
||||||
|
%endif
|
||||||
Provides: fftw3-devel%{?_isa} = %{version}-%{release}
|
Provides: fftw3-devel%{?_isa} = %{version}-%{release}
|
||||||
Obsoletes: fftw3-devel%{?_isa} < 3.3
|
Obsoletes: fftw3-devel%{?_isa} < 3.3
|
||||||
|
|
||||||
@ -60,12 +76,14 @@ Group: Development/Libraries
|
|||||||
%description libs-threads
|
%description libs-threads
|
||||||
This package contains the FFTW library compiled with threading support.
|
This package contains the FFTW library compiled with threading support.
|
||||||
|
|
||||||
|
%if %{openmp}
|
||||||
%package libs-openmp
|
%package libs-openmp
|
||||||
Summary: FFTW library with OpenMP support
|
Summary: FFTW library with OpenMP support
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
|
|
||||||
%description libs-openmp
|
%description libs-openmp
|
||||||
This package contains the FFTW library compiled with OpenMP support.
|
This package contains the FFTW library compiled with OpenMP support.
|
||||||
|
%endif
|
||||||
|
|
||||||
%package static
|
%package static
|
||||||
Summary: Static versions of the FFTW libraries
|
Summary: Static versions of the FFTW libraries
|
||||||
@ -81,7 +99,9 @@ the FFTW fast Fourier transform library.
|
|||||||
%package doc
|
%package doc
|
||||||
Summary: FFTW library manual
|
Summary: FFTW library manual
|
||||||
Group: Documentation
|
Group: Documentation
|
||||||
|
%if 0%{?rhel} > 5 || 0%{?fedora} > 12
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
%endif
|
||||||
|
|
||||||
%description doc
|
%description doc
|
||||||
This package contains the manual for the FFTW fast Fourier transform
|
This package contains the manual for the FFTW fast Fourier transform
|
||||||
@ -91,9 +111,18 @@ library.
|
|||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
%if 0%{?rhel} == 4
|
||||||
|
# System fortran compiler is g77
|
||||||
|
export F77=g77
|
||||||
|
%else
|
||||||
# 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"
|
%endif
|
||||||
|
|
||||||
|
BASEFLAGS="--enable-shared --disable-dependency-tracking --enable-threads"
|
||||||
|
%if %{openmp}
|
||||||
|
BASEFLAGS="$BASEFLAGS --enable-openmp"
|
||||||
|
%endif
|
||||||
|
|
||||||
# Precisions to build
|
# Precisions to build
|
||||||
prec_name[0]=single
|
prec_name[0]=single
|
||||||
@ -108,7 +137,12 @@ prec_flags[2]=--enable-long-double
|
|||||||
prec_flags[3]=--enable-quad-precision
|
prec_flags[3]=--enable-quad-precision
|
||||||
|
|
||||||
# Loop over precisions
|
# Loop over precisions
|
||||||
for((iprec=0;iprec<4;iprec++)); do
|
%if %{quad}
|
||||||
|
for((iprec=0;iprec<4;iprec++))
|
||||||
|
%else
|
||||||
|
for((iprec=0;iprec<3;iprec++))
|
||||||
|
%endif
|
||||||
|
do
|
||||||
mkdir ${prec_name[iprec]}${ver_name[iver]}
|
mkdir ${prec_name[iprec]}${ver_name[iver]}
|
||||||
cd ${prec_name[iprec]}${ver_name[iver]}
|
cd ${prec_name[iprec]}${ver_name[iver]}
|
||||||
ln -s ../configure .
|
ln -s ../configure .
|
||||||
@ -121,7 +155,12 @@ done
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
for ver in single double long quad; do
|
%if %{quad}
|
||||||
|
for ver in single double long quad
|
||||||
|
%else
|
||||||
|
for ver in single double long
|
||||||
|
%endif
|
||||||
|
do
|
||||||
make -C $ver install DESTDIR=%{buildroot}
|
make -C $ver install DESTDIR=%{buildroot}
|
||||||
done
|
done
|
||||||
rm -f %{buildroot}%{_infodir}/dir
|
rm -f %{buildroot}%{_infodir}/dir
|
||||||
@ -129,7 +168,12 @@ rm -f %{buildroot}%{_libdir}/*.la
|
|||||||
|
|
||||||
%check
|
%check
|
||||||
bdir=`pwd`
|
bdir=`pwd`
|
||||||
for ver in single double long quad; do
|
%if %{quad}
|
||||||
|
for ver in single double long quad
|
||||||
|
%else
|
||||||
|
for ver in single double long
|
||||||
|
%endif
|
||||||
|
do
|
||||||
export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
|
export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
|
||||||
make -C $ver check
|
make -C $ver check
|
||||||
done
|
done
|
||||||
@ -139,10 +183,12 @@ rm -rf %{buildroot}
|
|||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%post libs -p /sbin/ldconfig
|
||||||
%postun libs -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
|
%post libs-threads -p /sbin/ldconfig
|
||||||
%postun libs-threads -p /sbin/ldconfig
|
%postun libs-threads -p /sbin/ldconfig
|
||||||
|
%if %{openmp}
|
||||||
|
%post libs-openmp -p /sbin/ldconfig
|
||||||
|
%postun libs-openmp -p /sbin/ldconfig
|
||||||
|
%endif
|
||||||
|
|
||||||
%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 || :
|
||||||
@ -163,21 +209,29 @@ fi
|
|||||||
%{_libdir}/libfftw3.so.*
|
%{_libdir}/libfftw3.so.*
|
||||||
%{_libdir}/libfftw3f.so.*
|
%{_libdir}/libfftw3f.so.*
|
||||||
%{_libdir}/libfftw3l.so.*
|
%{_libdir}/libfftw3l.so.*
|
||||||
|
%if %{quad}
|
||||||
%{_libdir}/libfftw3q.so.*
|
%{_libdir}/libfftw3q.so.*
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{openmp}
|
||||||
%files libs-openmp
|
%files libs-openmp
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_libdir}/libfftw3_omp.so.*
|
%{_libdir}/libfftw3_omp.so.*
|
||||||
%{_libdir}/libfftw3f_omp.so.*
|
%{_libdir}/libfftw3f_omp.so.*
|
||||||
%{_libdir}/libfftw3l_omp.so.*
|
%{_libdir}/libfftw3l_omp.so.*
|
||||||
|
%if %{quad}
|
||||||
%{_libdir}/libfftw3q_omp.so.*
|
%{_libdir}/libfftw3q_omp.so.*
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%files libs-threads
|
%files libs-threads
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_libdir}/libfftw3_threads.so.*
|
%{_libdir}/libfftw3_threads.so.*
|
||||||
%{_libdir}/libfftw3f_threads.so.*
|
%{_libdir}/libfftw3f_threads.so.*
|
||||||
%{_libdir}/libfftw3l_threads.so.*
|
%{_libdir}/libfftw3l_threads.so.*
|
||||||
|
%if %{quad}
|
||||||
%{_libdir}/libfftw3q_threads.so.*
|
%{_libdir}/libfftw3q_threads.so.*
|
||||||
|
%endif
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
@ -196,6 +250,10 @@ fi
|
|||||||
%{_libdir}/libfftw3*.a
|
%{_libdir}/libfftw3*.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Jul 30 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-2
|
||||||
|
- Conditionalize OpenMP and quadruple precision support based on capabilities
|
||||||
|
of system compiler.
|
||||||
|
|
||||||
* Thu Jul 28 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-1
|
* Thu Jul 28 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-1
|
||||||
- Update to 3.3.
|
- Update to 3.3.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user