packages: fftw3/fftw3-link.patch, fftw3/fftw3.spec, fftw3/fftw3-ac_simd.pat...

qboosh qboosh at pld-linux.org
Fri Jul 29 16:31:41 CEST 2011


Author: qboosh                       Date: Fri Jul 29 14:31:41 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- updated to 3.3
- updated link patch, removed obsolete ac_simd patch
- build single and double precision with sse2 and avx support (where possible)
- build OpenMP libraries (with gomp bcond, gcc 4.2+ required)
- build quad-precision libraries (-quad-* subpackages, fftwq bcond, gcc 4.6+ required)

---- Files affected:
packages/fftw3:
   fftw3-link.patch (1.4 -> 1.5) , fftw3.spec (1.42 -> 1.43) , fftw3-ac_simd.patch (1.1 -> NONE)  (REMOVED)

---- Diffs:

================================================================
Index: packages/fftw3/fftw3-link.patch
diff -u packages/fftw3/fftw3-link.patch:1.4 packages/fftw3/fftw3-link.patch:1.5
--- packages/fftw3/fftw3-link.patch:1.4	Thu Oct 14 20:53:44 2010
+++ packages/fftw3/fftw3-link.patch	Fri Jul 29 16:31:36 2011
@@ -1,20 +1,27 @@
---- fftw-3.0.1/threads/Makefile.am.orig	2003-03-16 21:00:04.000000000 +0100
-+++ fftw-3.0.1/threads/Makefile.am	2003-07-25 00:35:16.000000000 +0200
-@@ -10,3 +10,4 @@
- hc2hc-dif.c vrank-geq1-rdft2.c f77api.c f77funcs.h
- 
+--- fftw-3.3/threads/Makefile.am.orig	2011-07-27 02:28:29.000000000 +0200
++++ fftw-3.3/threads/Makefile.am	2011-07-28 20:21:46.135119454 +0200
+@@ -26,9 +26,11 @@
+ vrank-geq1-rdft2.c f77api.c f77funcs.h
+ libfftw3 at PREC_SUFFIX@_threads_la_CFLAGS = $(PTHREAD_CFLAGS)
  libfftw3 at PREC_SUFFIX@_threads_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
-+libfftw3 at PREC_SUFFIX@_threads_la_LIBADD = $(top_builddir)/libfftw3 at PREC_SUFFIX@.la -lpthread
---- fftw-3.2.2/Makefile.am.orig	2009-07-12 12:35:49.000000000 +0200
-+++ fftw-3.2.2/Makefile.am	2010-10-14 09:20:15.323741882 +0200
++libfftw3 at PREC_SUFFIX@_threads_la_LIBADD = $(top_builddir)/libfftw3 at PREC_SUFFIX@.la
+ 
+ libfftw3 at PREC_SUFFIX@_omp_la_SOURCES = api.c conf.c openmp.c	\
+ threads.h dft-vrank-geq1.c ct.c rdft-vrank-geq1.c hc2hc.c	\
+ vrank-geq1-rdft2.c f77api.c f77funcs.h
+ libfftw3 at PREC_SUFFIX@_omp_la_CFLAGS = $(OPENMP_CFLAGS)
+ libfftw3 at PREC_SUFFIX@_omp_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
++libfftw3 at PREC_SUFFIX@_omp_la_LIBADD = $(top_builddir)/libfftw3 at PREC_SUFFIX@.la -lgomp
+--- fftw-3.3/Makefile.am.orig	2011-07-27 02:28:29.000000000 +0200
++++ fftw-3.3/Makefile.am	2011-07-28 20:18:54.851780384 +0200
 @@ -13,8 +13,8 @@
  
  ACLOCAL_AMFLAGS=-I m4
  
--SUBDIRS=support $(GENFFT) kernel simd dft rdft reodft api threads \
--cell libbench2 . tests doc tools m4
-+SUBDIRS=support $(GENFFT) kernel simd dft rdft reodft api . threads \
-+cell libbench2 tests doc tools m4
- EXTRA_DIST=COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in README.Cell
+-SUBDIRS=support $(GENFFT) kernel simd-support dft rdft reodft api	\
+-threads libbench2 . tests mpi doc tools m4
++SUBDIRS=support $(GENFFT) kernel simd-support dft rdft reodft api .	\
++threads libbench2 tests mpi doc tools m4
+ EXTRA_DIST=COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in
  
- if HAVE_SIMD
+ SIMD_LIBS =						\

================================================================
Index: packages/fftw3/fftw3.spec
diff -u packages/fftw3/fftw3.spec:1.42 packages/fftw3/fftw3.spec:1.43
--- packages/fftw3/fftw3.spec:1.42	Sat Jan 29 01:06:25 2011
+++ packages/fftw3/fftw3.spec	Fri Jul 29 16:31:36 2011
@@ -1,24 +1,26 @@
 # $Revision$, $Date$
 #
 # Conditional build:
-%bcond_without	fftwl	# don't build "long" subpackages
+%bcond_without	fftwl	# "long" subpackages
+%bcond_without	fftwq	# "quad" subpackages
+%bcond_without	gomp	# OpenMP support
 #
 Summary:	Fast Fourier Transform library
 Summary(pl.UTF-8):	Biblioteka z funkcjami szybkiej transformaty Fouriera
 Summary(pt_BR.UTF-8):	biblioteca fast fourier transform
 Name:		fftw3
-Version:	3.2.2
+Version:	3.3
 Release:	1
 License:	GPL v2+
 Group:		Libraries
 Source0:	ftp://ftp.fftw.org/pub/fftw/fftw-%{version}.tar.gz
-# Source0-md5:	b616e5c91218cc778b5aa735fefb61ae
+# Source0-md5:	0728ab3ec0ebb06631ab3b80a5c3d130
 Patch0:		%{name}-info.patch
 Patch1:		%{name}-link.patch
-Patch2:		%{name}-ac_simd.patch
 URL:		http://www.fftw.org/
 BuildRequires:	autoconf
 BuildRequires:	automake
+BuildRequires:	gcc-fortran
 %ifarch alpha ppc s390 s390x sparc sparcv9
 %if %{with fftwl}
 # for 128-bit long double support
@@ -26,11 +28,21 @@
 BuildRequires:	glibc >= 6:2.4-1
 %endif
 %endif
+%if %{with fftwq}
+BuildRequires:	gcc >= 6:4.6.0
+BuildRequires:	libquadmath-devel
+%endif
+%if %{with gomp}
+BuildRequires:	gcc >= 6:4.2.0
+BuildRequires:	libgomp-devel
+%endif
 BuildRequires:	libtool
 BuildRequires:	texinfo
 Requires:	%{name}-common = %{version}-%{release}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define builds	single double %{?with_fftwl:long-double} %{?with_fftwq:quad-precision}
+
 %description
 FFTW is a collection of fast C routines for computing the Discrete
 Fourier Transform in one or more dimensions. It includes complex,
@@ -61,6 +73,7 @@
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
 Requires:	%{name}-common-devel = %{version}-%{release}
+%{?with_gomp:Requires:	libgomp-devel}
 
 %description devel
 This package contains the files you need to develop programs using the
@@ -117,6 +130,7 @@
 Group:		Development/Libraries
 Requires:	%{name}-common-devel = %{version}-%{release}
 Requires:	%{name}-single = %{version}-%{release}
+%{?with_gomp:Requires:	libgomp-devel}
 
 %description single-devel
 This package contains the files you need to develop programs using the
@@ -124,8 +138,8 @@
 
 %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).
+biblioteki FFTW (wykonującej szybką transformatę Fouriera) pojedynczej
+precyzji.
 
 %package single-static
 Summary:	Static fftw single precision libraries
@@ -166,6 +180,7 @@
 Group:		Development/Libraries
 Requires:	%{name}-common-devel = %{version}-%{release}
 Requires:	%{name}-long = %{version}-%{release}
+%{?with_gomp:Requires:	libgomp-devel}
 
 %description long-devel
 This package contains the files you need to develop programs using the
@@ -173,8 +188,8 @@
 
 %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).
+biblioteki FFTW (wykonującej szybką transformatę Fouriera)
+rozszerzonej precyzji.
 
 %package long-static
 Summary:	Static fftw long double precision libraries
@@ -188,6 +203,57 @@
 %description long-static -l pl.UTF-8
 Statyczne biblioteki fftw rozszerzonej precyzji.
 
+%package quad
+Summary:	Fast Fourier Transform library - quad precision
+Summary(pl.UTF-8):	Biblioteka z funkcjami szybkiej transformaty Fouriera - poczwórnej precyzji
+Group:		Libraries
+Requires:	%{name}-common = %{version}-%{release}
+
+%description quad
+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 the quad precision FFTW
+uniprocessor and threads libraries.
+
+%description quad -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 poczwórnej precyzji dla architektur
+jednoprocesorowych oraz z obsługą wątków.
+
+%package quad-devel
+Summary:	Development files for quad precision fftw
+Summary(pl.UTF-8):	Pliki programistyczne do fftw poczwórnej precyzji
+Group:		Development/Libraries
+Requires:	%{name}-common-devel = %{version}-%{release}
+Requires:	%{name}-quad = %{version}-%{release}
+%{?with_gomp:Requires:	libgomp-devel}
+Requires:	libquadmath-devel
+
+%description quad-devel
+This package contains the files you need to develop programs using the
+quad precision FFTW (fast fourier transform library).
+
+%description quad-devel -l pl.UTF-8
+Ten pakiet zawiera pliki potrzebne do tworzenia programów używających
+biblioteki FFTW (wykonującej szybką transformatę Fouriera) poczwórnej
+precyzji.
+
+%package quad-static
+Summary:	Static fftw quad precision libraries
+Summary(pl.UTF-8):	Statyczne biblioteki fftw poczwórnej precyzji
+Group:		Development/Libraries
+Requires:	%{name}-quad-devel = %{version}-%{release}
+
+%description quad-static
+Static fftw quad precision libraries.
+
+%description quad-static -l pl.UTF-8
+Statyczne biblioteki fftw poczwórnej precyzji.
+
 %package common
 Summary:	Files common for all versions of fftw libraries
 Summary(pl.UTF-8):	Pliki wspólne dla wszystkich wersji bibliotek fftw
@@ -219,7 +285,6 @@
 %setup -q -n fftw-%{version}
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
 
 %build
 %{__libtoolize}
@@ -228,11 +293,11 @@
 %{__automake}
 
 # MMX/SSE/etc. seem to be safe because of runtime CPU detection
-for ver in single double %{?with_fftwl:long-double}; do
+for ver in %{builds}; do
 	OPTS=""
 	# k7,SSE,3dnow,altivec only for single
 	if [ "$ver" = "single" ]; then
-%ifarch i686
+%ifarch i686 pentium3 pentium4
 		OPTS="--enable-sse"
 %endif
 %ifarch athlon
@@ -245,15 +310,16 @@
 		:	# keep sh happy about syntax
 %endif
 	fi
-%ifarch i686
+%ifarch i686 pentium4
 	# SSE2 only for double
-	if [ "$ver" = "double" ]; then
-		OPTS="--enable-sse2"
+	if [ "$ver" = "double" -o "$ver" = "single" ]; then
+		OPTS="--enable-sse2 --enable-avx"
 	fi
 %endif
 install -d build-${ver}
 cd build-${ver}
 ../%configure \
+	--enable-openmp \
 	--enable-shared \
 	--enable-threads \
 	--enable-$ver \
@@ -268,16 +334,10 @@
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT%{_sysconfdir}/fftw
 
-%{__make} install -C build-single \
-	DESTDIR=$RPM_BUILD_ROOT
-
-%{__make} install -C build-double \
-	DESTDIR=$RPM_BUILD_ROOT
-
-%if %{with fftwl}
-%{__make} install -C build-long-double \
-	DESTDIR=$RPM_BUILD_ROOT
-%endif
+for b in %{builds} ; do
+	%{__make} install -C build-${b} \
+		DESTDIR=$RPM_BUILD_ROOT
+done
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -304,6 +364,10 @@
 %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
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3_omp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3_omp.so.3
+%endif
 %{_mandir}/man1/fftw-wisdom.1*
 
 %files devel
@@ -312,12 +376,19 @@
 %attr(755,root,root) %{_libdir}/libfftw3_threads.so
 %{_libdir}/libfftw3.la
 %{_libdir}/libfftw3_threads.la
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3_omp.so
+%{_libdir}/libfftw3_omp.la
+%endif
 %{_pkgconfigdir}/fftw3.pc
 
 %files static
 %defattr(644,root,root,755)
 %{_libdir}/libfftw3.a
 %{_libdir}/libfftw3_threads.a
+%if %{with gomp}
+%{_libdir}/libfftw3_omp.a
+%endif
 
 %files single
 %defattr(644,root,root,755)
@@ -326,6 +397,10 @@
 %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
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3f_omp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3f_omp.so.3
+%endif
 %{_mandir}/man1/fftwf-wisdom.1*
 
 %files single-devel
@@ -334,12 +409,19 @@
 %attr(755,root,root) %{_libdir}/libfftw3f_threads.so
 %{_libdir}/libfftw3f.la
 %{_libdir}/libfftw3f_threads.la
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3f_omp.so
+%{_libdir}/libfftw3f_omp.la
+%endif
 %{_pkgconfigdir}/fftw3f.pc
 
 %files single-static
 %defattr(644,root,root,755)
 %{_libdir}/libfftw3f.a
 %{_libdir}/libfftw3f_threads.a
+%if %{with gomp}
+%{_libdir}/libfftw3f_omp.a
+%endif
 
 %if %{with fftwl}
 %files long
@@ -349,6 +431,10 @@
 %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
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3l_omp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3l_omp.so.3
+%endif
 %{_mandir}/man1/fftwl-wisdom.1*
 
 %files long-devel
@@ -357,12 +443,54 @@
 %attr(755,root,root) %{_libdir}/libfftw3l_threads.so
 %{_libdir}/libfftw3l.la
 %{_libdir}/libfftw3l_threads.la
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3l_omp.so
+%{_libdir}/libfftw3l_omp.la
+%endif
 %{_pkgconfigdir}/fftw3l.pc
 
 %files long-static
 %defattr(644,root,root,755)
 %{_libdir}/libfftw3l.a
 %{_libdir}/libfftw3l_threads.a
+%if %{with gomp}
+%{_libdir}/libfftw3l_omp.a
+%endif
+%endif
+
+%if %{with fftwq}
+%files quad
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/fftwq-wisdom
+%attr(755,root,root) %{_libdir}/libfftw3q.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3q.so.3
+%attr(755,root,root) %{_libdir}/libfftw3q_threads.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3q_threads.so.3
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3q_omp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfftw3q_omp.so.3
+%endif
+%{_mandir}/man1/fftwq-wisdom.1*
+
+%files quad-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libfftw3q.so
+%attr(755,root,root) %{_libdir}/libfftw3q_threads.so
+%{_libdir}/libfftw3q.la
+%{_libdir}/libfftw3q_threads.la
+%if %{with gomp}
+%attr(755,root,root) %{_libdir}/libfftw3q_omp.so
+%{_libdir}/libfftw3q_omp.la
+%endif
+%{_pkgconfigdir}/fftw3q.pc
+
+%files quad-static
+%defattr(644,root,root,755)
+%{_libdir}/libfftw3q.a
+%{_libdir}/libfftw3q_threads.a
+%if %{with gomp}
+%{_libdir}/libfftw3q_omp.a
+%endif
 %endif
 
 %files common
@@ -376,6 +504,7 @@
 %defattr(644,root,root,755)
 %doc doc/html doc/FAQ/fftw-faq.html
 %{_includedir}/fftw3.f
+%{_includedir}/fftw3.f03
 %{_includedir}/fftw3.h
 %{_infodir}/fftw3.info*
 
@@ -385,6 +514,13 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.43  2011/07/29 14:31:36  qboosh
+- updated to 3.3
+- updated link patch, removed obsolete ac_simd patch
+- build single and double precision with sse2 and avx support (where possible)
+- build OpenMP libraries (with gomp bcond, gcc 4.2+ required)
+- build quad-precision libraries (-quad-* subpackages, fftwq bcond, gcc 4.6+ required)
+
 Revision 1.42  2011/01/29 00:06:25  sparky
 - dropped pre-cvs changelog
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/fftw3/fftw3-link.patch?r1=1.4&r2=1.5&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/fftw3/fftw3.spec?r1=1.42&r2=1.43&f=u



More information about the pld-cvs-commit mailing list