cvsextras d214c43
Name:           fftw
47ae497
Version:        3.3.4
df626c8
Release:        5%{?dist}
6d2e43d
Summary:        A Fast Fourier Transform library
cvsextras d214c43
Group:          System Environment/Libraries
42271e1
License:        GPLv2+
6d2e43d
URL:            http://www.fftw.org
19c232e
Source0:        http://www.fftw.org/fftw-%{version}.tar.gz
cvsextras 1cdce07
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
84985df
BuildRequires:  gcc-gfortran
13faf53
9984a10
%global quad 0
aa01c17
# Quad precision support only available with gcc >= 4.6 (Fedora >= 15)
9984a10
# and only on these arches
9984a10
%ifarch %{ix86} x86_64 ia64
13faf53
%global quad 1
9984a10
%endif
13faf53
6d2e43d
# For check phase
6648ee5
BuildRequires:  time
6648ee5
BuildRequires:  perl
6d2e43d
19c232e
Requires(post): info 
19c232e
Requires(preun): info
cvsextras 556f856
Quentin Spencer ac059f3
cvsextras d214c43
%description
Quentin Spencer e72406d
FFTW is a C subroutine library for computing the Discrete Fourier
Quentin Spencer e72406d
Transform (DFT) in one or more dimensions, of both real and complex
Quentin Spencer e72406d
data, and of arbitrary input size.
cvsextras d214c43
6648ee5
%package libs
6648ee5
Summary:        FFTW run-time library
6648ee5
Group:          System Environment/Libraries
6648ee5
Provides:       fftw3 = %{version}-%{release}
f438aee
# Libs rearranged in 3.3.1-2
47ae497
Obsoletes:      fftw-libs-threads < %{version}-%{release}
47ae497
Obsoletes:      fftw-libs-openmp < %{version}-%{release}
f438aee
f438aee
# Pull in the actual libraries
47ae497
Requires:        %{name}-libs-single%{?_isa} = %{version}-%{release}
47ae497
Requires:        %{name}-libs-double%{?_isa} = %{version}-%{release}
47ae497
Requires:        %{name}-libs-long%{?_isa} = %{version}-%{release}
f438aee
%if %{quad}
47ae497
Requires:        %{name}-libs-quad%{?_isa} = %{version}-%{release}
f438aee
%endif
6648ee5
6648ee5
%description libs
f438aee
This is a dummy package package, pulling in the individual FFTW
f438aee
run-time libraries.
f438aee
cvsextras 1cdce07
6648ee5
%package devel
4844003
Summary:        Headers, libraries and docs for the FFTW library
cvsextras 1cdce07
Group:          Development/Libraries
6648ee5
Requires:       pkgconfig
6648ee5
Requires:       %{name}%{?_isa} = %{version}-%{release}
6648ee5
Requires:       %{name}-libs%{?_isa} = %{version}-%{release}
6648ee5
Provides:       fftw3-devel%{?_isa} = %{version}-%{release}
5be03a0
Provides:       fftw3-devel = %{version}-%{release}
Quentin Spencer ac059f3
6648ee5
%description devel
Quentin Spencer e72406d
FFTW is a C subroutine library for computing the Discrete Fourier
Quentin Spencer e72406d
Transform (DFT) in one or more dimensions, of both real and complex
Quentin Spencer e72406d
data, and of arbitrary input size.
cvsextras d214c43
cvsextras d214c43
This package contains header files and development libraries needed to
cvsextras d214c43
develop programs using the FFTW fast Fourier transform library.
cvsextras d214c43
f438aee
%package libs-double
f438aee
Summary:        FFTW library, double precision
6648ee5
Group:          Development/Libraries
6648ee5
f438aee
%description libs-double
f438aee
This package contains the FFTW library compiled in double precision.
6648ee5
f438aee
%package libs-single
f438aee
Summary:        FFTW library, single precision
f438aee
Group:          Development/Libraries
f438aee
f438aee
%description libs-single
f438aee
This package contains the FFTW library compiled in single precision.
f438aee
f438aee
%package libs-long
f438aee
Summary:        FFTW library, long double precision 
f438aee
Group:          Development/Libraries
f438aee
f438aee
%description libs-long
f438aee
This package contains the FFTW library compiled in long double
f438aee
precision.
f438aee
f438aee
%if %{quad}
f438aee
%package libs-quad
f438aee
Summary:        FFTW library, quadruple
6648ee5
Group:          Development/Libraries
6648ee5
f438aee
%description libs-quad
f438aee
This package contains the FFTW library compiled in quadruple
f438aee
precision.
13faf53
%endif
cvsextras 1cdce07
Quentin Spencer 23d4f74
%package        static
6648ee5
Summary:        Static versions of the FFTW libraries
Quentin Spencer 23d4f74
Group:          Development/Libraries
6648ee5
Requires:       %{name}-devel%{?_isa} = %{version}-%{release}
6648ee5
Provides:       fftw3-static%{?_isa} = %{version}-%{release}
5be03a0
Provides:       fftw3-static = %{version}-%{release}
Quentin Spencer 23d4f74
6648ee5
%description static
Quentin Spencer 23d4f74
The fftw-static package contains the statically linkable version of
Quentin Spencer 23d4f74
the FFTW fast Fourier transform library.
Quentin Spencer 23d4f74
6648ee5
%package doc
993b801
Summary:        FFTW library manual
993b801
Group:          Documentation
993b801
BuildArch:      noarch
993b801
993b801
%description doc
993b801
This package contains the manual for the FFTW fast Fourier transform
993b801
library.
993b801
cvsextras d214c43
%prep
6648ee5
%setup -q
cvsextras 1cdce07
cvsextras d214c43
%build
6d2e43d
# Configure uses g77 by default, if present on system
19c232e
export F77=gfortran
13faf53
13faf53
BASEFLAGS="--enable-shared --disable-dependency-tracking --enable-threads"
2d89aca
BASEFLAGS+=" --enable-openmp"
6648ee5
6648ee5
# Precisions to build
6648ee5
prec_name[0]=single
6648ee5
prec_name[1]=double
6648ee5
prec_name[2]=long
6648ee5
prec_name[3]=quad
6648ee5
6648ee5
# Corresponding flags
6648ee5
prec_flags[0]=--enable-single
6648ee5
prec_flags[1]=--enable-double
6648ee5
prec_flags[2]=--enable-long-double
6648ee5
prec_flags[3]=--enable-quad-precision
6648ee5
5e1dd96
%ifarch x86_64
5e1dd96
# Enable SSE2 and AVX support for x86_64
2d89aca
for((i=0;i<2;i++)); do
Conrad Meyer 7b518bf
 prec_flags[i]+=" --enable-sse2 --enable-avx"
2d89aca
done
2d89aca
%endif
2d89aca
310c967
# No NEON run time detection, not all ARM SoCs have NEON
310c967
#%ifarch %{arm}
310c967
## Compile support for NEON instructions
310c967
#for((i=0;i<2;i++)); do
310c967
# prec_flags[i]+=" --enable-neon"
310c967
#done
310c967
#%endif
077ae7a
d2d0f9c
#%ifarch ppc ppc64
d2d0f9c
## Compile support for Altivec instructions
d2d0f9c
#for((i=0;i<2;i++)); do
d2d0f9c
 #prec_flags[i]+=" --enable-altivec"
d2d0f9c
#done
d2d0f9c
#%endif
077ae7a
6648ee5
# Loop over precisions
13faf53
%if %{quad}
13faf53
for((iprec=0;iprec<4;iprec++))
13faf53
%else
13faf53
for((iprec=0;iprec<3;iprec++))
13faf53
%endif
13faf53
do
6648ee5
 mkdir ${prec_name[iprec]}${ver_name[iver]}
6648ee5
 cd ${prec_name[iprec]}${ver_name[iver]}
6648ee5
 ln -s ../configure .
6648ee5
 %{configure} ${BASEFLAGS} ${prec_flags[iprec]}
6648ee5
 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
6648ee5
 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
6648ee5
 make %{?_smp_mflags}
6648ee5
 cd ..
6648ee5
done
cvsextras 1cdce07
cvsextras d214c43
%install
6648ee5
rm -rf %{buildroot}
13faf53
%if %{quad}
13faf53
for ver in single double long quad
13faf53
%else
13faf53
for ver in single double long
13faf53
%endif
13faf53
do
6648ee5
 make -C $ver install DESTDIR=%{buildroot}
6648ee5
done
6648ee5
rm -f %{buildroot}%{_infodir}/dir
6648ee5
rm -f %{buildroot}%{_libdir}/*.la
cvsextras d214c43
6d2e43d
%check
c128117
bdir=`pwd`
13faf53
%if %{quad}
13faf53
for ver in single double long quad
13faf53
%else
13faf53
for ver in single double long
13faf53
%endif
13faf53
do 
6648ee5
 export LD_LIBRARY_PATH=$bdir/$ver/.libs:$bdir/$ver/threads/.libs
6648ee5
 make -C $ver check
6648ee5
done
cvsextras d214c43
cvsextras d214c43
%clean
6648ee5
rm -rf %{buildroot}
cvsextras 1cdce07
f438aee
%post libs-single -p /sbin/ldconfig
f438aee
%postun libs-single -p /sbin/ldconfig
f438aee
%post libs-double -p /sbin/ldconfig
f438aee
%postun libs-double -p /sbin/ldconfig
f438aee
%post libs-long -p /sbin/ldconfig
f438aee
%postun libs-long -p /sbin/ldconfig
f438aee
%if %{quad}
f438aee
%post libs-quad -p /sbin/ldconfig
f438aee
%postun libs-quad -p /sbin/ldconfig
13faf53
%endif
cvsextras d214c43
Quentin Spencer e72406d
%post devel
Quentin Spencer e72406d
/sbin/install-info --section="Math" %{_infodir}/%{name}.info.gz %{_infodir}/dir  2>/dev/null || :
Quentin Spencer e72406d
Quentin Spencer e72406d
%preun devel
Quentin Spencer e72406d
if [ "$1" = 0 ]; then
Quentin Spencer e72406d
  /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || :
Quentin Spencer e72406d
fi
Quentin Spencer e72406d
cvsextras d214c43
%files
cvsextras d214c43
%defattr(-,root,root,-)
19c232e
%doc %{_mandir}/man1/fftw*.1.*
19c232e
%{_bindir}/fftw*-wisdom*
6648ee5
6648ee5
%files libs
6648ee5
%defattr(-,root,root,-)
f438aee
f438aee
%files libs-single
f438aee
%defattr(-,root,root,-)
6648ee5
%doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
6648ee5
%{_libdir}/libfftw3f.so.*
f438aee
%{_libdir}/libfftw3f_threads.so.*
f438aee
%{_libdir}/libfftw3f_omp.so.*
6648ee5
f438aee
%files libs-double
6648ee5
%defattr(-,root,root,-)
f438aee
%doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
f438aee
%{_libdir}/libfftw3.so.*
f438aee
%{_libdir}/libfftw3_threads.so.*
6648ee5
%{_libdir}/libfftw3_omp.so.*
6648ee5
f438aee
%files libs-long
6648ee5
%defattr(-,root,root,-)
f438aee
%doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
f438aee
%{_libdir}/libfftw3l.so.*
6648ee5
%{_libdir}/libfftw3l_threads.so.*
f438aee
%{_libdir}/libfftw3l_omp.so.*
f438aee
13faf53
%if %{quad}
f438aee
%files libs-quad
f438aee
%defattr(-,root,root,-)
f438aee
%doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
f438aee
%{_libdir}/libfftw3q.so.*
6648ee5
%{_libdir}/libfftw3q_threads.so.*
f438aee
%{_libdir}/libfftw3q_omp.so.*
f438aee
%endif
cvsextras d214c43
cvsextras d214c43
%files devel
cvsextras d214c43
%defattr(-,root,root,-)
535dd3a
%doc doc/FAQ/fftw-faq.html/
19c232e
%doc %{_infodir}/fftw3.info*
6be7255
%{_includedir}/fftw3*
19c232e
%{_libdir}/pkgconfig/fftw3*.pc
19c232e
%{_libdir}/libfftw3*.so
cvsextras d214c43
535dd3a
%files doc
535dd3a
%defattr(-,root,root,-)
535dd3a
%doc doc/*.pdf doc/html/
535dd3a
Quentin Spencer 23d4f74
%files static
Quentin Spencer 23d4f74
%defattr(-,root,root,-)
19c232e
%{_libdir}/libfftw3*.a
Quentin Spencer 23d4f74
cvsextras d214c43
%changelog
df626c8
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.4-5
df626c8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
df626c8
5e1dd96
* Fri Jul  4 2014 Peter Robinson <pbrobinson@fedoraproject.org> 3.3.4-4
5e1dd96
- Disable SSE2/AVX on x86(32) as we support Pentium Pro as base
5e1dd96
- SSE2 only arrived with P-4
5e1dd96
- https://fedoraproject.org/wiki/Features/F12X86Support
5e1dd96
- Fix ARM macro
310c967
- Disable NEON on ARM (we don't enable by default, needs runtime detection)
5e1dd96
Conrad Meyer 7b518bf
* Thu Jul 03 2014 Conrad Meyer <cemeyer@uw.edu> - 3.3.4-3
Conrad Meyer 7b518bf
- Build with --enable-avx (rhbz# 1114964)
Conrad Meyer 7b518bf
fe2057e
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.4-2
fe2057e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
fe2057e
47ae497
* Tue Mar 18 2014 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.4-1
47ae497
- Update to 3.3.4.
47ae497
aa01c17
* Sat Dec 14 2013 Conrad Meyer <cemeyer@uw.edu> - 3.3.3-8
aa01c17
- Remove non-OpenMP / g77 build for obsolete RHEL (< 5)
aa01c17
- Remove ancient Obsoletes (fftw < 3.3, Fedora < 16)
9733992
- Remove ancient non-Quad build (Fedora < 15) on supported arch(s)
aa01c17
- Remove obsolete conditional on BuildArch: noarch (RHEL < 6, Fedora < 13)
aa01c17
922560a
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.3-7
922560a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
922560a
424fd82
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.3-6
424fd82
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
424fd82
d2d0f9c
* Sat Jan 19 2013 PPC Secondary Arch Admin <karsten@redhat.com> 3.3.3-5
d2d0f9c
- disable altivec flag again, that works with single precision only
d2d0f9c
2e44e24
* Mon Dec 24 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-4
2e44e24
- Fix typo: should be %%ix86 instead of %%x86. Now should have SSE2 support
2e44e24
  on x86 as well.
2e44e24
077ae7a
* Tue Dec 18 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-3
077ae7a
- After consultation with upstream, enable SSE2 also on x86, altivec on ppc
077ae7a
  and ppc64 and NEON on arm.
077ae7a
2d89aca
* Tue Dec 18 2012 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-2
2d89aca
- Enable SSE2 on x86_64.
2d89aca
a9ae98a
* Mon Nov 26 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.3-1
a9ae98a
- Update to 3.3.3.
a9ae98a
742f891
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.2-2
742f891
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
742f891
Orion Poplawski dca674d
* Fri Jun 15 2012 Orion Poplawski <orion@cora.nwra.com> - 3.3.2-1
Orion Poplawski dca674d
- Update to 3.3.2
Orion Poplawski dca674d
- Drop alignment patch
f20ae4e
f06091d
* Fri Apr 27 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.1-3
f06091d
- Fix FTBFS with gcc 4.7.
f06091d
f438aee
* Thu Apr 26 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.1-2
f438aee
- Reorganized libraries (BZ #812981).
f438aee
6be7255
* Mon Feb 27 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3.1-1
6be7255
- Update to 3.3.1.
6be7255
98be3c3
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3-5
98be3c3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
98be3c3
9984a10
* Tue Oct 11 2011 Dan HorĂ¡k <dan[at]danny.cz> - 3.3-4
9984a10
- libquadmath exists only on x86/x86_64 and ia64
9984a10
5be03a0
* Mon Oct 10 2011 Rex Dieter <rdieter@fedoraproject.org> 3.3-3
5be03a0
- -devel: Provides: fftw3-devel (#744758)
5be03a0
- -static: Provides: fftw3-static
5be03a0
- drop %%_isa from Obsoletes
5be03a0
13faf53
* Sat Jul 30 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-2
13faf53
- Conditionalize OpenMP and quadruple precision support based on capabilities
13faf53
  of system compiler.
13faf53
6648ee5
* Thu Jul 28 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.3-1
6648ee5
- Update to 3.3.
6648ee5
5fc9599
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.2-5
5fc9599
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
5fc9599
c128117
* Sat Jan 9 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-4
c128117
- Get rid of rpath.
c128117
535dd3a
* Sat Jan 9 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-3
535dd3a
- Branch out developers' manual to -doc.
535dd3a
52599f9
* Sat Jan 2 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-2
6d2e43d
- Add check phase.
6d2e43d
- Cosmetic changes to spec file (unified changelog format, removed unnecessary
6d2e43d
  space).
6d2e43d
- Use rm instead of find -delete, as latter is not present on EPEL-4.
6d2e43d
- Generalize obsoletes of fftw3 packages. Add Obsoletes: fftw3-static.
6d2e43d
52599f9
* Fri Jan 1 2010 Jussi Lehtola <jussilehtola@fedoraproject.org> - 3.2.2-1
19c232e
- Update to 3.2.2.
19c232e
- Make file listings more explicit.
19c232e
- Don't use file dependencies for info.
19c232e
52599f9
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.1-3
f1610be
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
f1610be
52599f9
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.1-2
c0c9d4c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
c0c9d4c
52599f9
* Sat Feb 14 2009 Conrad Meyer <konrad@tylerc.org> - 3.2.1-1
f873c60
- Bump to 3.2.1.
f873c60
52599f9
* Thu Dec 4 2008 Conrad Meyer <konrad@tylerc.org> - 3.2-1
e799400
- Bump to 3.2.
e799400
52599f9
* Fri Jul 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 3.1.2-7
42271e1
- fix license tag
42271e1
52599f9
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.1.2-6
00a994f
- Autorebuild for GCC 4.3
00a994f
Quentin Spencer 6f992d3
* Fri Aug 24 2007 Quentin Spencer <qspencer@users.sf.net> 3.1.2-5
Quentin Spencer 6f992d3
- Rebuild for F8.
Quentin Spencer 6f992d3
Quentin Spencer 23d4f74
* Fri Jul 27 2007 Quentin Spencer <qspencer@users.sf.net> 3.1.2-4
Quentin Spencer 23d4f74
- Split static libs into separate package (bug 249686).
Quentin Spencer 23d4f74
999875b
* Thu Oct 05 2006 Christian Iseli <Christian.Iseli@licr.org> 3.1.2-3
Quentin Spencer 23d4f74
- rebuilt for unwind info generation, broken in gcc-4.1.1-21
999875b
Quentin Spencer 2b268cb
* Tue Sep 26 2006 Quentin Spencer <qspencer@users.sf.net> 3.1.2-2
Quentin Spencer 2b268cb
- BuildRequires: pkgconfig for -devel (bug 206444).
Quentin Spencer 2b268cb
Quentin Spencer 1a49237
* Fri Sep  8 2006 Quentin Spencer <qspencer@users.sf.net> 3.1.2-1
Quentin Spencer 1a49237
- New release.
Quentin Spencer 1a49237
Quentin Spencer 1a49237
* Fri Jun  2 2006 Quentin Spencer <qspencer@users.sf.net> 3.1.1-1
Quentin Spencer 61e07eb
- New upstream release.
Quentin Spencer 61e07eb
Quentin Spencer 97633e4
* Fri Feb 24 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-4
Quentin Spencer 97633e4
- Re-enable static libs (bug 181897).
Quentin Spencer 97633e4
- Build long-double version of libraries (bug 182587).
Quentin Spencer 97633e4
Quentin Spencer ac059f3
* Mon Feb 13 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-3
Quentin Spencer ac059f3
- Add Obsoletes and Provides.
Quentin Spencer ac059f3
Quentin Spencer 591fc5e
* Mon Feb 13 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-2
Quentin Spencer 591fc5e
- Rebuild for Fedora Extras 5.
Quentin Spencer 591fc5e
- Disable static libs.
Quentin Spencer 591fc5e
- Remove obsolete configure options.
Quentin Spencer 591fc5e
Quentin Spencer e72406d
* Wed Feb  1 2006 Quentin Spencer <qspencer@users.sf.net> 3.1-1
Quentin Spencer e72406d
- Upgrade to the 3.x branch, incorporating changes from the fftw3 spec file.
Quentin Spencer e72406d
- Add dist tag.