Skip to contentSkip to conversation

fftw: breaks fftw-single into a dedicated package

PATCH New Gwenhael Goavec-Merou 3 participants 29 messages Dec 12, 2018 – Dec 16, 2018

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/14 fftw: breaks fftw-single into a dedicated package

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 breaks fftw single precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_SINGLE, BR2_PACKAGE_FFTW_SINGLE must be used instead;
- suppress BR2_PACKAGE_FFTW_USE_SSE and BR2_PACKAGE_FFTW_USE_NEON since options are only available on single precision. Corresponding options are directly handled in fftw-single package;
- do fftw depends on fftw-single when this package is enabled.

---
Changes v1 -> v2:
* BR2_PACKAGE_FFTW_PRECISION_SINGLE -> BR2_PACKAGE_FFTW_SINGLE (Arnout)
* old symbol deprecation (Arnout)
* split big monolithic patch into a serie (Arnout)
* add dependency between fftw and fftw-single (Yann)

---
 Config.in.legacy                          |  9 +++++++
 package/fftw/Config.in                    | 17 ++----------
 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                      | 12 ++++-----
 6 files changed, 56 insertions(+), 21 deletions(-)
 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
Config.in.legacy +9 -0
index 37119d7e58..1eef04923e 100644
@@ -145,6 +145,15 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2019.02"
 
+config BR2_PACKAGE_FFTW_PRECISION_SINGLE
+	bool "fftw single precision option was replaced by package"
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_SINGLE
+	help
+	  fftw single precision option was replaced by dedicated
+	  package.
+
 config BR2_PACKAGE_LUA_5_2
 	bool "Lua 5.2.x version removed"
 	select BR2_LEGACY
package/fftw/Config.in +2 -15
index d51f8f3c51..97b1c8a6dc 100644
@@ -12,30 +12,15 @@ 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
@@ -62,6 +47,8 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
 
 endchoice
 
+source "package/fftw/fftw-single/Config.in"
+
 config BR2_PACKAGE_FFTW_FAST
 	bool "optimise for speed over accuracy"
 	help
package/fftw/fftw-single/Config.in new file +5 -0
new file mode 100644
index 0000000000..ff1486871d
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_FFTW_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..9adfe08f5e
@@ -0,0 +1,33 @@
+################################################################################
+#
+# fftw-single
+#
+################################################################################
+
+FFTW_SINGLE_VERSION = $(FFTW_VERSION)
+FFTW_SINGLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_SINGLE_SITE = $(FFTW_SITE)
+FFTW_SINGLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_SINGLE_LICENSE = $(FFTW_LICENSE)
+FFTW_SINGLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_SINGLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_SINGLE_CONF_OPTS = $(FFTW_CONF_OPTS)
+FFTW_SINGLE_CONF_OPTS += --enable-single
+
+FFTW_SINGLE_CFLAGS = $(FFTW_CFLAGS)
+
+# x86 optimisations
+FFTW_SINGLE_CONF_OPTS += $(if $(BR2_X86_CPU_HAS_SSE),--enable,--disable)-sse
+FFTW_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_SINGLE_CONF_OPTS += --enable-neon
+FFTW_SINGLE_CFLAGS += -mfpu=neon
+else
+FFTW_SINGLE_CONF_OPTS += --disable-neon
+endif
+
+$(eval $(autotools-package))
package/fftw/fftw.mk +6 -6
index b167a2f6f7..0c11c6a720 100644
@@ -10,6 +10,10 @@ FFTW_INSTALL_STAGING = YES
 FFTW_LICENSE = GPL-2.0+
 FFTW_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y)
+FFTW_DEPENDENCIES += fftw-single
+endif
+
 # fortran support only enables generation and installation of fortran sources
 ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
 FFTW_CONF_OPTS += --enable-fortran
@@ -18,7 +22,6 @@ 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
 
@@ -28,13 +31,8 @@ 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
@@ -47,3 +45,5 @@ 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 v2 2/14 fftw: breaks fftw-long-double into a dedicated package

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 breaks fftw long double precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE, BR2_PACKAGE_FFTW_LONG_DOUBLE must be used instead;
- do fftw depends on fftw-long-double when this package is enabled.

---
Changes v1 -> v2:
* BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE -> BR2_PACKAGE_FFTW_LONG_DOUBLE (Arnout)
* old symbol deprecation (Arnout)
* split big monolithic patch into a serie (Arnout)
* add dependency between fftw and fftw-long-double (Yann)

---
 Config.in.legacy                              |  9 ++++++++
 package/fftw/Config.in                        | 10 +--------
 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.mk                          |  5 ++++-
 6 files changed, 44 insertions(+), 10 deletions(-)
 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
Config.in.legacy +9 -0
index 1eef04923e..b376a88217 100644
@@ -145,6 +145,15 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2019.02"
 
+config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
+	bool "fftw long double precision option was replaced by package"
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_LONG_DOUBLE
+	help
+	  fftw long double precision option was replaced by dedicated
+	  package.
+
 config BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "fftw single precision option was replaced by package"
 	select BR2_LEGACY
package/fftw/Config.in +1 -9
index 97b1c8a6dc..5c87babed9 100644
@@ -28,15 +28,6 @@ config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
 	  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
@@ -47,6 +38,7 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
 
 endchoice
 
+source "package/fftw/fftw-long-double/Config.in"
 source "package/fftw/fftw-single/Config.in"
 
 config BR2_PACKAGE_FFTW_FAST
package/fftw/fftw-long-double/Config.in new file +8 -0
new file mode 100644
index 0000000000..3ee1762850
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_FFTW_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..dfbf198e85
@@ -0,0 +1,21 @@
+################################################################################
+#
+# fftw-long-double
+#
+################################################################################
+
+FFTW_LONG_DOUBLE_VERSION = $(FFTW_VERSION)
+FFTW_LONG_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_LONG_DOUBLE_SITE = $(FFTW_SITE)
+FFTW_LONG_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_LONG_DOUBLE_LICENSE = $(FFTW_LICENSE)
+FFTW_LONG_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_LONG_DOUBLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_LONG_DOUBLE_CONF_OPTS = $(FFTW_CONF_OPTS)
+FFTW_LONG_DOUBLE_CONF_OPTS += --enable-long-double
+
+FFTW_LONG_DOUBLE_CFLAGS = $(FFTW_CFLAGS)
+
+$(eval $(autotools-package))
package/fftw/fftw.mk +4 -1
index 0c11c6a720..4e30778a78 100644
@@ -10,6 +10,10 @@ FFTW_INSTALL_STAGING = YES
 FFTW_LICENSE = GPL-2.0+
 FFTW_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_PACKAGE_FFTW_LONG_DOUBLE),y)
+FFTW_DEPENDENCIES += fftw-long-double
+endif
+
 ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y)
 FFTW_DEPENDENCIES += fftw-single
 endif
@@ -22,7 +26,6 @@ else
 FFTW_CONF_OPTS += --disable-fortran
 endif
 
-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)
Signature · 1 line
2.19.2
#2 lore raw

PATCH v2 2/14 fftw: breaks fftw-long-double into a dedicated package

Quoted 6 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.

Quoted 6 lines

This patch breaks fftw long double precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE, BR2_PACKAGE_FFTW_LONG_DOUBLE must be used instead;
- do fftw depends on fftw-long-double when this package is enabled.

Testing: compile-tested all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#3 lore raw

PATCH v2 3/14 fftw: breaks fftw-quad into a dedicated package

In reply to 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 breaks fftw quad precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_QUAD, BR2_PACKAGE_FFTW_QUAD must be used instead;
- do fftw depends on fftw-long-quad when this package is enabled.

---
Changes v1 -> v2:
* BR2_PACKAGE_FFTW_PRECISION_QUAD -> BR2_PACKAGE_FFTW_QUAD (Arnout)
* old symbol deprecation (Arnout)
* split big monolithic patch into a serie (Arnout)
* add dependency between fftw and fftw-long-double (Yann)

---
 Config.in.legacy                      |  9 +++++++++
 package/fftw/Config.in                |  9 +--------
 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.mk                  |  6 ++++--
 6 files changed, 43 insertions(+), 10 deletions(-)
 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
Config.in.legacy +9 -0
index b376a88217..06a5803ff5 100644
@@ -154,6 +154,15 @@ config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
 	  fftw long double precision option was replaced by dedicated
 	  package.
 
+config BR2_PACKAGE_FFTW_PRECISION_QUAD
+	bool "fftw quad precision option was replaced by package"
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_QUAD
+	help
+	  fftw quad precision option was replaced by dedicated
+	  package.
+
 config BR2_PACKAGE_FFTW_PRECISION_SINGLE
 	bool "fftw single precision option was replaced by package"
 	select BR2_LEGACY
package/fftw/Config.in +1 -8
index 5c87babed9..945fd5d173 100644
@@ -28,18 +28,11 @@ config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
 	  Compile fftw in double precision (the default), i.e. use
 	  '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
 
 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"
package/fftw/fftw-quad/Config.in new file +7 -0
new file mode 100644
index 0000000000..bb724bc260
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_FFTW_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..4eb2a1a441
@@ -0,0 +1,21 @@
+################################################################################
+#
+# fftw-quad
+#
+################################################################################
+
+FFTW_QUAD_VERSION = $(FFTW_VERSION)
+FFTW_QUAD_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_QUAD_SITE = $(FFTW_SITE)
+FFTW_QUAD_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_QUAD_LICENSE = $(FFTW_LICENSE)
+FFTW_QUAD_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_QUAD_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_QUAD_CONF_OPTS = $(FFTW_CONF_OPTS)
+FFTW_QUAD_CONF_OPTS += --enable-quad-precision
+
+FFTW_QUAD_CFLAGS = $(FFTW_CFLAGS)
+
+$(eval $(autotools-package))
package/fftw/fftw.mk +4 -2
index 4e30778a78..499e0ed1ad 100644
@@ -14,6 +14,10 @@ ifeq ($(BR2_PACKAGE_FFTW_LONG_DOUBLE),y)
 FFTW_DEPENDENCIES += fftw-long-double
 endif
 
+ifeq ($(BR2_PACKAGE_FFTW_QUAD),y)
+FFTW_DEPENDENCIES += fftw-quad
+endif
+
 ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y)
 FFTW_DEPENDENCIES += fftw-single
 endif
@@ -26,8 +30,6 @@ else
 FFTW_CONF_OPTS += --disable-fortran
 endif
 
-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
Signature · 1 line
2.19.2
#4 lore raw

PATCH v2 3/14 fftw: breaks fftw-quad into a dedicated package

Quoted 6 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.

Quoted 6 lines

This patch breaks fftw quad precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_QUAD, BR2_PACKAGE_FFTW_QUAD must be used instead;
- do fftw depends on fftw-long-quad when this package is enabled.

#5 lore raw

PATCH v2 4/14 fftw: breaks fftw-double into a dedicated package

In reply to 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 breaks fftw double precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_DOUBLE, BR2_PACKAGE_FFTW_DOUBLE must be used instead;
- suppress BR2_PACKAGE_FFTW_USE_SSE2 since option is only available on single and double precision. Corresponding options are directly
handled in fftw-double package;
- do fftw depends on fftw-double when this package is enabled.
- select this option when fftw is enabled and no precision is enabled

---
Changes v1 -> v2:
* BR2_PACKAGE_FFTW_PRECISION_DOUBLE -> BR2_PACKAGE_FFTW_DOUBLE (Arnout)
* old symbol deprecation (Arnout)
* split big monolithic patch into a serie (Arnout)
* add dependency between fftw and fftw-double (Yann)

---
 Config.in.legacy                          |  9 +++++++++
 package/fftw/Config.in                    | 23 +++++------------------
 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.mk                      |  9 ++++-----
 6 files changed, 47 insertions(+), 23 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
Config.in.legacy +9 -0
index 06a5803ff5..fa157dc4ec 100644
@@ -145,6 +145,15 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2019.02"
 
+config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
+	bool "fftw double precision option was replaced by package"
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_DOUBLE
+	help
+	  fftw double precision option was replaced by dedicated
+	  package.
+
 config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
 	bool "fftw long double precision option was replaced by package"
 	select BR2_LEGACY
package/fftw/Config.in +5 -18
index 945fd5d173..3f04f16454 100644
@@ -1,5 +1,9 @@
 config BR2_PACKAGE_FFTW
 	bool "fftw"
+	select BR2_PACKAGE_FFTW_DOUBLE if \
+		!BR2_PACKAGE_FFTW_SINGLE && \
+		!BR2_PACKAGE_FFTW_QUAD && \
+		!BR2_PACKAGE_FFTW_LONG_DOUBLE
 	help
 	  Library for computing Fast Fourier Transforms.
 
@@ -12,24 +16,7 @@ config BR2_PACKAGE_FFTW
 
 if BR2_PACKAGE_FFTW
 
-config BR2_PACKAGE_FFTW_USE_SSE2
-	bool
-
-choice
-	prompt "fftw precision"
-	default BR2_PACKAGE_FFTW_PRECISION_DOUBLE
-	help
-	  Selects fftw precision
-
-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.
-
-endchoice
-
+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"
package/fftw/fftw-double/Config.in new file +5 -0
new file mode 100644
index 0000000000..cfcd1ef997
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_FFTW_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..2923a86783
@@ -0,0 +1,23 @@
+################################################################################
+#
+# fftw-double
+#
+################################################################################
+
+FFTW_DOUBLE_VERSION = $(FFTW_VERSION)
+FFTW_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_DOUBLE_SITE = $(FFTW_SITE)
+FFTW_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_DOUBLE_LICENSE = $(FFTW_LICENSE)
+FFTW_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_DOUBLE_CONF_ENV = $(FFTW_CONF_ENV)
+
+FFTW_DOUBLE_CONF_OPTS= $(FFTW_CONF_OPTS)
+
+FFTW_DOUBLE_CFLAGS = $(FFTW_CFLAGS)
+
+# x86 optimisations
+FFTW_DOUBLE_CONF_OPTS += $(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2
+
+$(eval $(autotools-package))
package/fftw/fftw.mk +4 -5
index 499e0ed1ad..69db09dcd4 100644
@@ -10,6 +10,10 @@ FFTW_INSTALL_STAGING = YES
 FFTW_LICENSE = GPL-2.0+
 FFTW_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)
+FFTW_DEPENDENCIES += fftw-double
+endif
+
 ifeq ($(BR2_PACKAGE_FFTW_LONG_DOUBLE),y)
 FFTW_DEPENDENCIES += fftw-long-double
 endif
@@ -35,9 +39,6 @@ ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
 FFTW_CFLAGS += -O3 -ffast-math
 endif
 
-# x86 optimisations
-FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
-
 # Generic optimisations
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 FFTW_CONF_OPTS += --enable-threads
@@ -49,6 +50,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
#6 lore raw

PATCH v2 4/14 fftw: breaks fftw-double into a dedicated package

Quoted 15 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 breaks fftw double precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_DOUBLE, BR2_PACKAGE_FFTW_DOUBLE must be used instead;
- suppress BR2_PACKAGE_FFTW_USE_SSE2 since option is only available on single and double precision. Corresponding options are directly
handled in fftw-double package;
- do fftw depends on fftw-double when this package is enabled.
- select this option when fftw is enabled and no precision is enabled

Quoted 1 line

Testing: compile-tested all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#7 lore raw

PATCH v2 5/14 alsa-utils: update DEPENDENCIES to fftw-single

In reply to Gwenhael Goavec-Merou

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

---
Changes v1 -> v2:
* suppress dependency between alsa-utils and fftw-single (Baruch)

---
 package/alsa-utils/alsa-utils.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/alsa-utils/alsa-utils.mk +1 -1
index 0bf2b432bd..658ab01fff 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 += $(if $(BR2_PACKAGE_FFTW_SINGLE),fftw-single)
 else
 ALSA_UTILS_CONF_OPTS += --disable-bat
 endif
Signature · 1 line
2.19.2
#8 lore raw

PATCH v2 5/14 alsa-utils: update DEPENDENCIES to fftw-single

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of alsa-utils with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

Side-note: this patch didn't seem to end up in the same series on patchwork... https://patchwork.ozlabs.org/project/buildroot/list/?series=81308
and https://patchwork.ozlabs.org/patch/1011646/

#9 lore raw

PATCH v2 6/14 aubio: update DEPENDENCIES to ffw-single or fftw-double depending on enabled option

In reply to Gwenhael Goavec-Merou

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

---
 package/aubio/aubio.mk | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
package/aubio/aubio.mk +5 -4
index b0cc8b899e..69d0815ab5 100644
@@ -27,7 +27,7 @@ AUBIO_CONF_OPTS += --disable-sndfile
 endif
 
 # Could not compile aubio in double precision mode with libsamplerate
-ifeq ($(BR2_PACKAGE_LIBSAMPLERATE)$(BR2_PACKAGE_FFTW_PRECISION_SINGLE),yy)
+ifeq ($(BR2_PACKAGE_LIBSAMPLERATE)$(BR2_PACKAGE_FFTW_SINGLE),yy)
 AUBIO_DEPENDENCIES += libsamplerate
 AUBIO_CONF_OPTS += --enable-samplerate
 else
@@ -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)
+ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)
 AUBIO_CONF_OPTS += --enable-fftw3 --enable-double
-else ifeq ($(BR2_PACKAGE_FFTW_PRECISION_SINGLE),y)
+AUBIO_DEPENDENCIES += fftw-double
+else ifeq ($(BR2_PACKAGE_FFTW_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
#10 lore raw

PATCH v2 6/14 aubio: update DEPENDENCIES to ffw-single or fftw-double depending on enabled option

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of aubio with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#11 lore raw

PATCH v2 7/14 gnuradio: change depend to select for fftw and use fftw-single in DEPENDENCIES

In reply to Gwenhael Goavec-Merou

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..533a49c81e 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_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
#12 lore raw

PATCH v2 7/14 gnuradio: change depend to select for fftw and use fftw-single in DEPENDENCIES

Quoted 7 lines · Gwenhael Goavec-Merou

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

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

Testing: compile-tested a build of gnuradio with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available). Turned on GNURADIO_FFT when on permutations with FFTW_SINGLE.

#13 lore raw

PATCH v2 8/14 gqrx: suppress fft depend since fft's precision is selected by gnuradio

In reply to Gwenhael Goavec-Merou

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
#15 lore raw

PATCH v2 9/14 use select instead of depend for fftw package and fix DEPENDENCIES

In reply to Gwenhael Goavec-Merou

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..b86790f2b0 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_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
#16 lore raw

PATCH v2 9/14 use select instead of depend for fftw package and fix DEPENDENCIES

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of hackrf with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available). Only built hackrf with permutations where I wanted FFTW_SINGLE enabled, since it selects it.

#17 lore raw

PATCH v2 10/14 httping: update package to use new fftw structure

In reply to Gwenhael Goavec-Merou

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..b3a625a8e1 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_DOUBLE),fftw-double)
 HTTPING_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) \
-	FW=$(if $(BR2_PACKAGE_FFTW),yes,no) \
+	FW=$(if $(BR2_PACKAGE_FFTW_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
#18 lore raw

PATCH v2 10/14 httping: update package to use new fftw structure

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of httping with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#19 lore raw

PATCH v2 11/14 imagemagick: reference explicitly fftw double

In reply to Gwenhael Goavec-Merou

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..7678980582 100644
@@ -113,11 +113,11 @@ else
 IMAGEMAGICK_CONF_OPTS += --without-lzma
 endif
 
-ifeq ($(BR2_PACKAGE_FFTW),y)
+ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),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
#20 lore raw

PATCH v2 11/14 imagemagick: reference explicitly fftw double

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of imagemagick with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#21 lore raw

PATCH v2 12/14 libvips: reference explicitly fftw double

In reply to Gwenhael Goavec-Merou

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..7622f32fbc 100644
@@ -68,9 +68,9 @@ else
 LIBVIPS_CONF_OPTS += --without-tiff
 endif
 
-ifeq ($(BR2_PACKAGE_FFTW),y)
+ifeq ($(BR2_PACKAGE_FFTW_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
#22 lore raw

PATCH v2 12/14 libvips: reference explicitly fftw double

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of libvips with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#23 lore raw

PATCH v2 13/14 pulseaudio: update dependency to fftw-single

In reply to Gwenhael Goavec-Merou

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..c91af22935 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_SINGLE),fftw-single) \
 	$(if $(BR2_PACKAGE_SYSTEMD),systemd)
 
 ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y)
Signature · 1 line
2.19.2
#24 lore raw

PATCH v2 13/14 pulseaudio: update dependency to fftw-single

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of pulseaudio with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#25 lore raw

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

In reply to Gwenhael Goavec-Merou

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

---
 package/liquid-dsp/liquid-dsp.mk | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
package/liquid-dsp/liquid-dsp.mk +6 -3
index e3114a2d15..6aa27a5248 100644
@@ -30,8 +30,9 @@ LIQUID_DSP_CFLAGS += -ffast-math
 endif
 
 # use FFTW instead of built-in FFT
-ifeq ($(BR2_PACKAGE_FFTW_PRECISION_SINGLE),y)
+ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y)
 LIQUID_DSP_LDFLAGS += -lfftw3f
+LIQUID_DSP_DEPENDENCIES += fftw-single
 endif
 
 # disable altivec, it has build issues
@@ -39,12 +40,14 @@ ifeq ($(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y)
 LIQUID_DSP_CONF_OPTS += --enable-simdoverride
 endif
 
-ifeq ($(BR2_PACKAGE_FFTW_PRECISION_DOUBLE),y)
+ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)
 LIQUID_DSP_LDFLAGS += -lfftw3
+LIQUID_DSP_DEPENDENCIES += fftw-double
 endif
 
-ifeq ($(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),y)
+ifeq ($(BR2_PACKAGE_FFTW_LONG_DOUBLE),y)
 LIQUID_DSP_LDFLAGS += -lfftw3l
+LIQUID_DSP_DEPENDENCIES += fftw-long-double
 endif
 
 LIQUID_DSP_CONF_OPTS += \
Signature · 1 line
2.19.2
#26 lore raw

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

Quoted 4 lines · Gwenhael Goavec-Merou

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

Testing: compile-tested a build of liquid-dsp with all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

#27 lore raw

PATCH v2 1/14 fftw: breaks fftw-single into a dedicated package

In reply to Gwenhael Goavec-Merou
Quoted 14 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 breaks fftw single precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_SINGLE, BR2_PACKAGE_FFTW_SINGLE must be used instead;
- suppress BR2_PACKAGE_FFTW_USE_SSE and BR2_PACKAGE_FFTW_USE_NEON since options are only available on single precision. Corresponding options are directly handled in fftw-single package;
- do fftw depends on fftw-single when this package is enabled.

Quoted 1 line

Testing: compile-tested all the permutations of enabling/disabling fftw-single, fftw-double, and fftw-long-double on an aarch64 build (so no fftw-quad available)

Thanks for your work on this patch series, Gwenhael! I ran into this awhile back, where I noticed I could only select one FFTW build, and I had some issues with liquid-dsp depending on which one was selected. I decided to just pick the one option that worked even though I would have liked to have another available. I was too busy at the time to spend time trying to fix it.

#28 lore raw

PATCH v2 1/14 fftw: breaks fftw-single into a dedicated package

In reply to Gwenhael Goavec-Merou

Hello,

Quoted 20 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 breaks fftw single precision into a new package and:
- deprecates BR2_PACKAGE_FFTW_PRECISION_SINGLE, BR2_PACKAGE_FFTW_SINGLE must be used instead;
- suppress BR2_PACKAGE_FFTW_USE_SSE and BR2_PACKAGE_FFTW_USE_NEON since options are only available on single precision. Corresponding options are directly handled in fftw-single package;
- do fftw depends on fftw-single when this package is enabled.

---
Changes v1 -> v2:
* BR2_PACKAGE_FFTW_PRECISION_SINGLE -> BR2_PACKAGE_FFTW_SINGLE (Arnout)
* old symbol deprecation (Arnout)
* split big monolithic patch into a serie (Arnout)
* add dependency between fftw and fftw-single (Yann)

Quoted 11 lines
---
 Config.in.legacy                          |  9 +++++++
 package/fftw/Config.in                    | 17 ++----------
 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                      | 12 ++++-----
 6 files changed, 56 insertions(+), 21 deletions(-)
 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

For information: Yann and me have started reviewing/testing/tweaking this patch series today. We found a number of things to improve, and I'll continue working on this.

So I'd be nice if Arnout/Peter you could wait before applying this, and consider it is in my queue of patches to apply. I'll mark the patches as delegated to me.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com