%define name fftw
%define version 2.1.5
%define release 2%{?_dist_release}

Name: %{name}
Summary:   C subroutines for computing the Discrete Fourier Transform.
Version:   %{version}
Release:   %{release}

Group:     System Environment/Libraries
License:   GPLv2
URL:       http://www.fftw.org/

Source:    %{name}-%{version}.tar.gz
%{?nosrc:NoSource: 0}
Patch0:    %{name}-%{version}-pentium.patch
Icon:      fftw-logo-thumb.gif

BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: gcc-gfortran

Vendor: Project Vine
Distribution: Vine Linux

%description
FFTW is a collection of fast C routines for computing the Discrete Fourier Transform in one or more dimensions.  It includes complex, real, and parallel transforms, and can handle arbitrary array sizes efficiently. This RPM package includes both the double- and single-precision FFTW uniprocessor and threads libraries.  (The single-precision files have an "s" prefix.)

%description -l ja
FFTW は1次元または多次元の離散フーリエ変換(DFT)を計算する高速なCルーチンのコレクションです.FFTW は複素数、実数、並列変換ができ、任意のサイズの配列を効果的に扱うことができます.このパッケージには、倍精度と単精度の単一CPUとスレッドに対応した FFTW のライブラリが収められています。(単精度用のファイル名にはfが最後に付けられています。)

%package devel
Summary:   Headers, libraries, & docs for FFTW fast fourier transform library
Group:     Development/Libraries
Requires:  %{name} = %{version}-%{release}
Requires(post): install-info 
Requires(preun): install-info

%description devel
This package contains the additional header files, documentation, and
libraries you need to develop programs using the FFTW fast fourier
transform library.

%description devel -l ja
このパッケージには、高速フーリエ変換のライブラリであるFFTWを使ってプログラムを開発する際に必要となるヘッダーファイルやドキュメント、ライブラリが収められています。

%package        static
Summary:        Static version of the FFTW library
Group:          Development/Libraries
Requires:       %{name}-devel = %{version}-%{release}

%description    static
This package contains the statically linkable version of
the FFTW fast Fourier transform library.

%prep
# We will be compiling two copies of FFTW, one for double precision and
# one for single precision.  During the build process, these copies
# will be stored in fftw-%{version}/double and fftw-%{version}/single

# Unpack the tar archive, first (-c) creating a fftw-%{version}
# directory and then unpacking in there.

%setup -q -c
# Now, rename the unpacked FFTW directory to "double":
mv ${RPM_PACKAGE_NAME}-${RPM_PACKAGE_VERSION} double

# Apply patch to enable pentium optimizations
pushd double
%patch0 -p1
popd

# Last, make a copy of this directory in "single":
cp -r double single

%build
# Configure and build the double and single precision versions.
# Notes:
#  (1) We install into ${RPM_BUILD_ROOT}, which is set either
#      by the BuildRoot option above or by --buildroot at build-time.
#      This allows you to build the RPM without blowing away your existing
#      FFTW installation, and even without being root.
#  (2) The double-precision version is installed with the normal library
#      names, while the single-precision version is installed with an "s"
#      prefix.

# Configure uses g77 by default, if present on system
export F77=gfortran

pushd double
%ifarch i386
    %configure --enable-shared --enable-threads --infodir=$RPM_BUILD_ROOT%{_infodir} --enable-i386-hacks
%else
    %configure --enable-shared --enable-threads --infodir=$RPM_BUILD_ROOT%{_infodir}
%endif
make %{?_smp_mflags}
popd

pushd single
%ifarch i386
    %configure --enable-shared --enable-threads --infodir=$RPM_BUILD_ROOT%{_infodir} --enable-i386-hacks --enable-float --enable-type-prefix 
%else
    %configure --enable-shared --enable-threads --infodir=$RPM_BUILD_ROOT%{_infodir} --enable-float --enable-type-prefix
%endif
make %{?_smp_mflags}
popd

%install
rm -rf $RPM_BUILD_ROOT doc
pushd double
    %makeinstall
    cp -a AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO ../
    cp -a FAQ/fftw-faq.html/ doc/ ../
popd
pushd single
    %makeinstall
popd
rm -f doc/Makefile*

## remove unuse files
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la

%clean
rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%post devel
/sbin/install-info --section="Math" %{_infodir}/%{name}.info.gz %{_infodir}/dir  2>/dev/null || :

%preun devel
if [ "$1" = 0 ]; then
  /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir 2>/dev/null || :
fi

%files
%defattr (-,root,root)
%doc AUTHORS COPYING COPYRIGHT ChangeLog NEWS README* TODO
%{_libdir}/lib*fftw*.so.2*

%files devel
%defattr (-,root,root)
%doc  doc/
%{_includedir}/*fftw*.h
%doc %{_infodir}/*
%{_libdir}/lib*fftw*.so

%files static
%defattr (-,root,root)
%{_libdir}/lib*fftw*.a


%changelog
* Sun Oct 03 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 2.1.5-2
- rebuilt with new toolchain
- split static libraries

* Sat Sep 20 2008 Shu KONNO <owa@bg.wakwak.com> 2.1.5-1vl5
- applied new versioning policy, spec in utf-8
- removed *.la

* Wed Dec 19 2007 Shu KONNO <owa@bg.wakwak.com> 2.1.5-0vl2
- s/gcc-f77/gcc-gfortran/
- updated library file names in %%files section (for x86_64)

* Wed Mar 03 2004 Seiya Nishizawa <seiya@kugi.kyoto-u.ac.jp> 2.1.5-0vl1
- source update.

* Thu Jul 18 2002 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 2.1.3-0vl1
- modified for Vine.

* Mon Feb 25 2002 Fuhito Suguri <bitwalk@jcom.home.ne.jp> 2.1.3-12bw
- rebuild for RH72.

* Tue Oct 09 2001 Fuhito Suguri <bitwalk@nyc.odn.ne.jp> 2.1.3-11bw
- corrected some wrong descriptions in this spec for RH71

* Tue Oct 09 2001 Fuhito Suguri <bitwalk@nyc.odn.ne.jp> 2.1.3-10bw
- corrected some wrong descriptions in this spec

* Mon Oct 08 2001 Fuhito Suguri <bitwalk@nyc.odn.ne.jp> 2.1.3-9bw
- rebuilt for Vine Linux 2.1.5

* Thu Jun 14 2001 Lenny Cartier <lenny@mandrakesoft.com> 2.1.3-8mdk
- fixed by Mika Korhonen <mikak@ee.oulu.fi> :
- removed broken ld.so.conf test (/usr/lib is not listed there anyways)
- made install-info work with RPM macros shipping with newer Mandrakes
  and actually add an entry to the top dir file

* Tue Jan 09 2001 Lenny Cartier <lenny@mandrakesoft.com> 2.1.3-7mdk
- rebuild

* Tue Aug 31 2000 Lenny Cartier <lenny@mandrakesoft.com> 2.1.3-6mdk
- add installinfo

* Wed Aug 30 2000 Alexander Skwar <ASkwar@DigitalProjects.com> 2.1.3-5mdk
- Actually used macros
- Added %doc files
- Shortened %files section of the SPEC file a lot
- Provide libfftw as eXtace requires it
- Obsolote libfftw package
- Optimized for Pentium builds per README.hacks

* Wed Aug 30 2000 Lenny Cartier <lenny@mandrakesoft.com> 2.1.3-4mdk
- BM
- macros

* Wed Apr 26 2000 Lenny Cartier <lenny@mandrakesoft.com> 2.1.3-3mdk
- fix group
- spec helper fixes

* Tue Jan 25 2000 Lenny Cartier <lenny@mandrakesoft.com>
- updated, installs in /usr instead of /usr/local by Dara Hazeghi
  <dara@pacbell.net>

* Thu Dec 16 1999 Lenny Cartier <lenny@mandrakesoft.com>
- new in contribs
- bz2 archive 
- add defattr