Skip to contentSkip to conversation

package/fftw : Allow all precisions to be installed at the same time.

PATCH New Gwenhael Goavec-Merou 4 participants 17 messages Nov 28, 2018 – Dec 3, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/11 package/fftw : Allow all precisions to be installed at the same time.

From: Gwenhael Goavec-Merou <[email protected]>

fftw's library name depends on the precision option. Consequently, it's possible to install multiple flavor on the same target.

This patch split current fftw in 5 part:
- 1 to provide common variables
- 4 to provide specificities for each precision.

This patch suppress hidden BR2_PACKAGE_FFTW_USE_xx variables and directly use corresponding options in specifics .mk.

Based on http://lists.busybox.net/pipermail/buildroot/2016-August/170116.html

---
 package/fftw/Config.in                        | 56 +++----------------
 package/fftw/fftw-double/Config.in            |  5 ++
 package/fftw/fftw-double/fftw-double.hash     |  1 +
 package/fftw/fftw-double/fftw-double.mk       | 23 ++++++++
 package/fftw/fftw-long-double/Config.in       |  8 +++
 .../fftw-long-double/fftw-long-double.hash    |  1 +
 .../fftw/fftw-long-double/fftw-long-double.mk | 21 +++++++
 package/fftw/fftw-quad/Config.in              |  7 +++
 package/fftw/fftw-quad/fftw-quad.hash         |  1 +
 package/fftw/fftw-quad/fftw-quad.mk           | 21 +++++++
 package/fftw/fftw-single/Config.in            |  5 ++
 package/fftw/fftw-single/fftw-single.hash     |  1 +
 package/fftw/fftw-single/fftw-single.mk       | 33 +++++++++++
 package/fftw/fftw.mk                          | 14 +----
 14 files changed, 135 insertions(+), 62 deletions(-)
 create mode 100644 package/fftw/fftw-double/Config.in
 create mode 120000 package/fftw/fftw-double/fftw-double.hash
 create mode 100644 package/fftw/fftw-double/fftw-double.mk
 create mode 100644 package/fftw/fftw-long-double/Config.in
 create mode 120000 package/fftw/fftw-long-double/fftw-long-double.hash
 create mode 100644 package/fftw/fftw-long-double/fftw-long-double.mk
 create mode 100644 package/fftw/fftw-quad/Config.in
 create mode 120000 package/fftw/fftw-quad/fftw-quad.hash
 create mode 100644 package/fftw/fftw-quad/fftw-quad.mk
 create mode 100644 package/fftw/fftw-single/Config.in
 create mode 120000 package/fftw/fftw-single/fftw-single.hash
 create mode 100644 package/fftw/fftw-single/fftw-single.mk
package/fftw/Config.in +7 -49
index d51f8f3c51..c37fd17b5f 100644
@@ -12,55 +12,11 @@ config BR2_PACKAGE_FFTW
 
 if BR2_PACKAGE_FFTW
 
-config BR2_PACKAGE_FFTW_USE_SSE
-	bool
-
-config BR2_PACKAGE_FFTW_USE_SSE2
-	bool
-
-config BR2_PACKAGE_FFTW_USE_NEON
-	bool
-
-choice
-	prompt "fftw precision"
-	default BR2_PACKAGE_FFTW_PRECISION_DOUBLE
-	help
-	  Selects fftw precision
-
-config BR2_PACKAGE_FFTW_PRECISION_SINGLE
-	bool "single"
-	select BR2_PACKAGE_FFTW_USE_SSE if BR2_X86_CPU_HAS_SSE
-	select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
-	select BR2_PACKAGE_FFTW_USE_NEON if BR2_ARM_CPU_HAS_NEON && !BR2_ARM_SOFT_FLOAT
-	help
-	  Compile fftw in single precision, i.e. use 'float' for
-	  floating point type.
-
-config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
-	bool "double"
-	select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
-	help
-	  Compile fftw in double precision (the default), i.e. use
-	  'double' for floating point type.
-
-config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
-	bool "long double"
-	# long-double precision require long-double trigonometric routines
-	depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
-		(BR2_arm || BR2_mips || BR2_mipsel))
-	help
-	  Compile fftw in long double precision, i.e. use 'long double'
-	  for floating point type.
-
-config BR2_PACKAGE_FFTW_PRECISION_QUAD
-	bool "quad"
-	# quad-precision needs to have a gcc with libquadmath
-	depends on (BR2_i386 || BR2_x86_64) && BR2_USE_WCHAR
-	help
-	  Compile fftw in quadruple precision, i.e. use '__float128' for
-	  floating point type.
-
-endchoice
+menu "FFTW precision and options"
+source "package/fftw/fftw-double/Config.in"
+source "package/fftw/fftw-long-double/Config.in"
+source "package/fftw/fftw-single/Config.in"
+source "package/fftw/fftw-quad/Config.in"
 
 config BR2_PACKAGE_FFTW_FAST
 	bool "optimise for speed over accuracy"
@@ -75,4 +31,6 @@ config BR2_PACKAGE_FFTW_FAST
 	  turn is basically using gcc's -ffast-math. See the gcc manual
 	  for what this means.
 
+endmenu
+
 endif
package/fftw/fftw-double/Config.in new file +5 -0
new file mode 100644
index 0000000000..f52502fe26
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
+	bool "fftw-double"
+	help
+	  Compile fftw in double precision (the default), i.e. use
+	  'double' for floating point type.
package/fftw/fftw-double/fftw-double.hash new file +1 -0
new file mode 120000
index 0000000000..3ee7ecb3ba
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
package/fftw/fftw-double/fftw-double.mk new file +23 -0
new file mode 100644
index 0000000000..b8a587184c
@@ -0,0 +1,23 @@
+################################################################################
+#
+# fft-double
+#
+################################################################################
+
+FFTW_PRECISION_DOUBLE_VERSION = $(FFTW_VERSION)
+FFTW_PRECISION_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_PRECISION_DOUBLE_SITE = $(FFTW_SITE)
+FFTW_PRECISION_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_PRECISION_DOUBLE_LICENSE = $(FFTW_LICENSE)
+FFTW_PRECISION_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_PRECISION_DOUBLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_PRECISION_DOUBLE_CONF_OPTS= $(FFTW_CONF_OPTS)
+
+FFTW_PRECISION_DOUBLE_CFLAGS = $(FFTW_CFLAGS)
+
+# x86 optimisations
+FFTW_PRECISION_DOUBLE_CONF_OPTS += $(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2
+
+$(eval $(autotools-package))
package/fftw/fftw-long-double/Config.in new file +8 -0
new file mode 100644
index 0000000000..d52a4d2e18
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
+	bool "fftw-long-double"
+	# long-double precision require long-double trigonometric routines
+	depends on !(BR2_TOOLCHAIN_USES_UCLIBC && \
+		(BR2_arm || BR2_mips || BR2_mipsel))
+	help
+	  Compile fftw in long double precision, i.e. use 'long double'
+	  for floating point type.
package/fftw/fftw-long-double/fftw-long-double.hash new file +1 -0
new file mode 120000
index 0000000000..3ee7ecb3ba
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
package/fftw/fftw-long-double/fftw-long-double.mk new file +21 -0
new file mode 100644
index 0000000000..9c96ed5f56
@@ -0,0 +1,21 @@
+################################################################################
+#
+# fftw-long-double
+#
+################################################################################
+
+FFTW_PRECISION_LONG_DOUBLE_VERSION = $(FFTW_VERSION)
+FFTW_PRECISION_LONG_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_PRECISION_LONG_DOUBLE_SITE = $(FFTW_SITE)
+FFTW_PRECISION_LONG_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_PRECISION_LONG_DOUBLE_LICENSE = $(FFTW_LICENSE)
+FFTW_PRECISION_LONG_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_PRECISION_LONG_DOUBLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_PRECISION_LONG_DOUBLE_CONF_OPTS = $(FFTW_CONF_OPTS)
+FFTW_PRECISION_LONG_DOUBLE_CONF_OPTS += --enable-long-double
+
+FFTW_PRECISION_LONG_DOUBLE_CFLAGS = $(FFTW_CFLAGS)
+
+$(eval $(autotools-package))
package/fftw/fftw-quad/Config.in new file +7 -0
new file mode 100644
index 0000000000..827fff1240
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_FFTW_PRECISION_QUAD
+	bool "fftw-quad"
+	# quad-precision needs to have a gcc with libquadmath
+	depends on (BR2_i386 || BR2_x86_64) && BR2_USE_WCHAR
+	help
+	  Compile fftw in quadruple precision, i.e. use '__float128' for
+	  floating point type.
package/fftw/fftw-quad/fftw-quad.hash new file +1 -0
new file mode 120000
index 0000000000..3ee7ecb3ba
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
package/fftw/fftw-quad/fftw-quad.mk new file +21 -0
new file mode 100644
index 0000000000..8acbd40d21
@@ -0,0 +1,21 @@
+################################################################################
+#
+# fftw-quad
+#
+################################################################################
+
+FFTW_PRECISION_QUAD_VERSION = $(FFTW_VERSION)
+FFTW_PRECISION_QUAD_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_PRECISION_QUAD_SITE = $(FFTW_SITE)
+FFTW_PRECISION_QUAD_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_PRECISION_QUAD_LICENSE = $(FFTW_LICENSE)
+FFTW_PRECISION_QUAD_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_PRECISION_QUAD_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_PRECISION_QUAD_CONF_OPTS = $(FFTW_CONF_OPTS)
+FFTW_PRECISION_QUAD_CONF_OPTS += --enable-quad-precision
+
+FFTW_PRECISION_QUAD_CFLAGS = $(FFTW_CFLAGS)
+
+$(eval $(autotools-package))
package/fftw/fftw-single/Config.in new file +5 -0
new file mode 100644
index 0000000000..43c91012ff
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_FFTW_PRECISION_SINGLE
+	bool "fftw-single"
+	help
+	  Compile fftw in single precision, i.e. use 'float'
+	  for floating point type.
package/fftw/fftw-single/fftw-single.hash new file +1 -0
new file mode 120000
index 0000000000..3ee7ecb3ba
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
package/fftw/fftw-single/fftw-single.mk new file +33 -0
new file mode 100644
index 0000000000..cff7a5de32
@@ -0,0 +1,33 @@
+################################################################################
+#
+# fftw-single
+#
+################################################################################
+
+FFTW_PRECISION_SINGLE_VERSION = $(FFTW_VERSION)
+FFTW_PRECISION_SINGLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_PRECISION_SINGLE_SITE = $(FFTW_SITE)
+FFTW_PRECISION_SINGLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_PRECISION_SINGLE_LICENSE = $(FFTW_LICENSE)
+FFTW_PRECISION_SINGLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_PRECISION_SINGLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_PRECISION_SINGLE_CONF_OPTS = $(FFTW_CONF_OPTS)
+FFTW_PRECISION_SINGLE_CONF_OPTS += --enable-single
+
+FFTW_PRECISION_SINGLE_CFLAGS = $(FFTW_CFLAGS)
+
+# x86 optimisations
+FFTW_PRECISION_SINGLE_CONF_OPTS += $(if $(BR2_X86_CPU_HAS_SSE),--enable,--disable)-sse
+FFTW_PRECISION_SINGLE_CONF_OPTS += $(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2
+
+# ARM optimisations
+ifeq ($(BR2_ARM_CPU_HAS_NEON):$(BR2_ARM_SOFT_FLOAT),y:)
+FFTW_PRECISION_SINGLE_CONF_OPTS += --enable-neon
+FFTW_PRECISION_SINGLE_CFLAGS += -mfpu=neon
+else
+FFTW_PRECISION_SINGLE_CONF_OPTS += --disable-neon
+endif
+
+$(eval $(autotools-package))
package/fftw/fftw.mk +1 -13
index b167a2f6f7..ec300242b0 100644
@@ -18,23 +18,11 @@ else
 FFTW_CONF_OPTS += --disable-fortran
 endif
 
-FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single
-FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double
-FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision
-
 FFTW_CFLAGS = $(TARGET_CFLAGS)
 ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
 FFTW_CFLAGS += -O3 -ffast-math
 endif
 
-# x86 optimisations
-FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
-FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
-
-# ARM optimisations
-FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
-FFTW_CFLAGS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),-mfpu=neon)
-
 # Generic optimisations
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 FFTW_CONF_OPTS += --enable-threads
@@ -46,4 +34,4 @@ FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
 
 FFTW_CONF_OPTS += CFLAGS="$(FFTW_CFLAGS)"
 
-$(eval $(autotools-package))
+include $(sort $(wildcard package/fftw/*/*.mk))
Signature · 1 line
2.19.2
#1 lore raw

PATCH 2/11 alsa-utils: update DEPENDENCIES to fft-single and add select in Config.in

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/alsa-utils/Config.in     | 5 ++---
 package/alsa-utils/alsa-utils.mk | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)
package/alsa-utils/Config.in +2 -3
index 012f28aef4..950278d173 100644
@@ -74,15 +74,14 @@ config BR2_PACKAGE_ALSA_UTILS_ASEQNET
 	select BR2_PACKAGE_ALSA_LIB_SEQ
 
 config BR2_PACKAGE_ALSA_UTILS_BAT
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "bat"
 	help
 	  ALSABAT (ALSA Basic Audio Tester) is a simple command-line
 	  utility intended to help automate audio driver and sound
 	  server testing with little human interaction.
 
-	  Note that analysis support in alsabat requires fftw single
-	  precision.
-
 config BR2_PACKAGE_ALSA_UTILS_IECSET
 	bool "iecset"
 	select BR2_PACKAGE_ALSA_LIB_PCM
package/alsa-utils/alsa-utils.mk +1 -1
index 986a745399..9e0094f343 100644
@@ -41,7 +41,7 @@ endif
 ifeq ($(BR2_PACKAGE_ALSA_UTILS_BAT),y)
 ALSA_UTILS_CONF_OPTS += --enable-bat
 # Analysis support requires fftw single precision
-ALSA_UTILS_DEPENDENCIES += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),fftw)
+ALSA_UTILS_DEPENDENCIES += fftw-single
 else
 ALSA_UTILS_CONF_OPTS += --disable-bat
 endif
Signature · 1 line
2.19.2
#2 lore raw

PATCH 3/11 aubio: update DEPENDENCIES to fft-single or fft-double depending on enabled option

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/aubio/aubio.mk | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
package/aubio/aubio.mk +3 -2
index b0cc8b899e..20dd8c13cb 100644
@@ -28,7 +28,7 @@ endif
 
 # Could not compile aubio in double precision mode with libsamplerate
 ifeq ($(BR2_PACKAGE_LIBSAMPLERATE)$(BR2_PACKAGE_FFTW_PRECISION_SINGLE),yy)
-AUBIO_DEPENDENCIES += libsamplerate
+AUBIO_DEPENDENCIES += libsamplerate fftw-single
 AUBIO_CONF_OPTS += --enable-samplerate
 else
 AUBIO_CONF_OPTS += --disable-samplerate
@@ -42,12 +42,13 @@ AUBIO_CONF_OPTS += --disable-jack
 endif
 
 ifeq ($(BR2_PACKAGE_FFTW),y)
-AUBIO_DEPENDENCIES += fftw
 # fftw3 require double otherwise it will look for fftw3f
 ifeq ($(BR2_PACKAGE_FFTW_PRECISION_DOUBLE),y)
 AUBIO_CONF_OPTS += --enable-fftw3 --enable-double
+AUBIO_DEPENDENCIES += fftw-double
 else ifeq ($(BR2_PACKAGE_FFTW_PRECISION_SINGLE),y)
 AUBIO_CONF_OPTS += --enable-fftw3f --disable-double
+AUBIO_DEPENDENCIES += fftw-single
 endif
 else  # !BR2_PACKAGE_FFTW
 AUBIO_CONF_OPTS += --disable-fftw3
Signature · 1 line
2.19.2
#3 lore raw

PATCH 4/11 gnuradio: change depend to select for ffw and use fft-single in DEPENDENCIES

From: Gwenhael Goavec-Merou <[email protected]>

With fftw with multiple precision selectable without choise it's possible to replace depend on by select.

---
 package/gnuradio/Config.in   | 8 ++------
 package/gnuradio/gnuradio.mk | 2 +-
 2 files changed, 3 insertions(+), 7 deletions(-)
package/gnuradio/Config.in +2 -6
index 56957d59e4..4508643940 100644
@@ -78,11 +78,6 @@ config BR2_PACKAGE_GNURADIO_ZEROMQ
 	help
 	  zeromq communication support
 
-comment "gr-fft, -filter, -analog, -channels, -digital, -trellis, -pager, -qtgui depends fftw's single precision"
-	depends on !BR2_PACKAGE_FFTW_PRECISION_SINGLE
-
-if BR2_PACKAGE_FFTW_PRECISION_SINGLE
-
 config BR2_PACKAGE_GNURADIO_ANALOG
 	bool "gr-analog support"
 	select BR2_PACKAGE_GNURADIO_FILTER
@@ -103,6 +98,8 @@ config BR2_PACKAGE_GNURADIO_DIGITAL
 
 config BR2_PACKAGE_GNURADIO_FFT
 	bool "gr-fft support"
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	select BR2_PACKAGE_GNURADIO_BLOCKS
 	help
 	  FFT signal processing blocks
@@ -136,4 +133,3 @@ config BR2_PACKAGE_GNURADIO_TRELLIS
 	  Trellis coded modulation blocks
 
 endif
-endif
package/gnuradio/gnuradio.mk +1 -1
index ed537e3934..564ad8b2a4 100644
@@ -101,7 +101,7 @@ GNURADIO_CONF_OPTS += -DENABLE_GR_FEC=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_GNURADIO_FFT),y)
-GNURADIO_DEPENDENCIES += fftw
+GNURADIO_DEPENDENCIES += fftw-single
 GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=ON
 else
 GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=OFF
Signature · 1 line
2.19.2
#4 lore raw

PATCH 5/11 gqrx: suppress fft depend since fft's precision is selected by gnuradio

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/gqrx/Config.in | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
package/gqrx/Config.in +2 -4
index 1dc40c6d24..94ccb60d44 100644
@@ -2,13 +2,11 @@ comment "gqrx needs a toolchain w/ C++, threads, wchar"
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
 		!BR2_USE_WCHAR
 
-comment "gqrx needs qt5, gnuradio, fftw's single precision"
-	depends on !BR2_PACKAGE_GNURADIO || !BR2_PACKAGE_FFTW_PRECISION_SINGLE || \
-		!BR2_PACKAGE_QT5
+comment "gqrx needs qt5, gnuradio"
+	depends on !BR2_PACKAGE_GNURADIO || !BR2_PACKAGE_QT5
 
 config BR2_PACKAGE_GQRX
 	bool "gqrx"
-	depends on BR2_PACKAGE_FFTW_PRECISION_SINGLE # gnuradio
 	depends on BR2_PACKAGE_GNURADIO
 	depends on BR2_PACKAGE_QT5
 	depends on BR2_INSTALL_LIBSTDCPP # boost
Signature · 1 line
2.19.2
#5 lore raw

PATCH 6/11 gqrx: use select instead of depend for fftw package and fix DEPENDENCIES

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/hackrf/Config.in | 6 ++----
 package/hackrf/hackrf.mk | 2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)
package/hackrf/Config.in +2 -4
index 4fa27699c4..086b2f96fd 100644
@@ -2,7 +2,8 @@ config BR2_PACKAGE_HACKRF
 	bool "hackrf"
 	depends on !BR2_STATIC_LIBS
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_FFTW_PRECISION_SINGLE
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	select BR2_PACKAGE_LIBUSB
 	help
 	  Library and tools for accessing HackRF SDR boards.
@@ -11,6 +12,3 @@ config BR2_PACKAGE_HACKRF
 
 comment "hackrf needs a toolchain w/ threads, dynamic library"
 	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
-
-comment "hackrf needs fftw's single precision"
-	depends on !BR2_PACKAGE_FFTW_PRECISION_SINGLE
package/hackrf/hackrf.mk +1 -1
index acab0be1d3..b83f6518e8 100644
@@ -9,7 +9,7 @@ HACKRF_SITE = https://github.com/mossmann/hackrf/releases/download/v$(HACKRF_VER
 HACKRF_SOURCE = hackrf-$(HACKRF_VERSION).tar.xz
 HACKRF_LICENSE = GPL-2.0+ BSD-3c
 HACKRF_LICENSE_FILES = COPYING
-HACKRF_DEPENDENCIES = fftw libusb
+HACKRF_DEPENDENCIES = fftw-single libusb
 HACKRF_SUBDIR = host
 HACKRF_INSTALL_STAGING = YES
 
Signature · 1 line
2.19.2
#6 lore raw

PATCH 7/11 httping: update package to use new fftw structure

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/httping/httping.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/httping/httping.mk +2 -2
index 955ee3131b..9b44a8fca3 100644
@@ -17,9 +17,9 @@ HTTPING_DEPENDENCIES = \
 	$(if $(BR2_PACKAGE_LIBICONV),libiconv) \
 	$(if $(BR2_PACKAGE_NCURSES_WCHAR),ncurses) \
 	$(if $(BR2_PACKAGE_OPENSSL),openssl) \
-	$(if $(BR2_PACKAGE_FFTW),fftw)
+	$(if $(BR2_PACKAGE_FFTW),fftw-double)
 HTTPING_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) \
-	FW=$(if $(BR2_PACKAGE_FFTW),yes,no) \
+	FW=$(if $(BR2_PACKAGE_FFTW_PRECISION_DOUBLE),yes,no) \
 	NC=$(if $(BR2_PACKAGE_NCURSES_WCHAR),yes,no) \
 	SSL=$(if $(BR2_PACKAGE_OPENSSL),yes,no) \
 	TFO=$(if $(BR2_PACKAGE_HTTPING_TFO),yes,no) \
Signature · 1 line
2.19.2
#7 lore raw

PATCH 8/11 imagemagick: reference explicitly fftw double

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/imagemagick/imagemagick.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/imagemagick/imagemagick.mk +2 -2
index 72482267ce..b766aa8432 100644
@@ -113,11 +113,11 @@ else
 IMAGEMAGICK_CONF_OPTS += --without-lzma
 endif
 
-ifeq ($(BR2_PACKAGE_FFTW),y)
+ifeq ($(BR2_PACKAGE_FFTW_DOUBLE_PRECISION),y)
 # configure script misdetects these leading to build errors
 IMAGEMAGICK_CONF_ENV += ac_cv_func_creal=yes ac_cv_func_cimag=yes
 IMAGEMAGICK_CONF_OPTS += --with-fftw
-IMAGEMAGICK_DEPENDENCIES += fftw
+IMAGEMAGICK_DEPENDENCIES += fftw-double
 else
 IMAGEMAGICK_CONF_OPTS += --without-fftw
 endif
Signature · 1 line
2.19.2
#8 lore raw

PATCH 9/11 libvips: reference explicitly fftw double

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/libvips/libvips.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/libvips/libvips.mk +2 -2
index 8078e046d1..ac566f85b7 100644
@@ -68,9 +68,9 @@ else
 LIBVIPS_CONF_OPTS += --without-tiff
 endif
 
-ifeq ($(BR2_PACKAGE_FFTW),y)
+ifeq ($(BR2_PACKAGE_FFTW_PRECISION_DOUBLE),y)
 LIBVIPS_CONF_OPTS += --with-fftw
-LIBVIPS_DEPENDENCIES += fftw
+LIBVIPS_DEPENDENCIES += fftw-double
 else
 LIBVIPS_CONF_OPTS += --without-fftw
 endif
Signature · 1 line
2.19.2
#9 lore raw

PATCH 10/11 pulseaudio: update dependency to fftw-single

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/pulseaudio/pulseaudio.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/pulseaudio/pulseaudio.mk +1 -1
index d1c35654cf..ef744e6696 100644
@@ -21,7 +21,7 @@ PULSEAUDIO_DEPENDENCIES = \
 	$(if $(BR2_PACKAGE_AVAHI_DAEMON),avahi) \
 	$(if $(BR2_PACKAGE_DBUS),dbus) \
 	$(if $(BR2_PACKAGE_OPENSSL),openssl) \
-	$(if $(BR2_PACKAGE_FFTW),fftw) \
+	$(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),fftw-single) \
 	$(if $(BR2_PACKAGE_SYSTEMD),systemd)
 
 ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y)
Signature · 1 line
2.19.2
#10 lore raw

PATCH 11/11 liquid-dsp: update package to use new fftw structure

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/liquid-dsp/liquid-dsp.mk | 3 +++
 1 file changed, 3 insertions(+)
package/liquid-dsp/liquid-dsp.mk +3 -0
index e3114a2d15..c201010d56 100644
@@ -32,6 +32,7 @@ endif
 # use FFTW instead of built-in FFT
 ifeq ($(BR2_PACKAGE_FFTW_PRECISION_SINGLE),y)
 LIQUID_DSP_LDFLAGS += -lfftw3f
+LIQUID_DSP_DEPENDENCIES += fftw-single
 endif
 
 # disable altivec, it has build issues
@@ -41,10 +42,12 @@ endif
 
 ifeq ($(BR2_PACKAGE_FFTW_PRECISION_DOUBLE),y)
 LIQUID_DSP_LDFLAGS += -lfftw3
+LIQUID_DSP_DEPENDENCIES += fftw-double
 endif
 
 ifeq ($(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),y)
 LIQUID_DSP_LDFLAGS += -lfftw3l
+LIQUID_DSP_DEPENDENCIES += fftw-long-double
 endif
 
 LIQUID_DSP_CONF_OPTS += \
Signature · 1 line
2.19.2
#11 lore raw

PATCH 2/11 alsa-utils: update DEPENDENCIES to fft-single and add select in Config.in

In reply to Gwenhael Goavec-Merou

Hi Gwenhael Goavec-Merou,

Quoted 35 lines · Gwenhael Goavec-Merou

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/alsa-utils/Config.in     | 5 ++---
 package/alsa-utils/alsa-utils.mk | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)
package/alsa-utils/Config.in +2 -3
index 012f28aef4..950278d173 100644
@@ -74,15 +74,14 @@ config BR2_PACKAGE_ALSA_UTILS_ASEQNET
 	select BR2_PACKAGE_ALSA_LIB_SEQ
 
 config BR2_PACKAGE_ALSA_UTILS_BAT
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "bat"
 	help
 	  ALSABAT (ALSA Basic Audio Tester) is a simple command-line
 	  utility intended to help automate audio driver and sound
 	  server testing with little human interaction.
 
-	  Note that analysis support in alsabat requires fftw single
-	  precision.
-
 config BR2_PACKAGE_ALSA_UTILS_IECSET
 	bool "iecset"
 	select BR2_PACKAGE_ALSA_LIB_PCM
package/alsa-utils/alsa-utils.mk +0 -0
index 986a745399..9e0094f343 100644

package/alsa-utils/alsa-utils.mk endif · line 44

Quoted 5 lines
package/alsa-utils/alsa-utils.mk +1 -1
@@ -41,7 +41,7 @@ endif
 ifeq ($(BR2_PACKAGE_ALSA_UTILS_BAT),y)
 ALSA_UTILS_CONF_OPTS += --enable-bat
 # Analysis support requires fftw single precision
-ALSA_UTILS_DEPENDENCIES += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),fftw)
+ALSA_UTILS_DEPENDENCIES += fftw-single

This turns the optional fftw dependency into a mandatory one. Is there a reason for that?

package/alsa-utils/alsa-utils.mk endif · line 47

Quoted 3 lines
package/alsa-utils/alsa-utils.mk +0 -0
 else
 ALSA_UTILS_CONF_OPTS += --disable-bat
 endif

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#12 lore raw

PATCH 2/11 alsa-utils: update DEPENDENCIES to fft-single and add select in Config.in

Hi Baruch

Quoted 39 lines · On Thu, 29 Nov 2018 06:24:15 +0200 Baruch Siach <[email protected]> wrote:

Hi Gwenhael Goavec-Merou,

Quoted 35 lines · Gwenhael Goavec-Merou

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/alsa-utils/Config.in     | 5 ++---
 package/alsa-utils/alsa-utils.mk | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)
package/alsa-utils/Config.in +2 -3
index 012f28aef4..950278d173 100644
@@ -74,15 +74,14 @@ config BR2_PACKAGE_ALSA_UTILS_ASEQNET
 	select BR2_PACKAGE_ALSA_LIB_SEQ
 
 config BR2_PACKAGE_ALSA_UTILS_BAT
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "bat"
 	help
 	  ALSABAT (ALSA Basic Audio Tester) is a simple command-line
 	  utility intended to help automate audio driver and sound
 	  server testing with little human interaction.
 
-	  Note that analysis support in alsabat requires fftw single
-	  precision.
-
 config BR2_PACKAGE_ALSA_UTILS_IECSET
 	bool "iecset"
 	select BR2_PACKAGE_ALSA_LIB_PCM
(quoted diff) +0 -0

b/package/alsa-utils/alsa-utils.mk index 986a745399..9e0094f343 100644

package/alsa-utils/alsa-utils.mk +0 -0
@@ -41,7 +41,7 @@ endif
Quoted 9 lines

package/alsa-utils/alsa-utils.mk endif · line 44

Quoted 5 lines
package/alsa-utils/alsa-utils.mk +1 -1
 ifeq ($(BR2_PACKAGE_ALSA_UTILS_BAT),y)
 ALSA_UTILS_CONF_OPTS += --enable-bat
 # Analysis support requires fftw single precision
-ALSA_UTILS_DEPENDENCIES += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),fftw)
+ALSA_UTILS_DEPENDENCIES += fftw-single  

This turns the optional fftw dependency into a mandatory one. Is there a reason for that?

It may be a misunderstanding on my part but it is explicitly noted "Analysis support requires fftw single". This assumption is confirmed by my distribution (gentoo) where fftw is added as dependency when bat option is selected.

Quoted 7 lines

package/alsa-utils/alsa-utils.mk endif · line 47

Quoted 4 lines
package/alsa-utils/alsa-utils.mk +0 -0
 else
 ALSA_UTILS_CONF_OPTS += --disable-bat
 endif  

baruch

Gwen

#13 lore raw

PATCH 2/11 alsa-utils: update DEPENDENCIES to fft-single and add select in Config.in

Hi Gwenhael Goavec-Merou,

Quoted 48 lines · Gwenhael Goavec-Merou
Quoted 37 lines · On Thu, 29 Nov 2018 06:24:15 +0200 Baruch Siach <[email protected]> wrote:
Quoted 35 lines · Gwenhael Goavec-Merou

From: Gwenhael Goavec-Merou <[email protected]>

---
 package/alsa-utils/Config.in     | 5 ++---
 package/alsa-utils/alsa-utils.mk | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)
package/alsa-utils/Config.in +2 -3
index 012f28aef4..950278d173 100644
@@ -74,15 +74,14 @@ config BR2_PACKAGE_ALSA_UTILS_ASEQNET
 	select BR2_PACKAGE_ALSA_LIB_SEQ
 
 config BR2_PACKAGE_ALSA_UTILS_BAT
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "bat"
 	help
 	  ALSABAT (ALSA Basic Audio Tester) is a simple command-line
 	  utility intended to help automate audio driver and sound
 	  server testing with little human interaction.
 
-	  Note that analysis support in alsabat requires fftw single
-	  precision.
-
 config BR2_PACKAGE_ALSA_UTILS_IECSET
 	bool "iecset"
 	select BR2_PACKAGE_ALSA_LIB_PCM
(quoted diff) +0 -0

b/package/alsa-utils/alsa-utils.mk index 986a745399..9e0094f343 100644

package/alsa-utils/alsa-utils.mk +0 -0
@@ -41,7 +41,7 @@ endif
Quoted 9 lines

package/alsa-utils/alsa-utils.mk endif · line 44

Quoted 5 lines
package/alsa-utils/alsa-utils.mk +1 -1
 ifeq ($(BR2_PACKAGE_ALSA_UTILS_BAT),y)
 ALSA_UTILS_CONF_OPTS += --enable-bat
 # Analysis support requires fftw single precision
-ALSA_UTILS_DEPENDENCIES += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),fftw)
+ALSA_UTILS_DEPENDENCIES += fftw-single

This turns the optional fftw dependency into a mandatory one. Is there a reason for that?

Quoted 4 lines

It may be a misunderstanding on my part but it is explicitly noted "Analysis support requires fftw single". This assumption is confirmed by my distribution (gentoo) where fftw is added as dependency when bat option is selected.

fftw is required for analysis support. However analysis support itself is optional. See the alsa-utils configure.ac:

if test x$bat = xtrue; then
...
AC_CHECK_LIB([fftw3f], [fftwf_malloc], , [have_libfftw3="no"])
...
if

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

#14 lore raw

PATCH 2/11 alsa-utils: update DEPENDENCIES to fft-single and add select in Config.in

Hi,

Quoted 55 lines · On Thu, 29 Nov 2018 07:56:35 +0200 Baruch Siach <[email protected]> wrote:
Quoted 49 lines · Gwenhael Goavec-Merou
Quoted 38 lines · On Thu, 29 Nov 2018 06:24:15 +0200 Baruch Siach <[email protected]> wrote:
Quoted 36 lines · Gwenhael Goavec-Merou

From: Gwenhael Goavec-Merou <[email protected]>

Signed-off-by: Gwenhael Goavec-Merou
<[email protected]> ---

 package/alsa-utils/Config.in     | 5 ++---
 package/alsa-utils/alsa-utils.mk | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)
package/alsa-utils/Config.in +2 -3
index 012f28aef4..950278d173 100644
@@ -74,15 +74,14 @@ config BR2_PACKAGE_ALSA_UTILS_ASEQNET
 	select BR2_PACKAGE_ALSA_LIB_SEQ
 
 config BR2_PACKAGE_ALSA_UTILS_BAT
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "bat"
 	help
 	  ALSABAT (ALSA Basic Audio Tester) is a simple command-line
 	  utility intended to help automate audio driver and sound
 	  server testing with little human interaction.
 
-	  Note that analysis support in alsabat requires fftw single
-	  precision.
-
 config BR2_PACKAGE_ALSA_UTILS_IECSET
 	bool "iecset"
 	select BR2_PACKAGE_ALSA_LIB_PCM
(quoted diff) +0 -0

b/package/alsa-utils/alsa-utils.mk index 986a745399..9e0094f343 100644

package/alsa-utils/alsa-utils.mk +0 -0
@@ -41,7 +41,7 @@ endif
 ifeq ($(BR2_PACKAGE_ALSA_UTILS_BAT),y)
Quoted 9 lines
Quoted 5 lines
package/alsa-utils/alsa-utils.mk +0 -1
 ALSA_UTILS_CONF_OPTS += --enable-bat
 # Analysis support requires fftw single precision
-ALSA_UTILS_DEPENDENCIES += $(if

$(BR2_PACKAGE_FFTW_PRECISION_SINGLE),fftw) +ALSA_UTILS_DEPENDENCIES += fftw-single

This turns the optional fftw dependency into a mandatory one. Is there a reason for that?

Quoted 4 lines

It may be a misunderstanding on my part but it is explicitly noted "Analysis support requires fftw single". This assumption is confirmed by my distribution (gentoo) where fftw is added as dependency when bat option is selected.

Quoted 9 lines

fftw is required for analysis support. However analysis support itself is optional. See the alsa-utils configure.ac:

if test x$bat = xtrue; then
...
AC_CHECK_LIB([fftw3f], [fftwf_malloc], , [have_libfftw3="no"])
...
if

Ok. My fault, I've not seen the "analysis support". I must modify this patch but I will wait a little for others potential reviews to avoid spamming the mailing-list with long serie of patches.

Gwen

#15 lore raw

PATCH 1/11 package/fftw : Allow all precisions to be installed at the same time.

In reply to Gwenhael Goavec-Merou

Hi Gwenhael,

Quoted 8 lines · Gwenhael Goavec-Merou

From: Gwenhael Goavec-Merou <[email protected]>

fftw's library name depends on the precision option. Consequently, it's possible to install multiple flavor on the same target.

This patch split current fftw in 5 part:
- 1 to provide common variables
- 4 to provide specificities for each precision.

This is a huge change, and IIUC all patches should in fact be squashed since
this change breaks all packages depending on fftw...

Maybe a more gradual approach would be to break out the individual packages one
by one. E.g. start with adding the fftw-single package independently of the rest, then convert other packages to depend on fftw-single instead of fftw, then remove BR2_PACKAGE_FFTW_PRECISION_SINGLE.

Finally, you forgot legacy handling. When you remove
BR2_PACKAGE_FFTW_PRECISION_SINGLE, there should be an entry added to Config.in.legacy that select BR2_PACKAGE_FFTW_SINGLE. Or you have to call the package fftw-precision-single, of course.

[snip]

package/fftw/fftw-double/fftw-double.mk line 3

Quoted 5 lines

+++ b/package/fftw/fftw-double/fftw-double.mk

package/fftw/fftw-double/fftw-double.mk new file +3 -0
@@ -0,0 +1,23 @@
+################################################################################
+#
+# fft-double

fftw-double

Don't forget to run check-package!

Quoted 10 lines
package/fftw/fftw-double/fftw-double.mk new file +10 -0
+#
+################################################################################
+
+FFTW_PRECISION_DOUBLE_VERSION = $(FFTW_VERSION)
+FFTW_PRECISION_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_PRECISION_DOUBLE_SITE = $(FFTW_SITE)
+FFTW_PRECISION_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_PRECISION_DOUBLE_LICENSE = $(FFTW_LICENSE)
+FFTW_PRECISION_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+

package/fftw/fftw-double/fftw-double.mk line 23

Quoted 10 lines
package/fftw/fftw-double/fftw-double.mk new file +10 -0
+FFTW_PRECISION_DOUBLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_PRECISION_DOUBLE_CONF_OPTS= $(FFTW_CONF_OPTS)
+
+FFTW_PRECISION_DOUBLE_CFLAGS = $(FFTW_CFLAGS)
+
+# x86 optimisations
+FFTW_PRECISION_DOUBLE_CONF_OPTS += $(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2
+
+$(eval $(autotools-package))

This doesn't work: the package is actually called 'fftw-double', so it will use
variables FFTW_DOUBLE_VERSION etc., not FFTW_PRECISION_DOUBLE_VERSION. I don't know how you tested this, but it can't possibly work...

[snip]

#16 lore raw

PATCH 1/11 package/fftw : Allow all precisions to be installed at the same time.

Gwenhael, Arnout, All,

On 2018-12-03 17:32 +0100, Arnout Vandecappelle spake thusly:

Quoted 18 lines · Gwenhael Goavec-Merou
Quoted 8 lines

From: Gwenhael Goavec-Merou <[email protected]>

fftw's library name depends on the precision option. Consequently, it's possible to install multiple flavor on the same target.

This patch split current fftw in 5 part:
- 1 to provide common variables
- 4 to provide specificities for each precision.

This is a huge change, and IIUC all patches should in fact be squashed since
this change breaks all packages depending on fftw...

Maybe a more gradual approach would be to break out the individual packages one
by one. E.g. start with adding the fftw-single package independently of the rest, then convert other packages to depend on fftw-single instead of fftw, then remove BR2_PACKAGE_FFTW_PRECISION_SINGLE.

Quoted 4 lines

Finally, you forgot legacy handling. When you remove
BR2_PACKAGE_FFTW_PRECISION_SINGLE, there should be an entry added to Config.in.legacy that select BR2_PACKAGE_FFTW_SINGLE. Or you have to call the package fftw-precision-single, of course.

What about another approach:

- add a new packages for each of fftw-{single,double,long-double,quad},
- make fftw depends on all of those that are actually enabled, but fftw by itself does nothing,
- if fftw is enabled, ensure that at least one variant is enabled.

Thus, packages that need any flavour of fftw can just select/depend on fftw, while those that require specific variant would select/depend what they need.

Regards,
Yann E. MORIN.

Quoted 41 lines

[snip]

package/fftw/fftw-double/fftw-double.mk line 3

Quoted 5 lines

+++ b/package/fftw/fftw-double/fftw-double.mk

package/fftw/fftw-double/fftw-double.mk new file +3 -0
@@ -0,0 +1,23 @@
+################################################################################
+#
+# fft-double

fftw-double

Don't forget to run check-package!

Quoted 10 lines
package/fftw/fftw-double/fftw-double.mk new file +10 -0
+#
+################################################################################
+
+FFTW_PRECISION_DOUBLE_VERSION = $(FFTW_VERSION)
+FFTW_PRECISION_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_PRECISION_DOUBLE_SITE = $(FFTW_SITE)
+FFTW_PRECISION_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_PRECISION_DOUBLE_LICENSE = $(FFTW_LICENSE)
+FFTW_PRECISION_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+

package/fftw/fftw-double/fftw-double.mk line 23

Quoted 10 lines
package/fftw/fftw-double/fftw-double.mk new file +10 -0
+FFTW_PRECISION_DOUBLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_PRECISION_DOUBLE_CONF_OPTS= $(FFTW_CONF_OPTS)
+
+FFTW_PRECISION_DOUBLE_CFLAGS = $(FFTW_CFLAGS)
+
+# x86 optimisations
+FFTW_PRECISION_DOUBLE_CONF_OPTS += $(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2
+
+$(eval $(autotools-package))

This doesn't work: the package is actually called 'fftw-double', so it will use
variables FFTW_DOUBLE_VERSION etc., not FFTW_PRECISION_DOUBLE_VERSION. I don't know how you tested this, but it can't possibly work...

[snip]
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'