All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages
@ 2018-12-31 13:30 Thomas Petazzoni
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 01/17] package/fftw: prepare for splitting " Thomas Petazzoni
                   ` (16 more replies)
  0 siblings, 17 replies; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

Hello,

This is a respin of Gwenhael patch series, after Yann and myself did a
review. We found enough things to fix/improve that posting a new
iteration makes sense.

Changes since v2:

 - Bisectability has been fixed. With Gwenhael patch series, the
   bisectability was not fully preserved accross the entire patch
   series. Indeed, Gwenhael was dropping the fftw package as soon as
   PATCH 4 of his series, before all users have been
   converted. Instead in this series, we keep the fftw package as a
   compatibility thing until the end of the series. Also, Gwenhael
   series was switching the BR2_PACKAGE_FFTW_PRECISION_* options
   legacy in the first patches of the series, even if they are still
   used by fftw users. We now do that at the end of the series, when
   dropping the fftw package.

 - Use DL_SUBDIR to avoid downloading the FFTW source code for each of
   the fftw subpackages.

 - Add a preparation patch that tweaks package/fftw/fftw.mk to clearly
   identify the parts that will be common to all fftw subpackages (and
   therefore will stay in fftw.mk) from the parts specific to each
   fftw variant.

 - Improve the commit logs and titles of the various commits.

 - Add a patch that drops support for fftw-double and fftw-long-double
   from liquid-dsp, since liquid-dsp cannot use any of these.

Since the patch series has been changed significantly, I have not kept
the Reviewed-by/Tested-by from Joel Carlson.

Best regards,

Thomas

Gwenhael Goavec-Merou (14):
  package/fftw: break fftw-single into a dedicated package
  package/fftw: break fftw-long-double into a dedicated package
  package/fftw: break fftw-quad into a dedicated package
  package/fftw: break fftw-double into a dedicated package
  package/alsa-utils: use the new fftw-single package
  package/aubio: use the new fftw-double and fftw-single packages
  package/gnuradio: use the new fftw-single package
  package/gqrx: remove unneeded fftw dependency
  package/hackrf: use the new fftw-single package
  package/httping: use the new fftw-double package
  package/imagemagick: use the new fftw-double package
  package/libvips: use the new fftw-double package
  package/pulseaudio: use the new fftw-single package
  package/liquid-dsp: use the new fftw-{single,double,long-double}
    packages

Thomas Petazzoni (3):
  package/fftw: prepare for splitting into multiple packages
  package/fftw: remove as regular package
  package/liquid-dsp: drop support for fftw-double and fftw-long-double

 Config.in.legacy                              | 36 +++++++++++++
 package/alsa-utils/alsa-utils.mk              |  2 +-
 package/aubio/aubio.mk                        | 13 +++--
 package/fftw/Config.in                        | 53 ++-----------------
 package/fftw/fftw-double/Config.in            |  5 ++
 package/fftw/fftw-double/fftw-double.hash     |  1 +
 package/fftw/fftw-double/fftw-double.mk       | 22 ++++++++
 package/fftw/fftw-long-double/Config.in       |  8 +++
 .../fftw-long-double/fftw-long-double.hash    |  1 +
 .../fftw/fftw-long-double/fftw-long-double.mk | 22 ++++++++
 package/fftw/fftw-quad/Config.in              |  7 +++
 package/fftw/fftw-quad/fftw-quad.hash         |  1 +
 package/fftw/fftw-quad/fftw-quad.mk           | 22 ++++++++
 package/fftw/fftw-single/Config.in            |  5 ++
 package/fftw/fftw-single/fftw-single.hash     |  1 +
 package/fftw/fftw-single/fftw-single.mk       | 37 +++++++++++++
 package/fftw/fftw.mk                          | 33 ++++--------
 package/gnuradio/Config.in                    |  8 +--
 package/gnuradio/gnuradio.mk                  |  2 +-
 package/gqrx/Config.in                        |  6 +--
 package/hackrf/Config.in                      |  6 +--
 package/hackrf/hackrf.mk                      |  2 +-
 package/httping/httping.mk                    |  4 +-
 package/imagemagick/imagemagick.mk            |  4 +-
 package/libvips/libvips.mk                    |  4 +-
 package/liquid-dsp/liquid-dsp.mk              | 14 +----
 package/pulseaudio/pulseaudio.mk              |  2 +-
 27 files changed, 206 insertions(+), 115 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

-- 
2.20.1

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 01/17] package/fftw: prepare for splitting into multiple packages
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 10:14   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package Thomas Petazzoni
                   ` (15 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

In preparation for splitting into multiple packages, this commit
changes the fftw.mk package to use FFTW_COMMON_CONF_OPTS,
FFTW_COMMON_CONF_ENV and FFTW_COMMON_CFLAGS, which will be re-used by
the soon-to-be-introduced per-precision packages.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/fftw/fftw.mk | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index b167a2f6f7..8b76b7c190 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -12,38 +12,40 @@ FFTW_LICENSE_FILES = COPYING
 
 # fortran support only enables generation and installation of fortran sources
 ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
-FFTW_CONF_OPTS += --enable-fortran
-FFTW_CONF_ENV += FLIBS="-lgfortran -lm"
+FFTW_COMMON_CONF_OPTS += --enable-fortran
+FFTW_COMMON_CONF_ENV += FLIBS="-lgfortran -lm"
 else
-FFTW_CONF_OPTS += --disable-fortran
+FFTW_COMMON_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)
+FFTW_COMMON_CFLAGS = $(TARGET_CFLAGS)
 ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
-FFTW_CFLAGS += -O3 -ffast-math
+FFTW_COMMON_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
+FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
+FFTW_COMMON_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)
+FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
+FFTW_COMMON_CFLAGS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),-mfpu=neon)
 
 # Generic optimisations
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
-FFTW_CONF_OPTS += --enable-threads
-FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--without,--with)-combined-threads
+FFTW_COMMON_CONF_OPTS += --enable-threads
+FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--without,--with)-combined-threads
 else
-FFTW_CONF_OPTS += --disable-threads
+FFTW_COMMON_CONF_OPTS += --disable-threads
 endif
-FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
-
-FFTW_CONF_OPTS += CFLAGS="$(FFTW_CFLAGS)"
+FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
+
+FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
+FFTW_CONF_OPTS += \
+	$(FFTW_COMMON_CONF_OPTS) \
+	$(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single \
+	$(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double \
+	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
+	CFLAGS="$(FFTW_COMMON_CFLAGS)"
 
 $(eval $(autotools-package))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 01/17] package/fftw: prepare for splitting " Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 11:09   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 03/17] package/fftw: break fftw-long-double " Thomas Petazzoni
                   ` (14 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

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:

- makes BR2_PACKAGE_FFTW_PRECISION_SINGLE select
  BR2_PACKAGE_FFTW_SINGLE to keep compatibility with packages that use
  BR2_PACKAGE_FFTW_PRECISION_SINGLE. This option will be removed in a
  follow-up commit;

- removes the BR2_PACKAGE_FFTW_USE_SSE and BR2_PACKAGE_FFTW_USE_NEON
  otpions since they are only used for single precision. The
  corresponding CPU-capability options are directly handled in
  the fftw-single package;

- makes fftw depend on fftw-single when this package is enabled.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
[Yann/Thomas:
 - Force --disable-single in FFTW_CONF_OPTS, just for the sake of
   clarity (fftw is no longer going to build the single variant)
 - Use FFTW_SINGLE_DL_SUBDIR to avoid downloading fftw multiple times
 - Minor reformatting tweaks in fftw-single.mk
 - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_SINGLE and instead make
   it select BR2_PACKAGE_FFTW_SINGLE, so that packages using
   BR2_PACKAGE_FFTW_PRECISION_SINGLE continue to work.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/fftw/Config.in                    | 12 ++------
 package/fftw/fftw-single/Config.in        |  5 +++
 package/fftw/fftw-single/fftw-single.hash |  1 +
 package/fftw/fftw-single/fftw-single.mk   | 37 +++++++++++++++++++++++
 package/fftw/fftw.mk                      | 14 +++++----
 5 files changed, 54 insertions(+), 15 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

diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index d51f8f3c51..f61784de50 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -12,15 +12,9 @@ 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
@@ -29,9 +23,7 @@ choice
 
 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
+	select BR2_PACKAGE_FFTW_SINGLE
 	help
 	  Compile fftw in single precision, i.e. use 'float' for
 	  floating point type.
@@ -62,6 +54,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
diff --git a/package/fftw/fftw-single/Config.in b/package/fftw/fftw-single/Config.in
new file mode 100644
index 0000000000..ff1486871d
--- /dev/null
+++ b/package/fftw/fftw-single/Config.in
@@ -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.
diff --git a/package/fftw/fftw-single/fftw-single.hash b/package/fftw/fftw-single/fftw-single.hash
new file mode 120000
index 0000000000..3ee7ecb3ba
--- /dev/null
+++ b/package/fftw/fftw-single/fftw-single.hash
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
diff --git a/package/fftw/fftw-single/fftw-single.mk b/package/fftw/fftw-single/fftw-single.mk
new file mode 100644
index 0000000000..1e26ff7a38
--- /dev/null
+++ b/package/fftw/fftw-single/fftw-single.mk
@@ -0,0 +1,37 @@
+################################################################################
+#
+# fftw-single
+#
+################################################################################
+
+FFTW_SINGLE_VERSION = $(FFTW_VERSION)
+FFTW_SINGLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_SINGLE_SITE = $(FFTW_SITE)
+FFTW_SINGLE_DL_SUBDIR = fftw
+FFTW_SINGLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_SINGLE_LICENSE = $(FFTW_LICENSE)
+FFTW_SINGLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_SINGLE_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
+
+FFTW_SINGLE_CONF_OPTS = \
+	$(FFTW_COMMON_CONF_OPTS) \
+	CFLAGS="$(FFTW_SINGLE_CFLAGS)" \
+	--enable-single
+
+FFTW_SINGLE_CFLAGS = $(FFTW_COMMON_CFLAGS)
+
+# x86 optimisations
+FFTW_SINGLE_CONF_OPTS += \
+	$(if $(BR2_X86_CPU_HAS_SSE),--enable,--disable)-sse \
+	$(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))
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index 8b76b7c190..b738928032 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -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_COMMON_CONF_OPTS += --enable-fortran
@@ -19,18 +23,14 @@ FFTW_COMMON_CONF_OPTS += --disable-fortran
 endif
 
 FFTW_COMMON_CFLAGS = $(TARGET_CFLAGS)
+
 ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
 FFTW_COMMON_CFLAGS += -O3 -ffast-math
 endif
 
 # x86 optimisations
-FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
 FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
 
-# ARM optimisations
-FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
-FFTW_COMMON_CFLAGS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),-mfpu=neon)
-
 # Generic optimisations
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 FFTW_COMMON_CONF_OPTS += --enable-threads
@@ -43,9 +43,11 @@ FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openm
 FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
 FFTW_CONF_OPTS += \
 	$(FFTW_COMMON_CONF_OPTS) \
-	$(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single \
+	--disable-single \
 	$(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double \
 	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
 	CFLAGS="$(FFTW_COMMON_CFLAGS)"
 
 $(eval $(autotools-package))
+
+include $(sort $(wildcard package/fftw/*/*.mk))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 03/17] package/fftw: break fftw-long-double into a dedicated package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 01/17] package/fftw: prepare for splitting " Thomas Petazzoni
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 11:40   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 04/17] package/fftw: break fftw-quad " Thomas Petazzoni
                   ` (13 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

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:

- makes BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE select
  BR2_PACKAGE_FFTW_LONG_DOUBLE to keep compatibility with packages
  that use BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE. This option will be
  removed in a follow-up commit;

- makes fftw depend on fftw-long-double when this package is enabled.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
[Yann/Thomas:
 - Force --disable-long-double in FFTW_CONF_OPTS, just for the sake of
   clarity (fftw is no longer going to build the long double variant)
 - Use FFTW_LONG_DOUBLE_DL_SUBDIR to avoid downloading fftw multiple times
 - Minor reformatting tweaks in fftw-long-double.mk
 - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE and instead
   make it select BR2_PACKAGE_FFTW_LONG_DOUBLE, so that packages using
   BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE continue to work.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/fftw/Config.in                        |  2 ++
 package/fftw/fftw-long-double/Config.in       |  8 +++++++
 .../fftw-long-double/fftw-long-double.hash    |  1 +
 .../fftw/fftw-long-double/fftw-long-double.mk | 22 +++++++++++++++++++
 package/fftw/fftw.mk                          |  6 ++++-
 5 files changed, 38 insertions(+), 1 deletion(-)
 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

diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index f61784de50..4f37b43a60 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -40,6 +40,7 @@ config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
 	# long-double precision require long-double trigonometric routines
 	depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
 		(BR2_arm || BR2_mips || BR2_mipsel))
+	select BR2_PACKAGE_FFTW_LONG_DOUBLE
 	help
 	  Compile fftw in long double precision, i.e. use 'long double'
 	  for floating point type.
@@ -55,6 +56,7 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
 endchoice
 
 source "package/fftw/fftw-single/Config.in"
+source "package/fftw/fftw-long-double/Config.in"
 
 config BR2_PACKAGE_FFTW_FAST
 	bool "optimise for speed over accuracy"
diff --git a/package/fftw/fftw-long-double/Config.in b/package/fftw/fftw-long-double/Config.in
new file mode 100644
index 0000000000..3ee1762850
--- /dev/null
+++ b/package/fftw/fftw-long-double/Config.in
@@ -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.
diff --git a/package/fftw/fftw-long-double/fftw-long-double.hash b/package/fftw/fftw-long-double/fftw-long-double.hash
new file mode 120000
index 0000000000..3ee7ecb3ba
--- /dev/null
+++ b/package/fftw/fftw-long-double/fftw-long-double.hash
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
diff --git a/package/fftw/fftw-long-double/fftw-long-double.mk b/package/fftw/fftw-long-double/fftw-long-double.mk
new file mode 100644
index 0000000000..173050446c
--- /dev/null
+++ b/package/fftw/fftw-long-double/fftw-long-double.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# 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_DL_SUBDIR = fftw
+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_COMMON_CONF_ENV)
+
+FFTW_LONG_DOUBLE_CONF_OPTS = \
+	$(FFTW_COMMON_CONF_OPTS) \
+	CFLAGS="$(FFTW_COMMON_CFLAGS)" \
+	--enable-long-double
+
+$(eval $(autotools-package))
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index b738928032..26137b9f7c 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -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
@@ -44,7 +48,7 @@ FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
 FFTW_CONF_OPTS += \
 	$(FFTW_COMMON_CONF_OPTS) \
 	--disable-single \
-	$(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double \
+	--disable-long-double \
 	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
 	CFLAGS="$(FFTW_COMMON_CFLAGS)"
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 04/17] package/fftw: break fftw-quad into a dedicated package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (2 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 03/17] package/fftw: break fftw-long-double " Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 11:46   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 05/17] package/fftw: break fftw-double " Thomas Petazzoni
                   ` (12 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

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:

- makes BR2_PACKAGE_FFTW_PRECISION_QUAD select BR2_PACKAGE_FFTW_QUAD
  to keep compatibility with packages that use
  BR2_PACKAGE_FFTW_PRECISION_QUAD. This option will be removed in a
  follow-up commit;

- makes fftw depend on fftw-quad when this package is enabled.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
[Yann/Thomas:
 - Force --disable-quad in FFTW_CONF_OPTS, just for the sake of
   clarity (fftw is no longer going to build the quad variant)
 - Use FFTW_QUAD_DL_SUBDIR to avoid downloading fftw multiple times
 - Minor reformatting tweaks in fftw-quad.mk
 - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_QUAD and instead
   make it select BR2_PACKAGE_FFTW_QUAD, so that packages using
   BR2_PACKAGE_FFTW_PRECISION_QUAD continue to work.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/fftw/Config.in                |  2 ++
 package/fftw/fftw-quad/Config.in      |  7 +++++++
 package/fftw/fftw-quad/fftw-quad.hash |  1 +
 package/fftw/fftw-quad/fftw-quad.mk   | 22 ++++++++++++++++++++++
 package/fftw/fftw.mk                  |  6 +++++-
 5 files changed, 37 insertions(+), 1 deletion(-)
 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

diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index 4f37b43a60..8699d9c350 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -49,6 +49,7 @@ 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
+	select BR2_PACKAGE_FFTW_QUAD
 	help
 	  Compile fftw in quadruple precision, i.e. use '__float128' for
 	  floating point type.
@@ -57,6 +58,7 @@ endchoice
 
 source "package/fftw/fftw-single/Config.in"
 source "package/fftw/fftw-long-double/Config.in"
+source "package/fftw/fftw-quad/Config.in"
 
 config BR2_PACKAGE_FFTW_FAST
 	bool "optimise for speed over accuracy"
diff --git a/package/fftw/fftw-quad/Config.in b/package/fftw/fftw-quad/Config.in
new file mode 100644
index 0000000000..bb724bc260
--- /dev/null
+++ b/package/fftw/fftw-quad/Config.in
@@ -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.
diff --git a/package/fftw/fftw-quad/fftw-quad.hash b/package/fftw/fftw-quad/fftw-quad.hash
new file mode 120000
index 0000000000..3ee7ecb3ba
--- /dev/null
+++ b/package/fftw/fftw-quad/fftw-quad.hash
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
diff --git a/package/fftw/fftw-quad/fftw-quad.mk b/package/fftw/fftw-quad/fftw-quad.mk
new file mode 100644
index 0000000000..5ff79b1d46
--- /dev/null
+++ b/package/fftw/fftw-quad/fftw-quad.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# fftw-quad
+#
+################################################################################
+
+FFTW_QUAD_VERSION = $(FFTW_VERSION)
+FFTW_QUAD_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_QUAD_SITE = $(FFTW_SITE)
+FFTW_QUAD_DL_SUBDIR = fftw
+FFTW_QUAD_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_QUAD_LICENSE = $(FFTW_LICENSE)
+FFTW_QUAD_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_QUAD_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
+
+FFTW_QUAD_CONF_OPTS = \
+	$(FFTW_COMMON_CONF_OPTS) \
+	CFLAGS="$(FFTW_COMMON_CFLAGS)" \
+	--enable-quad-precision
+
+$(eval $(autotools-package))
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index 26137b9f7c..ccec0e0f2d 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -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
@@ -49,7 +53,7 @@ FFTW_CONF_OPTS += \
 	$(FFTW_COMMON_CONF_OPTS) \
 	--disable-single \
 	--disable-long-double \
-	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
+	--disable-quad-precision \
 	CFLAGS="$(FFTW_COMMON_CFLAGS)"
 
 $(eval $(autotools-package))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 05/17] package/fftw: break fftw-double into a dedicated package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (3 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 04/17] package/fftw: break fftw-quad " Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 11:52   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 06/17] package/alsa-utils: use the new fftw-single package Thomas Petazzoni
                   ` (11 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

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:

- makes BR2_PACKAGE_FFTW_PRECISION_DOUBLE select BR2_PACKAGE_FFTW_DOUBLE
  to keep compatibility with packages that use
  BR2_PACKAGE_FFTW_PRECISION_DOUBLE. This option will be removed in a
  follow-up commit;
- removes BR2_PACKAGE_FFTW_USE_SSE2 since it is only used for single
  and double precision. The corresponding options are directly handled in
  fftw-double package;
- makes fftw depend on fftw-double when this package is enabled;
- turns fftw itself into a generic-package instead of an
  autotools-package: it no longer builds anything and only allows to
  trigger the build of the appropriate fftw-* sub-packages, as a
  temporary compatibility mechanism.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
[Yann/Thomas:
 - Use FFTW_DOUBLE_DL_SUBDIR to avoid downloading fftw multiple times
 - Minor reformatting tweaks in fftw-double.mk
 - Drop from fftw.mk FFTW_CONF_ENV/FFTW_CONF_OPTS which are no
   longer used
 - Make fftw a generic package so that its dependencies are built
 - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_DOUBLE and instead
   make it select BR2_PACKAGE_FFTW_DOUBLE, so that packages using
   BR2_PACKAGE_FFTW_PRECISION_QUAD continue to work.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/fftw/Config.in                    |  6 ++----
 package/fftw/fftw-double/Config.in        |  5 +++++
 package/fftw/fftw-double/fftw-double.hash |  1 +
 package/fftw/fftw-double/fftw-double.mk   | 22 ++++++++++++++++++++++
 package/fftw/fftw.mk                      | 17 +++++------------
 5 files changed, 35 insertions(+), 16 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

diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index 8699d9c350..ed87de1a70 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -12,9 +12,6 @@ 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
@@ -30,7 +27,7 @@ config BR2_PACKAGE_FFTW_PRECISION_SINGLE
 
 config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
 	bool "double"
-	select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
+	select BR2_PACKAGE_FFTW_DOUBLE
 	help
 	  Compile fftw in double precision (the default), i.e. use
 	  'double' for floating point type.
@@ -57,6 +54,7 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
 endchoice
 
 source "package/fftw/fftw-single/Config.in"
+source "package/fftw/fftw-double/Config.in"
 source "package/fftw/fftw-long-double/Config.in"
 source "package/fftw/fftw-quad/Config.in"
 
diff --git a/package/fftw/fftw-double/Config.in b/package/fftw/fftw-double/Config.in
new file mode 100644
index 0000000000..cfcd1ef997
--- /dev/null
+++ b/package/fftw/fftw-double/Config.in
@@ -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.
diff --git a/package/fftw/fftw-double/fftw-double.hash b/package/fftw/fftw-double/fftw-double.hash
new file mode 120000
index 0000000000..3ee7ecb3ba
--- /dev/null
+++ b/package/fftw/fftw-double/fftw-double.hash
@@ -0,0 +1 @@
+../fftw.hash
\ No newline at end of file
diff --git a/package/fftw/fftw-double/fftw-double.mk b/package/fftw/fftw-double/fftw-double.mk
new file mode 100644
index 0000000000..4bacb26e56
--- /dev/null
+++ b/package/fftw/fftw-double/fftw-double.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# fftw-double
+#
+################################################################################
+
+FFTW_DOUBLE_VERSION = $(FFTW_VERSION)
+FFTW_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
+FFTW_DOUBLE_SITE = $(FFTW_SITE)
+FFTW_DOUBLE_DL_SUBDIR = fftw
+FFTW_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
+FFTW_DOUBLE_LICENSE = $(FFTW_LICENSE)
+FFTW_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
+
+FFTW_DOUBLE_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
+
+FFTW_DOUBLE_CONF_OPTS = \
+	$(FFTW_COMMON_CONF_OPTS) \
+	CFLAGS="$(FFTW_COMMON_CFLAGS)" \
+	$(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2
+
+$(eval $(autotools-package))
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index ccec0e0f2d..862ad5edc0 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -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
@@ -36,9 +40,6 @@ ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
 FFTW_COMMON_CFLAGS += -O3 -ffast-math
 endif
 
-# x86 optimisations
-FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
-
 # Generic optimisations
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 FFTW_COMMON_CONF_OPTS += --enable-threads
@@ -48,14 +49,6 @@ FFTW_COMMON_CONF_OPTS += --disable-threads
 endif
 FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
 
-FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
-FFTW_CONF_OPTS += \
-	$(FFTW_COMMON_CONF_OPTS) \
-	--disable-single \
-	--disable-long-double \
-	--disable-quad-precision \
-	CFLAGS="$(FFTW_COMMON_CFLAGS)"
-
-$(eval $(autotools-package))
+$(eval $(generic-package))
 
 include $(sort $(wildcard package/fftw/*/*.mk))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 06/17] package/alsa-utils: use the new fftw-single package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (4 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 05/17] package/fftw: break fftw-double " Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 11:55   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 07/17] package/aubio: use the new fftw-double and fftw-single packages Thomas Petazzoni
                   ` (10 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/alsa-utils/alsa-utils.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/alsa-utils/alsa-utils.mk b/package/alsa-utils/alsa-utils.mk
index 4ce4aace46..b5c36e0a46 100644
--- a/package/alsa-utils/alsa-utils.mk
+++ b/package/alsa-utils/alsa-utils.mk
@@ -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
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 07/17] package/aubio: use the new fftw-double and fftw-single packages
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (5 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 06/17] package/alsa-utils: use the new fftw-single package Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 12:02   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package Thomas Petazzoni
                   ` (9 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
[Thomas: drop the condition on BR2_PACKAGE_FFTW]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/aubio/aubio.mk | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/package/aubio/aubio.mk b/package/aubio/aubio.mk
index b0cc8b899e..dd2db2adb9 100644
--- a/package/aubio/aubio.mk
+++ b/package/aubio/aubio.mk
@@ -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
@@ -41,15 +41,14 @@ else
 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
-endif
-else  # !BR2_PACKAGE_FFTW
+AUBIO_DEPENDENCIES += fftw-single
+else
 AUBIO_CONF_OPTS += --disable-fftw3
 endif
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (6 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 07/17] package/aubio: use the new fftw-double and fftw-single packages Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 12:16   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency Thomas Petazzoni
                   ` (8 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Thanks to the new fftw package organization, we can use a "select"
instead of "depends on".

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/gnuradio/Config.in   | 8 ++------
 package/gnuradio/gnuradio.mk | 2 +-
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/package/gnuradio/Config.in b/package/gnuradio/Config.in
index 56957d59e4..533a49c81e 100644
--- a/package/gnuradio/Config.in
+++ b/package/gnuradio/Config.in
@@ -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
diff --git a/package/gnuradio/gnuradio.mk b/package/gnuradio/gnuradio.mk
index ed537e3934..564ad8b2a4 100644
--- a/package/gnuradio/gnuradio.mk
+++ b/package/gnuradio/gnuradio.mk
@@ -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
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (7 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 12:29   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 10/17] package/hackrf: use the new fftw-single package Thomas Petazzoni
                   ` (7 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Thanks to the new fftw package organization, gnuradio already selects
the appropriate fftw precision, and there is no need to propagate the
"depends on BR2_PACKAGE_FFTW_PRECISION_SINGLE" that used to be present
in the gnuradio package.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/gqrx/Config.in | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/package/gqrx/Config.in b/package/gqrx/Config.in
index 1dc40c6d24..94ccb60d44 100644
--- a/package/gqrx/Config.in
+++ b/package/gqrx/Config.in
@@ -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
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 10/17] package/hackrf: use the new fftw-single package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (8 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 18:11   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 11/17] package/httping: use the new fftw-double package Thomas Petazzoni
                   ` (6 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/hackrf/Config.in | 6 ++----
 package/hackrf/hackrf.mk | 2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/package/hackrf/Config.in b/package/hackrf/Config.in
index 4fa27699c4..b86790f2b0 100644
--- a/package/hackrf/Config.in
+++ b/package/hackrf/Config.in
@@ -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
diff --git a/package/hackrf/hackrf.mk b/package/hackrf/hackrf.mk
index acab0be1d3..b83f6518e8 100644
--- a/package/hackrf/hackrf.mk
+++ b/package/hackrf/hackrf.mk
@@ -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
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 11/17] package/httping: use the new fftw-double package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (9 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 10/17] package/hackrf: use the new fftw-single package Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 18:16   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 12/17] package/imagemagick: " Thomas Petazzoni
                   ` (5 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/httping/httping.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/httping/httping.mk b/package/httping/httping.mk
index 955ee3131b..b3a625a8e1 100644
--- a/package/httping/httping.mk
+++ b/package/httping/httping.mk
@@ -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) \
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 12/17] package/imagemagick: use the new fftw-double package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (10 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 11/17] package/httping: use the new fftw-double package Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 21:03   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 13/17] package/libvips: " Thomas Petazzoni
                   ` (4 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/imagemagick/imagemagick.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/imagemagick/imagemagick.mk b/package/imagemagick/imagemagick.mk
index 72482267ce..7678980582 100644
--- a/package/imagemagick/imagemagick.mk
+++ b/package/imagemagick/imagemagick.mk
@@ -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
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 13/17] package/libvips: use the new fftw-double package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (11 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 12/17] package/imagemagick: " Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 21:06   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 14/17] package/pulseaudio: use the new fftw-single package Thomas Petazzoni
                   ` (3 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/libvips/libvips.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/libvips/libvips.mk b/package/libvips/libvips.mk
index 8078e046d1..7622f32fbc 100644
--- a/package/libvips/libvips.mk
+++ b/package/libvips/libvips.mk
@@ -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
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 14/17] package/pulseaudio: use the new fftw-single package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (12 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 13/17] package/libvips: " Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 21:44   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 15/17] package/liquid-dsp: use the new fftw-{single, double, long-double} packages Thomas Petazzoni
                   ` (2 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/pulseaudio/pulseaudio.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/pulseaudio/pulseaudio.mk b/package/pulseaudio/pulseaudio.mk
index d1c35654cf..c91af22935 100644
--- a/package/pulseaudio/pulseaudio.mk
+++ b/package/pulseaudio/pulseaudio.mk
@@ -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)
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 15/17] package/liquid-dsp: use the new fftw-{single, double, long-double} packages
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (13 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 14/17] package/pulseaudio: use the new fftw-single package Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 21:50   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package Thomas Petazzoni
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 17/17] package/liquid-dsp: drop support for fftw-double and fftw-long-double Thomas Petazzoni
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/liquid-dsp/liquid-dsp.mk | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package/liquid-dsp/liquid-dsp.mk b/package/liquid-dsp/liquid-dsp.mk
index db67893844..6aa27a5248 100644
--- a/package/liquid-dsp/liquid-dsp.mk
+++ b/package/liquid-dsp/liquid-dsp.mk
@@ -30,9 +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
+LIQUID_DSP_DEPENDENCIES += fftw-single
 endif
 
 # disable altivec, it has build issues
@@ -40,14 +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
+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
+LIQUID_DSP_DEPENDENCIES += fftw-long-double
 endif
 
 LIQUID_DSP_CONF_OPTS += \
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (14 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 15/17] package/liquid-dsp: use the new fftw-{single, double, long-double} packages Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2019-01-01 12:24   ` Yann E. MORIN
  2019-01-01 21:54   ` Yann E. MORIN
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 17/17] package/liquid-dsp: drop support for fftw-double and fftw-long-double Thomas Petazzoni
  16 siblings, 2 replies; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

fftw is no longer a package: only fftw-single, fftw-double,
fftw-long-double and fftw-quad are. fftw.mk only contains some common
definitions that are used by the different fftw variants.

The old BR2_PACKAGE_FFTW_PRECISION_* options, which are no longer used
anywhere, are moved to Config.in.legacy.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 Config.in.legacy       | 36 ++++++++++++++++++++++++++++++++++++
 package/fftw/Config.in | 41 -----------------------------------------
 package/fftw/fftw.mk   | 18 ------------------
 3 files changed, 36 insertions(+), 59 deletions(-)

diff --git a/Config.in.legacy b/Config.in.legacy
index 8cab6a23af..836c10fa48 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -146,6 +146,42 @@ endif
 
 comment "Legacy options removed in 2019.02"
 
+config BR2_PACKAGE_FFTW_PRECISION_SINGLE
+	bool "single"
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW_SINGLE
+	help
+	  This option has been removed in favor of
+	  BR2_PACKAGE_FFTW_SINGLE.
+
+
+config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
+	bool "double"
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW_DOUBLE
+	help
+	  This option has been removed in favor of
+	  BR2_PACKAGE_FFTW_DOUBLE.
+
+config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
+	bool "long double"
+	depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
+		(BR2_arm || BR2_mips || BR2_mipsel))
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW_LONG_DOUBLE
+	help
+	  This option has been removed in favor of
+	  BR2_PACKAGE_FFTW_LONG_DOUBLE.
+
+config BR2_PACKAGE_FFTW_PRECISION_QUAD
+	bool "quad"
+	depends on (BR2_i386 || BR2_x86_64) && BR2_USE_WCHAR
+	select BR2_LEGACY
+	select BR2_PACKAGE_FFTW_QUAD
+	help
+	  This option has been removed in favor of
+	  BR2_PACKAGE_FFTW_QUAD.
+
 config BR2_PACKAGE_LUA_5_2
 	bool "Lua 5.2.x version removed"
 	select BR2_LEGACY
diff --git a/package/fftw/Config.in b/package/fftw/Config.in
index ed87de1a70..9e060ba5da 100644
--- a/package/fftw/Config.in
+++ b/package/fftw/Config.in
@@ -12,47 +12,6 @@ config BR2_PACKAGE_FFTW
 
 if BR2_PACKAGE_FFTW
 
-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_SINGLE
-	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_DOUBLE
-	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))
-	select BR2_PACKAGE_FFTW_LONG_DOUBLE
-	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
-	select BR2_PACKAGE_FFTW_QUAD
-	help
-	  Compile fftw in quadruple precision, i.e. use '__float128' for
-	  floating point type.
-
-endchoice
-
 source "package/fftw/fftw-single/Config.in"
 source "package/fftw/fftw-double/Config.in"
 source "package/fftw/fftw-long-double/Config.in"
diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
index 862ad5edc0..bcfdb9c96a 100644
--- a/package/fftw/fftw.mk
+++ b/package/fftw/fftw.mk
@@ -10,22 +10,6 @@ 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
-
-ifeq ($(BR2_PACKAGE_FFTW_QUAD),y)
-FFTW_DEPENDENCIES += fftw-quad
-endif
-
-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_COMMON_CONF_OPTS += --enable-fortran
@@ -49,6 +33,4 @@ FFTW_COMMON_CONF_OPTS += --disable-threads
 endif
 FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
 
-$(eval $(generic-package))
-
 include $(sort $(wildcard package/fftw/*/*.mk))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 17/17] package/liquid-dsp: drop support for fftw-double and fftw-long-double
  2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
                   ` (15 preceding siblings ...)
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package Thomas Petazzoni
@ 2018-12-31 13:30 ` Thomas Petazzoni
  2018-12-31 13:52   ` Baruch Siach
  16 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:30 UTC (permalink / raw)
  To: buildroot

liquid-dsp has the following code:

So, if it uses the external fftw library, it can only use the fftwf
variant, i.e the fftw-single variant. Otherwise, it uses its internal
FFT library.

There is no way for liquid-dsp to use fftw-double or fftw-long-double.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/liquid-dsp/liquid-dsp.mk | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/package/liquid-dsp/liquid-dsp.mk b/package/liquid-dsp/liquid-dsp.mk
index 6aa27a5248..64c403e87f 100644
--- a/package/liquid-dsp/liquid-dsp.mk
+++ b/package/liquid-dsp/liquid-dsp.mk
@@ -40,16 +40,6 @@ ifeq ($(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y)
 LIQUID_DSP_CONF_OPTS += --enable-simdoverride
 endif
 
-ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)
-LIQUID_DSP_LDFLAGS += -lfftw3
-LIQUID_DSP_DEPENDENCIES += fftw-double
-endif
-
-ifeq ($(BR2_PACKAGE_FFTW_LONG_DOUBLE),y)
-LIQUID_DSP_LDFLAGS += -lfftw3l
-LIQUID_DSP_DEPENDENCIES += fftw-long-double
-endif
-
 LIQUID_DSP_CONF_OPTS += \
 	CFLAGS="$(LIQUID_DSP_CFLAGS)" \
 	LDFLAGS="$(LIQUID_DSP_LDFLAGS)"
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 17/17] package/liquid-dsp: drop support for fftw-double and fftw-long-double
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 17/17] package/liquid-dsp: drop support for fftw-double and fftw-long-double Thomas Petazzoni
@ 2018-12-31 13:52   ` Baruch Siach
  2018-12-31 13:54     ` Thomas Petazzoni
  0 siblings, 1 reply; 47+ messages in thread
From: Baruch Siach @ 2018-12-31 13:52 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Mon, Dec 31, 2018 at 02:30:30PM +0100, Thomas Petazzoni wrote:
> liquid-dsp has the following code:
> 

Something seems to be missing here. Stripped lines with '#' prefix?

baruch

> So, if it uses the external fftw library, it can only use the fftwf
> variant, i.e the fftw-single variant. Otherwise, it uses its internal
> FFT library.
> 
> There is no way for liquid-dsp to use fftw-double or fftw-long-double.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/liquid-dsp/liquid-dsp.mk | 10 ----------
>  1 file changed, 10 deletions(-)
> 
> diff --git a/package/liquid-dsp/liquid-dsp.mk b/package/liquid-dsp/liquid-dsp.mk
> index 6aa27a5248..64c403e87f 100644
> --- a/package/liquid-dsp/liquid-dsp.mk
> +++ b/package/liquid-dsp/liquid-dsp.mk
> @@ -40,16 +40,6 @@ ifeq ($(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),y)
>  LIQUID_DSP_CONF_OPTS += --enable-simdoverride
>  endif
>  
> -ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)
> -LIQUID_DSP_LDFLAGS += -lfftw3
> -LIQUID_DSP_DEPENDENCIES += fftw-double
> -endif
> -
> -ifeq ($(BR2_PACKAGE_FFTW_LONG_DOUBLE),y)
> -LIQUID_DSP_LDFLAGS += -lfftw3l
> -LIQUID_DSP_DEPENDENCIES += fftw-long-double
> -endif
> -
>  LIQUID_DSP_CONF_OPTS += \
>  	CFLAGS="$(LIQUID_DSP_CFLAGS)" \
>  	LDFLAGS="$(LIQUID_DSP_LDFLAGS)"

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

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 17/17] package/liquid-dsp: drop support for fftw-double and fftw-long-double
  2018-12-31 13:52   ` Baruch Siach
@ 2018-12-31 13:54     ` Thomas Petazzoni
  0 siblings, 0 replies; 47+ messages in thread
From: Thomas Petazzoni @ 2018-12-31 13:54 UTC (permalink / raw)
  To: buildroot

Hello,

On Mon, 31 Dec 2018 15:52:43 +0200, Baruch Siach wrote:

> On Mon, Dec 31, 2018 at 02:30:30PM +0100, Thomas Petazzoni wrote:
> > liquid-dsp has the following code:
> >   
> 
> Something seems to be missing here. Stripped lines with '#' prefix?

Aah, yes, indeed. The code is:

#if HAVE_FFTW3_H && !defined LIQUID_FFTOVERRIDE
#   include <fftw3.h>
#   define FFT_PLAN             fftwf_plan
#   define FFT_CREATE_PLAN      fftwf_plan_dft_1d
#   define FFT_DESTROY_PLAN     fftwf_destroy_plan
#   define FFT_EXECUTE          fftwf_execute
#   define FFT_DIR_FORWARD      FFTW_FORWARD
#   define FFT_DIR_BACKWARD     FFTW_BACKWARD
#   define FFT_METHOD           FFTW_ESTIMATE
#else
#   define FFT_PLAN             fftplan
#   define FFT_CREATE_PLAN      fft_create_plan
#   define FFT_DESTROY_PLAN     fft_destroy_plan
#   define FFT_EXECUTE          fft_execute
#   define FFT_DIR_FORWARD      LIQUID_FFT_FORWARD
#   define FFT_DIR_BACKWARD     LIQUID_FFT_BACKWARD
#   define FFT_METHOD           0
#endif

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 01/17] package/fftw: prepare for splitting into multiple packages
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 01/17] package/fftw: prepare for splitting " Thomas Petazzoni
@ 2019-01-01 10:14   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 10:14 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> In preparation for splitting into multiple packages, this commit
> changes the fftw.mk package to use FFTW_COMMON_CONF_OPTS,
> FFTW_COMMON_CONF_ENV and FFTW_COMMON_CFLAGS, which will be re-used by
> the soon-to-be-introduced per-precision packages.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  package/fftw/fftw.mk | 40 +++++++++++++++++++++-------------------
>  1 file changed, 21 insertions(+), 19 deletions(-)
> 
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index b167a2f6f7..8b76b7c190 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -12,38 +12,40 @@ FFTW_LICENSE_FILES = COPYING
>  
>  # fortran support only enables generation and installation of fortran sources
>  ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
> -FFTW_CONF_OPTS += --enable-fortran
> -FFTW_CONF_ENV += FLIBS="-lgfortran -lm"
> +FFTW_COMMON_CONF_OPTS += --enable-fortran
> +FFTW_COMMON_CONF_ENV += FLIBS="-lgfortran -lm"
>  else
> -FFTW_CONF_OPTS += --disable-fortran
> +FFTW_COMMON_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)
> +FFTW_COMMON_CFLAGS = $(TARGET_CFLAGS)
>  ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
> -FFTW_CFLAGS += -O3 -ffast-math
> +FFTW_COMMON_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
> +FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
> +FFTW_COMMON_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)
> +FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
> +FFTW_COMMON_CFLAGS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),-mfpu=neon)
>  
>  # Generic optimisations
>  ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
> -FFTW_CONF_OPTS += --enable-threads
> -FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--without,--with)-combined-threads
> +FFTW_COMMON_CONF_OPTS += --enable-threads
> +FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--without,--with)-combined-threads
>  else
> -FFTW_CONF_OPTS += --disable-threads
> +FFTW_COMMON_CONF_OPTS += --disable-threads
>  endif
> -FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
> -
> -FFTW_CONF_OPTS += CFLAGS="$(FFTW_CFLAGS)"
> +FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
> +
> +FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
> +FFTW_CONF_OPTS += \
> +	$(FFTW_COMMON_CONF_OPTS) \
> +	$(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single \
> +	$(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double \
> +	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
> +	CFLAGS="$(FFTW_COMMON_CFLAGS)"
>  
>  $(eval $(autotools-package))
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package Thomas Petazzoni
@ 2019-01-01 11:09   ` Yann E. MORIN
  2019-01-01 12:00     ` Thomas Petazzoni
  0 siblings, 1 reply; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 11:09 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> fftw's library name depends on the precision option. Consequently,
> it's possible to install multiple flavor on the same target.

There is a minor nit, though: the various flavours do install some of
the same files. For example, with just this patch applied, and enabling
fftw-single and fftw's remaining long-double option:

./support/scripts/check-uniq-files -t target /home/ymorin/dev/buildroot/O/build/packages-file-list.txt
Warning: target file "./usr/bin/fftw-wisdom-to-conf" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: target file "./usr/include/fftw3.f03" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: target file "./usr/include/fftw3.f" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: target file "./usr/include/fftw3.h" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: target file "./usr/include/fftw3l.f03" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: target file "./usr/share/man/man1/fftw-wisdom-to-conf.1" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: target file "./usr/include/fftw3q.f03" is touched by more than one package: [u'fftw-single', u'fftw']
./support/scripts/check-uniq-files -t staging /home/ymorin/dev/buildroot/O/build/packages-file-list-staging.txt
Warning: staging file "./usr/share/man/man1/fftw-wisdom-to-conf.1" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: staging file "./usr/bin/fftw-wisdom-to-conf" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: staging file "./usr/lib/libfftw3f.la" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: staging file "./usr/include/fftw3.f03" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: staging file "./usr/include/fftw3.f" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: staging file "./usr/include/fftw3.h" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: staging file "./usr/include/fftw3l.f03" is touched by more than one package: [u'fftw-single', u'fftw']
Warning: staging file "./usr/include/fftw3q.f03" is touched by more than one package: [u'fftw-single', u'fftw']

In practice, I'm not sure this causes any issue, in fact, because:

  - we don't care about the man pages;

  - ./usr/lib/libfftw3f.la should in fact not be installed by fftw's
    long-double;

  - ./usr/bin/fftw-wisdom-to-conf is bit-for-bit the same in the two
    cases;

  - the headers are each also the same in both cases.

So, when we switched the file list from a md5-based comparison, to a
time-based comparison, we lost the precision that md5 offered. :-/

So far, there's not much we can do for now, but in the future, we'll
have to revisit the way we establish the per-package file list and the
way we check uniq files.

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> This patch breaks fftw single precision into a new package and:
> 
> - makes BR2_PACKAGE_FFTW_PRECISION_SINGLE select
>   BR2_PACKAGE_FFTW_SINGLE to keep compatibility with packages that use
>   BR2_PACKAGE_FFTW_PRECISION_SINGLE. This option will be removed in a
>   follow-up commit;
> 
> - removes the BR2_PACKAGE_FFTW_USE_SSE and BR2_PACKAGE_FFTW_USE_NEON
>   otpions since they are only used for single precision. The
>   corresponding CPU-capability options are directly handled in
>   the fftw-single package;
> 
> - makes fftw depend on fftw-single when this package is enabled.
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> [Yann/Thomas:
>  - Force --disable-single in FFTW_CONF_OPTS, just for the sake of
>    clarity (fftw is no longer going to build the single variant)
>  - Use FFTW_SINGLE_DL_SUBDIR to avoid downloading fftw multiple times
>  - Minor reformatting tweaks in fftw-single.mk
>  - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_SINGLE and instead make
>    it select BR2_PACKAGE_FFTW_SINGLE, so that packages using
>    BR2_PACKAGE_FFTW_PRECISION_SINGLE continue to work.]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/fftw/Config.in                    | 12 ++------
>  package/fftw/fftw-single/Config.in        |  5 +++
>  package/fftw/fftw-single/fftw-single.hash |  1 +
>  package/fftw/fftw-single/fftw-single.mk   | 37 +++++++++++++++++++++++
>  package/fftw/fftw.mk                      | 14 +++++----
>  5 files changed, 54 insertions(+), 15 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
> 
> diff --git a/package/fftw/Config.in b/package/fftw/Config.in
> index d51f8f3c51..f61784de50 100644
> --- a/package/fftw/Config.in
> +++ b/package/fftw/Config.in
> @@ -12,15 +12,9 @@ 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
> @@ -29,9 +23,7 @@ choice
>  
>  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
> +	select BR2_PACKAGE_FFTW_SINGLE
>  	help
>  	  Compile fftw in single precision, i.e. use 'float' for
>  	  floating point type.
> @@ -62,6 +54,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
> diff --git a/package/fftw/fftw-single/Config.in b/package/fftw/fftw-single/Config.in
> new file mode 100644
> index 0000000000..ff1486871d
> --- /dev/null
> +++ b/package/fftw/fftw-single/Config.in
> @@ -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.
> diff --git a/package/fftw/fftw-single/fftw-single.hash b/package/fftw/fftw-single/fftw-single.hash
> new file mode 120000
> index 0000000000..3ee7ecb3ba
> --- /dev/null
> +++ b/package/fftw/fftw-single/fftw-single.hash
> @@ -0,0 +1 @@
> +../fftw.hash
> \ No newline at end of file
> diff --git a/package/fftw/fftw-single/fftw-single.mk b/package/fftw/fftw-single/fftw-single.mk
> new file mode 100644
> index 0000000000..1e26ff7a38
> --- /dev/null
> +++ b/package/fftw/fftw-single/fftw-single.mk
> @@ -0,0 +1,37 @@
> +################################################################################
> +#
> +# fftw-single
> +#
> +################################################################################
> +
> +FFTW_SINGLE_VERSION = $(FFTW_VERSION)
> +FFTW_SINGLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
> +FFTW_SINGLE_SITE = $(FFTW_SITE)
> +FFTW_SINGLE_DL_SUBDIR = fftw
> +FFTW_SINGLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
> +FFTW_SINGLE_LICENSE = $(FFTW_LICENSE)
> +FFTW_SINGLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
> +
> +FFTW_SINGLE_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
> +
> +FFTW_SINGLE_CONF_OPTS = \
> +	$(FFTW_COMMON_CONF_OPTS) \
> +	CFLAGS="$(FFTW_SINGLE_CFLAGS)" \
> +	--enable-single
> +
> +FFTW_SINGLE_CFLAGS = $(FFTW_COMMON_CFLAGS)
> +
> +# x86 optimisations
> +FFTW_SINGLE_CONF_OPTS += \
> +	$(if $(BR2_X86_CPU_HAS_SSE),--enable,--disable)-sse \
> +	$(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))
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index 8b76b7c190..b738928032 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -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_COMMON_CONF_OPTS += --enable-fortran
> @@ -19,18 +23,14 @@ FFTW_COMMON_CONF_OPTS += --disable-fortran
>  endif
>  
>  FFTW_COMMON_CFLAGS = $(TARGET_CFLAGS)
> +
>  ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
>  FFTW_COMMON_CFLAGS += -O3 -ffast-math
>  endif
>  
>  # x86 optimisations
> -FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE),--enable,--disable)-sse
>  FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
>  
> -# ARM optimisations
> -FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),--enable,--disable)-neon
> -FFTW_COMMON_CFLAGS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),-mfpu=neon)
> -
>  # Generic optimisations
>  ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
>  FFTW_COMMON_CONF_OPTS += --enable-threads
> @@ -43,9 +43,11 @@ FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openm
>  FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
>  FFTW_CONF_OPTS += \
>  	$(FFTW_COMMON_CONF_OPTS) \
> -	$(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single \
> +	--disable-single \
>  	$(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double \
>  	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
>  	CFLAGS="$(FFTW_COMMON_CFLAGS)"
>  
>  $(eval $(autotools-package))
> +
> +include $(sort $(wildcard package/fftw/*/*.mk))
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 03/17] package/fftw: break fftw-long-double into a dedicated package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 03/17] package/fftw: break fftw-long-double " Thomas Petazzoni
@ 2019-01-01 11:40   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 11:40 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> fftw's library name depends on the precision option. Consequently,
> it's possible to install multiple flavor on the same target.

And of course, some files are installed by the three flavours...

> This patch breaks fftw long double precision into a new package and:
> 
> - makes BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE select
>   BR2_PACKAGE_FFTW_LONG_DOUBLE to keep compatibility with packages
>   that use BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE. This option will be
>   removed in a follow-up commit;
> 
> - makes fftw depend on fftw-long-double when this package is enabled.
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> [Yann/Thomas:
>  - Force --disable-long-double in FFTW_CONF_OPTS, just for the sake of
>    clarity (fftw is no longer going to build the long double variant)
>  - Use FFTW_LONG_DOUBLE_DL_SUBDIR to avoid downloading fftw multiple times
>  - Minor reformatting tweaks in fftw-long-double.mk
>  - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE and instead
>    make it select BR2_PACKAGE_FFTW_LONG_DOUBLE, so that packages using
>    BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE continue to work.]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/fftw/Config.in                        |  2 ++
>  package/fftw/fftw-long-double/Config.in       |  8 +++++++
>  .../fftw-long-double/fftw-long-double.hash    |  1 +
>  .../fftw/fftw-long-double/fftw-long-double.mk | 22 +++++++++++++++++++
>  package/fftw/fftw.mk                          |  6 ++++-
>  5 files changed, 38 insertions(+), 1 deletion(-)
>  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
> 
> diff --git a/package/fftw/Config.in b/package/fftw/Config.in
> index f61784de50..4f37b43a60 100644
> --- a/package/fftw/Config.in
> +++ b/package/fftw/Config.in
> @@ -40,6 +40,7 @@ config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
>  	# long-double precision require long-double trigonometric routines
>  	depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
>  		(BR2_arm || BR2_mips || BR2_mipsel))

I know we're going for the minimalist approach, but what about moving
those conditions into fftw-long-double:

    config BR2_PACKAGE_FFTW_LONG_DOUBLE_ARCH_SUPPORTS
        bool
        default y
        deepends on BLABLA-the-conditions-above

... which would allow to share the conditions easily here ...

> +	select BR2_PACKAGE_FFTW_LONG_DOUBLE
>  	help
>  	  Compile fftw in long double precision, i.e. use 'long double'
>  	  for floating point type.
> @@ -55,6 +56,7 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
>  endchoice
>  
>  source "package/fftw/fftw-single/Config.in"
> +source "package/fftw/fftw-long-double/Config.in"
>  
>  config BR2_PACKAGE_FFTW_FAST
>  	bool "optimise for speed over accuracy"
> diff --git a/package/fftw/fftw-long-double/Config.in b/package/fftw/fftw-long-double/Config.in
> new file mode 100644
> index 0000000000..3ee1762850
> --- /dev/null
> +++ b/package/fftw/fftw-long-double/Config.in
> @@ -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))

... and there?

Now, whether you change this or not :

Tested-by:  "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> +	help
> +	  Compile fftw in long double precision, i.e. use 'long double'
> +	  for floating point type.
> diff --git a/package/fftw/fftw-long-double/fftw-long-double.hash b/package/fftw/fftw-long-double/fftw-long-double.hash
> new file mode 120000
> index 0000000000..3ee7ecb3ba
> --- /dev/null
> +++ b/package/fftw/fftw-long-double/fftw-long-double.hash
> @@ -0,0 +1 @@
> +../fftw.hash
> \ No newline at end of file
> diff --git a/package/fftw/fftw-long-double/fftw-long-double.mk b/package/fftw/fftw-long-double/fftw-long-double.mk
> new file mode 100644
> index 0000000000..173050446c
> --- /dev/null
> +++ b/package/fftw/fftw-long-double/fftw-long-double.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# 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_DL_SUBDIR = fftw
> +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_COMMON_CONF_ENV)
> +
> +FFTW_LONG_DOUBLE_CONF_OPTS = \
> +	$(FFTW_COMMON_CONF_OPTS) \
> +	CFLAGS="$(FFTW_COMMON_CFLAGS)" \
> +	--enable-long-double
> +
> +$(eval $(autotools-package))
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index b738928032..26137b9f7c 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -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
> @@ -44,7 +48,7 @@ FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
>  FFTW_CONF_OPTS += \
>  	$(FFTW_COMMON_CONF_OPTS) \
>  	--disable-single \
> -	$(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double \
> +	--disable-long-double \
>  	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
>  	CFLAGS="$(FFTW_COMMON_CFLAGS)"
>  
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 04/17] package/fftw: break fftw-quad into a dedicated package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 04/17] package/fftw: break fftw-quad " Thomas Petazzoni
@ 2019-01-01 11:46   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 11:46 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

Gwenha?l, question for you, below...

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> fftw's library name depends on the precision option. Consequently,
> it's possible to install multiple flavor on the same target.

.. and the now-usual files installed by the various flavours...

> This patch breaks fftw quad precision into a new package and:
> 
> - makes BR2_PACKAGE_FFTW_PRECISION_QUAD select BR2_PACKAGE_FFTW_QUAD
>   to keep compatibility with packages that use
>   BR2_PACKAGE_FFTW_PRECISION_QUAD. This option will be removed in a
>   follow-up commit;
> 
> - makes fftw depend on fftw-quad when this package is enabled.
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> [Yann/Thomas:
>  - Force --disable-quad in FFTW_CONF_OPTS, just for the sake of
>    clarity (fftw is no longer going to build the quad variant)
>  - Use FFTW_QUAD_DL_SUBDIR to avoid downloading fftw multiple times
>  - Minor reformatting tweaks in fftw-quad.mk
>  - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_QUAD and instead
>    make it select BR2_PACKAGE_FFTW_QUAD, so that packages using
>    BR2_PACKAGE_FFTW_PRECISION_QUAD continue to work.]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/fftw/Config.in                |  2 ++
>  package/fftw/fftw-quad/Config.in      |  7 +++++++
>  package/fftw/fftw-quad/fftw-quad.hash |  1 +
>  package/fftw/fftw-quad/fftw-quad.mk   | 22 ++++++++++++++++++++++
>  package/fftw/fftw.mk                  |  6 +++++-
>  5 files changed, 37 insertions(+), 1 deletion(-)
>  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
> 
> diff --git a/package/fftw/Config.in b/package/fftw/Config.in
> index 4f37b43a60..8699d9c350 100644
> --- a/package/fftw/Config.in
> +++ b/package/fftw/Config.in
> @@ -49,6 +49,7 @@ 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
> +	select BR2_PACKAGE_FFTW_QUAD
>  	help
>  	  Compile fftw in quadruple precision, i.e. use '__float128' for
>  	  floating point type.
> @@ -57,6 +58,7 @@ endchoice
>  
>  source "package/fftw/fftw-single/Config.in"
>  source "package/fftw/fftw-long-double/Config.in"
> +source "package/fftw/fftw-quad/Config.in"
>  
>  config BR2_PACKAGE_FFTW_FAST
>  	bool "optimise for speed over accuracy"
> diff --git a/package/fftw/fftw-quad/Config.in b/package/fftw/fftw-quad/Config.in
> new file mode 100644
> index 0000000000..bb724bc260
> --- /dev/null
> +++ b/package/fftw/fftw-quad/Config.in
> @@ -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

Unrelated to the change, but this dependency is supposedly due to a
requirement for the toolchain to have libquadmath. We do have a symbol
that represents so: BR2_TOOLCHAIN_HAS_LIBQUADMATH.

So, maybe we could take the opportunity of this series to add a patch
that fixes the codition, no? ;-)

Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> +	help
> +	  Compile fftw in quadruple precision, i.e. use '__float128' for
> +	  floating point type.
> diff --git a/package/fftw/fftw-quad/fftw-quad.hash b/package/fftw/fftw-quad/fftw-quad.hash
> new file mode 120000
> index 0000000000..3ee7ecb3ba
> --- /dev/null
> +++ b/package/fftw/fftw-quad/fftw-quad.hash
> @@ -0,0 +1 @@
> +../fftw.hash
> \ No newline at end of file
> diff --git a/package/fftw/fftw-quad/fftw-quad.mk b/package/fftw/fftw-quad/fftw-quad.mk
> new file mode 100644
> index 0000000000..5ff79b1d46
> --- /dev/null
> +++ b/package/fftw/fftw-quad/fftw-quad.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# fftw-quad
> +#
> +################################################################################
> +
> +FFTW_QUAD_VERSION = $(FFTW_VERSION)
> +FFTW_QUAD_SOURCE = fftw-$(FFTW_VERSION).tar.gz
> +FFTW_QUAD_SITE = $(FFTW_SITE)
> +FFTW_QUAD_DL_SUBDIR = fftw
> +FFTW_QUAD_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
> +FFTW_QUAD_LICENSE = $(FFTW_LICENSE)
> +FFTW_QUAD_LICENSE_FILES = $(FFTW_LICENSE_FILES)
> +
> +FFTW_QUAD_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
> +
> +FFTW_QUAD_CONF_OPTS = \
> +	$(FFTW_COMMON_CONF_OPTS) \
> +	CFLAGS="$(FFTW_COMMON_CFLAGS)" \
> +	--enable-quad-precision
> +
> +$(eval $(autotools-package))
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index 26137b9f7c..ccec0e0f2d 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -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
> @@ -49,7 +53,7 @@ FFTW_CONF_OPTS += \
>  	$(FFTW_COMMON_CONF_OPTS) \
>  	--disable-single \
>  	--disable-long-double \
> -	$(if $(BR2_PACKAGE_FFTW_PRECISION_QUAD),--enable,--disable)-quad-precision \
> +	--disable-quad-precision \
>  	CFLAGS="$(FFTW_COMMON_CFLAGS)"
>  
>  $(eval $(autotools-package))
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 05/17] package/fftw: break fftw-double into a dedicated package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 05/17] package/fftw: break fftw-double " Thomas Petazzoni
@ 2019-01-01 11:52   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 11:52 UTC (permalink / raw)
  To: buildroot

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> 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:
> 
> - makes BR2_PACKAGE_FFTW_PRECISION_DOUBLE select BR2_PACKAGE_FFTW_DOUBLE
>   to keep compatibility with packages that use
>   BR2_PACKAGE_FFTW_PRECISION_DOUBLE. This option will be removed in a
>   follow-up commit;
> - removes BR2_PACKAGE_FFTW_USE_SSE2 since it is only used for single
>   and double precision. The corresponding options are directly handled in
>   fftw-double package;
> - makes fftw depend on fftw-double when this package is enabled;
> - turns fftw itself into a generic-package instead of an
>   autotools-package: it no longer builds anything and only allows to
>   trigger the build of the appropriate fftw-* sub-packages, as a
>   temporary compatibility mechanism.
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> [Yann/Thomas:
>  - Use FFTW_DOUBLE_DL_SUBDIR to avoid downloading fftw multiple times
>  - Minor reformatting tweaks in fftw-double.mk
>  - Drop from fftw.mk FFTW_CONF_ENV/FFTW_CONF_OPTS which are no
>    longer used
>  - Make fftw a generic package so that its dependencies are built
>  - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_DOUBLE and instead
>    make it select BR2_PACKAGE_FFTW_DOUBLE, so that packages using
>    BR2_PACKAGE_FFTW_PRECISION_QUAD continue to work.]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  package/fftw/Config.in                    |  6 ++----
>  package/fftw/fftw-double/Config.in        |  5 +++++
>  package/fftw/fftw-double/fftw-double.hash |  1 +
>  package/fftw/fftw-double/fftw-double.mk   | 22 ++++++++++++++++++++++
>  package/fftw/fftw.mk                      | 17 +++++------------
>  5 files changed, 35 insertions(+), 16 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
> 
> diff --git a/package/fftw/Config.in b/package/fftw/Config.in
> index 8699d9c350..ed87de1a70 100644
> --- a/package/fftw/Config.in
> +++ b/package/fftw/Config.in
> @@ -12,9 +12,6 @@ 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
> @@ -30,7 +27,7 @@ config BR2_PACKAGE_FFTW_PRECISION_SINGLE
>  
>  config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
>  	bool "double"
> -	select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
> +	select BR2_PACKAGE_FFTW_DOUBLE
>  	help
>  	  Compile fftw in double precision (the default), i.e. use
>  	  'double' for floating point type.
> @@ -57,6 +54,7 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD
>  endchoice
>  
>  source "package/fftw/fftw-single/Config.in"
> +source "package/fftw/fftw-double/Config.in"
>  source "package/fftw/fftw-long-double/Config.in"
>  source "package/fftw/fftw-quad/Config.in"
>  
> diff --git a/package/fftw/fftw-double/Config.in b/package/fftw/fftw-double/Config.in
> new file mode 100644
> index 0000000000..cfcd1ef997
> --- /dev/null
> +++ b/package/fftw/fftw-double/Config.in
> @@ -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.
> diff --git a/package/fftw/fftw-double/fftw-double.hash b/package/fftw/fftw-double/fftw-double.hash
> new file mode 120000
> index 0000000000..3ee7ecb3ba
> --- /dev/null
> +++ b/package/fftw/fftw-double/fftw-double.hash
> @@ -0,0 +1 @@
> +../fftw.hash
> \ No newline at end of file
> diff --git a/package/fftw/fftw-double/fftw-double.mk b/package/fftw/fftw-double/fftw-double.mk
> new file mode 100644
> index 0000000000..4bacb26e56
> --- /dev/null
> +++ b/package/fftw/fftw-double/fftw-double.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# fftw-double
> +#
> +################################################################################
> +
> +FFTW_DOUBLE_VERSION = $(FFTW_VERSION)
> +FFTW_DOUBLE_SOURCE = fftw-$(FFTW_VERSION).tar.gz
> +FFTW_DOUBLE_SITE = $(FFTW_SITE)
> +FFTW_DOUBLE_DL_SUBDIR = fftw
> +FFTW_DOUBLE_INSTALL_STAGING = $(FFTW_INSTALL_STAGING)
> +FFTW_DOUBLE_LICENSE = $(FFTW_LICENSE)
> +FFTW_DOUBLE_LICENSE_FILES = $(FFTW_LICENSE_FILES)
> +
> +FFTW_DOUBLE_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
> +
> +FFTW_DOUBLE_CONF_OPTS = \
> +	$(FFTW_COMMON_CONF_OPTS) \
> +	CFLAGS="$(FFTW_COMMON_CFLAGS)" \
> +	$(if $(BR2_X86_CPU_HAS_SSE2),--enable,--disable)-sse2
> +
> +$(eval $(autotools-package))
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index ccec0e0f2d..862ad5edc0 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -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
> @@ -36,9 +40,6 @@ ifeq ($(BR2_PACKAGE_FFTW_FAST),y)
>  FFTW_COMMON_CFLAGS += -O3 -ffast-math
>  endif
>  
> -# x86 optimisations
> -FFTW_COMMON_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_USE_SSE2),--enable,--disable)-sse2
> -
>  # Generic optimisations
>  ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
>  FFTW_COMMON_CONF_OPTS += --enable-threads
> @@ -48,14 +49,6 @@ FFTW_COMMON_CONF_OPTS += --disable-threads
>  endif
>  FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
>  
> -FFTW_CONF_ENV = $(FFTW_COMMON_CONF_ENV)
> -FFTW_CONF_OPTS += \
> -	$(FFTW_COMMON_CONF_OPTS) \
> -	--disable-single \
> -	--disable-long-double \
> -	--disable-quad-precision \
> -	CFLAGS="$(FFTW_COMMON_CFLAGS)"
> -
> -$(eval $(autotools-package))
> +$(eval $(generic-package))
>  
>  include $(sort $(wildcard package/fftw/*/*.mk))
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 06/17] package/alsa-utils: use the new fftw-single package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 06/17] package/alsa-utils: use the new fftw-single package Thomas Petazzoni
@ 2019-01-01 11:55   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 11:55 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  package/alsa-utils/alsa-utils.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/alsa-utils/alsa-utils.mk b/package/alsa-utils/alsa-utils.mk
> index 4ce4aace46..b5c36e0a46 100644
> --- a/package/alsa-utils/alsa-utils.mk
> +++ b/package/alsa-utils/alsa-utils.mk
> @@ -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
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package
  2019-01-01 11:09   ` Yann E. MORIN
@ 2019-01-01 12:00     ` Thomas Petazzoni
  2019-01-01 12:11       ` Yann E. MORIN
  0 siblings, 1 reply; 47+ messages in thread
From: Thomas Petazzoni @ 2019-01-01 12:00 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 1 Jan 2019 12:09:52 +0100, Yann E. MORIN wrote:

> There is a minor nit, though: the various flavours do install some of
> the same files. For example, with just this patch applied, and enabling
> fftw-single and fftw's remaining long-double option:
> 
> ./support/scripts/check-uniq-files -t target /home/ymorin/dev/buildroot/O/build/packages-file-list.txt
> Warning: target file "./usr/bin/fftw-wisdom-to-conf" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: target file "./usr/include/fftw3.f03" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: target file "./usr/include/fftw3.f" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: target file "./usr/include/fftw3.h" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: target file "./usr/include/fftw3l.f03" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: target file "./usr/share/man/man1/fftw-wisdom-to-conf.1" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: target file "./usr/include/fftw3q.f03" is touched by more than one package: [u'fftw-single', u'fftw']
> ./support/scripts/check-uniq-files -t staging /home/ymorin/dev/buildroot/O/build/packages-file-list-staging.txt
> Warning: staging file "./usr/share/man/man1/fftw-wisdom-to-conf.1" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: staging file "./usr/bin/fftw-wisdom-to-conf" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: staging file "./usr/lib/libfftw3f.la" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: staging file "./usr/include/fftw3.f03" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: staging file "./usr/include/fftw3.f" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: staging file "./usr/include/fftw3.h" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: staging file "./usr/include/fftw3l.f03" is touched by more than one package: [u'fftw-single', u'fftw']
> Warning: staging file "./usr/include/fftw3q.f03" is touched by more than one package: [u'fftw-single', u'fftw']
> 
> In practice, I'm not sure this causes any issue, in fact, because:
> 
>   - we don't care about the man pages;
> 
>   - ./usr/lib/libfftw3f.la should in fact not be installed by fftw's
>     long-double;
> 
>   - ./usr/bin/fftw-wisdom-to-conf is bit-for-bit the same in the two
>     cases;
> 
>   - the headers are each also the same in both cases.
> 
> So, when we switched the file list from a md5-based comparison, to a
> time-based comparison, we lost the precision that md5 offered. :-/
> 
> So far, there's not much we can do for now, but in the future, we'll
> have to revisit the way we establish the per-package file list and the
> way we check uniq files.

Meh. This is not really nice. I see a few possible solutions:

 (1) Have the per-precision packages not install to STAGING/TARGET but
     to some common intermediate location, and have the common fftw
     package stay a real package, which does the actual final location.

 (2) Have the per-precision packages only install libraries, and
     have the common fftw package install the rest that is
     common/identical between variants.

That being said, I still think (and it seems like your
Reviewed-by/Tested-by also says the same) this patch series goes in the
right direction, and we can live with this drawback for now.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 07/17] package/aubio: use the new fftw-double and fftw-single packages
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 07/17] package/aubio: use the new fftw-double and fftw-single packages Thomas Petazzoni
@ 2019-01-01 12:02   ` Yann E. MORIN
  2019-01-18 11:00     ` Gwenhael Goavec-Merou
  0 siblings, 1 reply; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 12:02 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

Gwenha?l, question for you below...

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> [Thomas: drop the condition on BR2_PACKAGE_FFTW]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/aubio/aubio.mk | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/package/aubio/aubio.mk b/package/aubio/aubio.mk
> index b0cc8b899e..dd2db2adb9 100644
> --- a/package/aubio/aubio.mk
> +++ b/package/aubio/aubio.mk
> @@ -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)

Now, we can be in a situation where both single and double are enabled,
so the condi9tion here would be satisfied, i.e. we'd build with
libsamplerate, but...

>  AUBIO_DEPENDENCIES += libsamplerate
>  AUBIO_CONF_OPTS += --enable-samplerate
>  else
> @@ -41,15 +41,14 @@ else
>  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)

... here we'd be using the double variant, as it takes precedence over
the single one.

Thus we'd end up in the situation that the comment warns about: building
libsamplerate in double precision is not possible.

So, I'd suggest that we move the libsamplerate condition below, in the
fftw-single condition...

>  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
> -endif
> -else  # !BR2_PACKAGE_FFTW
> +AUBIO_DEPENDENCIES += fftw-single

... here.

Of course, if the comment is now wrong and the libsamplerate can be
build with fftw-double, the fix is different, and the condition on
fftw-single should be dropped for libsamplerate.

Gwenha?l, care to share your thoughts on this? ;-)

Regards,
Yann E. MORIN.

> +else
>  AUBIO_CONF_OPTS += --disable-fftw3
>  endif
>  
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package
  2019-01-01 12:00     ` Thomas Petazzoni
@ 2019-01-01 12:11       ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 12:11 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2019-01-01 13:00 +0100, Thomas Petazzoni spake thusly:
> On Tue, 1 Jan 2019 12:09:52 +0100, Yann E. MORIN wrote:
> > There is a minor nit, though: the various flavours do install some of
> > the same files. For example, with just this patch applied, and enabling
> > fftw-single and fftw's remaining long-double option:
[--SNIP--]
> Meh. This is not really nice. I see a few possible solutions:
> 
>  (1) Have the per-precision packages not install to STAGING/TARGET but
>      to some common intermediate location, and have the common fftw
>      package stay a real package, which does the actual final location.

That would be a first.

>  (2) Have the per-precision packages only install libraries, and
>      have the common fftw package install the rest that is
>      common/identical between variants.

I'm not convinced either...

> That being said, I still think (and it seems like your
> Reviewed-by/Tested-by also says the same) this patch series goes in the
> right direction, and we can live with this drawback for now.

Definitely. I have ideas on how to tackle this for the future...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package Thomas Petazzoni
@ 2019-01-01 12:16   ` Yann E. MORIN
  2019-01-01 13:07     ` Thomas Petazzoni
  2019-01-18 11:00     ` Gwenhael Goavec-Merou
  0 siblings, 2 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 12:16 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Thanks to the new fftw package organization, we can use a "select"
> instead of "depends on".
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

However, minor nit, below...

> ---
>  package/gnuradio/Config.in   | 8 ++------
>  package/gnuradio/gnuradio.mk | 2 +-
>  2 files changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/package/gnuradio/Config.in b/package/gnuradio/Config.in
> index 56957d59e4..533a49c81e 100644
> --- a/package/gnuradio/Config.in
> +++ b/package/gnuradio/Config.in
> @@ -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

So, here we're selecting both fftw and fftw-single, yet...

>  	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
> diff --git a/package/gnuradio/gnuradio.mk b/package/gnuradio/gnuradio.mk
> index ed537e3934..564ad8b2a4 100644
> --- a/package/gnuradio/gnuradio.mk
> +++ b/package/gnuradio/gnuradio.mk
> @@ -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

... here we only have fftw-single as a dependency. That's a bit weird.

But heck...

Regards,
Yann E. MORIN.

>  GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=ON
>  else
>  GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=OFF
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package Thomas Petazzoni
@ 2019-01-01 12:24   ` Yann E. MORIN
  2019-01-01 21:54   ` Yann E. MORIN
  1 sibling, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 12:24 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> fftw is no longer a package: only fftw-single, fftw-double,
> fftw-long-double and fftw-quad are. fftw.mk only contains some common
> definitions that are used by the different fftw variants.
> 
> The old BR2_PACKAGE_FFTW_PRECISION_* options, which are no longer used
> anywhere, are moved to Config.in.legacy.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

A review of that one even if the previoius are not still reviewed, so
that I don;t forget what I noticed...

> ---
>  Config.in.legacy       | 36 ++++++++++++++++++++++++++++++++++++
>  package/fftw/Config.in | 41 -----------------------------------------
>  package/fftw/fftw.mk   | 18 ------------------
>  3 files changed, 36 insertions(+), 59 deletions(-)
> 
[--SNIP--]
> diff --git a/package/fftw/Config.in b/package/fftw/Config.in
> index ed87de1a70..9e060ba5da 100644
> --- a/package/fftw/Config.in
> +++ b/package/fftw/Config.in
> @@ -12,47 +12,6 @@ config BR2_PACKAGE_FFTW
>  
>  if BR2_PACKAGE_FFTW
>  
> -choice
[--SNIP--]
> -endchoice

So, basically, enabling the fftw package no longer ensures there is at
least one variant to build.

This basically means that a defconfig that relied on the default flavour
to be enabled (double) now breaks.

What about:

    config BR2_PACKAGE_FFTW
        bool "fftw"
        select BR2_PACKAGE_FFTW_DOUBLE if !BR2_PACKAGE_FFTW_SINGLE \
                                       && !BR2_PACKAGE_FFTW_LONG_DOUBLE \
                                       && !BR2_PACKAGE_FFTW_QUAD

Or something to ensure there is at least one variant enabled (and the
same as the default precviouslty was).

Regards,
Yann E. MORIN.

>  source "package/fftw/fftw-single/Config.in"
>  source "package/fftw/fftw-double/Config.in"
>  source "package/fftw/fftw-long-double/Config.in"
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index 862ad5edc0..bcfdb9c96a 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -10,22 +10,6 @@ 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
> -
> -ifeq ($(BR2_PACKAGE_FFTW_QUAD),y)
> -FFTW_DEPENDENCIES += fftw-quad
> -endif
> -
> -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_COMMON_CONF_OPTS += --enable-fortran
> @@ -49,6 +33,4 @@ FFTW_COMMON_CONF_OPTS += --disable-threads
>  endif
>  FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
>  
> -$(eval $(generic-package))
> -
>  include $(sort $(wildcard package/fftw/*/*.mk))
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency Thomas Petazzoni
@ 2019-01-01 12:29   ` Yann E. MORIN
  2019-01-01 12:33     ` Yann E. MORIN
  0 siblings, 1 reply; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 12:29 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Thanks to the new fftw package organization, gnuradio already selects
> the appropriate fftw precision, and there is no need to propagate the
> "depends on BR2_PACKAGE_FFTW_PRECISION_SINGLE" that used to be present
> in the gnuradio package.
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

However, Gwenha?l, one question: why does it depend on gnuradio rather
than selecting it (and propagating its dependencies, of course)?

As I understand it, gqrx is an application, and for applications, we try
as much as posiible to have them visible and select the libraries they
need, rather than hide them behind their libs.

Regards,
Yann E. MORIN.

> ---
>  package/gqrx/Config.in | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/package/gqrx/Config.in b/package/gqrx/Config.in
> index 1dc40c6d24..94ccb60d44 100644
> --- a/package/gqrx/Config.in
> +++ b/package/gqrx/Config.in
> @@ -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
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency
  2019-01-01 12:29   ` Yann E. MORIN
@ 2019-01-01 12:33     ` Yann E. MORIN
  2019-01-18 11:00       ` Gwenhael Goavec-Merou
  0 siblings, 1 reply; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 12:33 UTC (permalink / raw)
  To: buildroot

Gwenha?l, All,

On 2019-01-01 13:29 +0100, Yann E. MORIN spake thusly:
> On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> > From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > 
> > Thanks to the new fftw package organization, gnuradio already selects
> > the appropriate fftw precision, and there is no need to propagate the
> > "depends on BR2_PACKAGE_FFTW_PRECISION_SINGLE" that used to be present
> > in the gnuradio package.
> > 
> > Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> 
> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> 
> However, Gwenha?l, one question: why does it depend on gnuradio rather
> than selecting it (and propagating its dependencies, of course)?
> 
> As I understand it, gqrx is an application, and for applications, we try
> as much as posiible to have them visible and select the libraries they
> need, rather than hide them behind their libs.

Oh, I see why, now: that's because of the historical fftw precision
dependency that we could not select gnuradio so far. But now we could.

> Regards,
> Yann E. MORIN.
> 
> > ---
> >  package/gqrx/Config.in | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
> > 
> > diff --git a/package/gqrx/Config.in b/package/gqrx/Config.in
> > index 1dc40c6d24..94ccb60d44 100644
> > --- a/package/gqrx/Config.in
> > +++ b/package/gqrx/Config.in
> > @@ -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
> > -- 
> > 2.20.1
> > 
> 
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package
  2019-01-01 12:16   ` Yann E. MORIN
@ 2019-01-01 13:07     ` Thomas Petazzoni
  2019-01-18 11:00     ` Gwenhael Goavec-Merou
  1 sibling, 0 replies; 47+ messages in thread
From: Thomas Petazzoni @ 2019-01-01 13:07 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 1 Jan 2019 13:16:57 +0100, Yann E. MORIN wrote:

> >  config BR2_PACKAGE_GNURADIO_FFT
> >  	bool "gr-fft support"
> > +	select BR2_PACKAGE_FFTW
> > +	select BR2_PACKAGE_FFTW_SINGLE  
> 
> So, here we're selecting both fftw and fftw-single, yet...

Well that's how the whole thing is designed: if you want to use one of
the fftw-* packages, you need to select both BR2_PACKAGE_FFTW or
BR2_PACKAGE_FFTW_SINGLE. See what the package/fftw/Config.in file looks
like with the whole series applied.

Note: I am not saying this is the only solution to do that, and that's
it's the best, I'm just saying that doing both of those selects is
needed with the solution proposed in this series.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 10/17] package/hackrf: use the new fftw-single package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 10/17] package/hackrf: use the new fftw-single package Thomas Petazzoni
@ 2019-01-01 18:11   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 18:11 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  package/hackrf/Config.in | 6 ++----
>  package/hackrf/hackrf.mk | 2 +-
>  2 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/package/hackrf/Config.in b/package/hackrf/Config.in
> index 4fa27699c4..b86790f2b0 100644
> --- a/package/hackrf/Config.in
> +++ b/package/hackrf/Config.in
> @@ -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
> diff --git a/package/hackrf/hackrf.mk b/package/hackrf/hackrf.mk
> index acab0be1d3..b83f6518e8 100644
> --- a/package/hackrf/hackrf.mk
> +++ b/package/hackrf/hackrf.mk
> @@ -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
>  
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 11/17] package/httping: use the new fftw-double package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 11/17] package/httping: use the new fftw-double package Thomas Petazzoni
@ 2019-01-01 18:16   ` Yann E. MORIN
  2019-01-18 11:01     ` Gwenhael Goavec-Merou
  0 siblings, 1 reply; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 18:16 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/httping/httping.mk | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/package/httping/httping.mk b/package/httping/httping.mk
> index 955ee3131b..b3a625a8e1 100644
> --- a/package/httping/httping.mk
> +++ b/package/httping/httping.mk
> @@ -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)

How did we go from fftw (aka any variant thereof), to fftw-double only?

Regards,
Yann E. MORIN.

>  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) \
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 12/17] package/imagemagick: use the new fftw-double package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 12/17] package/imagemagick: " Thomas Petazzoni
@ 2019-01-01 21:03   ` Yann E. MORIN
  2019-01-18 11:01     ` Gwenhael Goavec-Merou
  0 siblings, 1 reply; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 21:03 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/imagemagick/imagemagick.mk | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/package/imagemagick/imagemagick.mk b/package/imagemagick/imagemagick.mk
> index 72482267ce..7678980582 100644
> --- a/package/imagemagick/imagemagick.mk
> +++ b/package/imagemagick/imagemagick.mk
> @@ -113,11 +113,11 @@ else
>  IMAGEMAGICK_CONF_OPTS += --without-lzma
>  endif
>  
> -ifeq ($(BR2_PACKAGE_FFTW),y)
> +ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)

Same as for hackrf: why do we restrict it from any fftwe variant, to
only fftw-double?

Regards,
Yann E. MORIN.

>  # 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
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 13/17] package/libvips: use the new fftw-double package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 13/17] package/libvips: " Thomas Petazzoni
@ 2019-01-01 21:06   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 21:06 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/libvips/libvips.mk | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/package/libvips/libvips.mk b/package/libvips/libvips.mk
> index 8078e046d1..7622f32fbc 100644
> --- a/package/libvips/libvips.mk
> +++ b/package/libvips/libvips.mk
> @@ -68,9 +68,9 @@ else
>  LIBVIPS_CONF_OPTS += --without-tiff
>  endif
>  
> -ifeq ($(BR2_PACKAGE_FFTW),y)
> +ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)

Once more, why only fftw-double, when it previously could build with any
variant?

Regards,
Yann E. MORIN.

>  LIBVIPS_CONF_OPTS += --with-fftw
> -LIBVIPS_DEPENDENCIES += fftw
> +LIBVIPS_DEPENDENCIES += fftw-double
>  else
>  LIBVIPS_CONF_OPTS += --without-fftw
>  endif
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 14/17] package/pulseaudio: use the new fftw-single package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 14/17] package/pulseaudio: use the new fftw-single package Thomas Petazzoni
@ 2019-01-01 21:44   ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 21:44 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/pulseaudio/pulseaudio.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/pulseaudio/pulseaudio.mk b/package/pulseaudio/pulseaudio.mk
> index d1c35654cf..c91af22935 100644
> --- a/package/pulseaudio/pulseaudio.mk
> +++ b/package/pulseaudio/pulseaudio.mk
> @@ -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) \

I think I may end up being seen as an old dotard, re-hashing the same
nonsense endlessly again and again, but...

Why did we switch to fftw-single only, when previously fftw was checked
for, which meant any variant of it?

Regards,
Yann E. MORIN.

>  	$(if $(BR2_PACKAGE_SYSTEMD),systemd)
>  
>  ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y)
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 15/17] package/liquid-dsp: use the new fftw-{single, double, long-double} packages
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 15/17] package/liquid-dsp: use the new fftw-{single, double, long-double} packages Thomas Petazzoni
@ 2019-01-01 21:50   ` Yann E. MORIN
  2019-01-01 21:57     ` Yann E. MORIN
  0 siblings, 1 reply; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 21:50 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> 
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/liquid-dsp/liquid-dsp.mk | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/package/liquid-dsp/liquid-dsp.mk b/package/liquid-dsp/liquid-dsp.mk
> index db67893844..6aa27a5248 100644
> --- a/package/liquid-dsp/liquid-dsp.mk
> +++ b/package/liquid-dsp/liquid-dsp.mk
> @@ -30,9 +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
> +LIQUID_DSP_DEPENDENCIES += fftw-single
>  endif
>  
>  # disable altivec, it has build issues
> @@ -40,14 +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
> +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
> +LIQUID_DSP_DEPENDENCIES += fftw-long-double
>  endif

Since those three fftw variants can now be enabled at the same time,
we'd end up with:
    LIQUID_DSP_DEPENDENCIES = fftw-single fftw-double fftw-long-double
    LIQUID_DSP_LDFLAGS = -lfftw3f -lfftw3 -lfftw3l

Is that really what we want?

If not, then the theree conditions must be mutually exclusive, and a
priority must be given (I'll assume the most precise is to be favoured):

ifeq ($(BR2_PACKAGE_FFTW_LONG_DOUBLE),y)
LIQUID_DSP_LDFLAGS += -lfftw3l
LIQUID_DSP_DEPENDENCIES += fftw-long-double
else ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)
LIQUID_DSP_LDFLAGS += -lfftw3
LIQUID_DSP_DEPENDENCIES += fftw-double
else ifeq ($(BR2_PACKAGE_FFTW_SINGLE),y)
LIQUID_DSP_LDFLAGS += -lfftw3f
LIQUID_DSP_DEPENDENCIES += fftw-single
endif

Regards,
Yann E. MORIN.

>  LIQUID_DSP_CONF_OPTS += \
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package
  2018-12-31 13:30 ` [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package Thomas Petazzoni
  2019-01-01 12:24   ` Yann E. MORIN
@ 2019-01-01 21:54   ` Yann E. MORIN
  1 sibling, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 21:54 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> fftw is no longer a package: only fftw-single, fftw-double,
> fftw-long-double and fftw-quad are. fftw.mk only contains some common
> definitions that are used by the different fftw variants.
> 
> The old BR2_PACKAGE_FFTW_PRECISION_* options, which are no longer used
> anywhere, are moved to Config.in.legacy.

An additional, small nit to notice, below, to make check-package
happy...

> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  Config.in.legacy       | 36 ++++++++++++++++++++++++++++++++++++
>  package/fftw/Config.in | 41 -----------------------------------------
>  package/fftw/fftw.mk   | 18 ------------------
>  3 files changed, 36 insertions(+), 59 deletions(-)
> 
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 8cab6a23af..836c10fa48 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -146,6 +146,42 @@ endif
>  
>  comment "Legacy options removed in 2019.02"
>  
> +config BR2_PACKAGE_FFTW_PRECISION_SINGLE
> +	bool "single"
> +	select BR2_LEGACY
> +	select BR2_PACKAGE_FFTW_SINGLE
> +	help
> +	  This option has been removed in favor of
> +	  BR2_PACKAGE_FFTW_SINGLE.
> +
> +

Two consecutive empty lines, and check-package conplains:
    Config.in.legacy:157: consecutive empty lines

Regards,
Yann E. MORIN.

> +config BR2_PACKAGE_FFTW_PRECISION_DOUBLE
> +	bool "double"
> +	select BR2_LEGACY
> +	select BR2_PACKAGE_FFTW_DOUBLE
> +	help
> +	  This option has been removed in favor of
> +	  BR2_PACKAGE_FFTW_DOUBLE.
> +
> +config BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE
> +	bool "long double"
> +	depends on !(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && \
> +		(BR2_arm || BR2_mips || BR2_mipsel))
> +	select BR2_LEGACY
> +	select BR2_PACKAGE_FFTW_LONG_DOUBLE
> +	help
> +	  This option has been removed in favor of
> +	  BR2_PACKAGE_FFTW_LONG_DOUBLE.
> +
> +config BR2_PACKAGE_FFTW_PRECISION_QUAD
> +	bool "quad"
> +	depends on (BR2_i386 || BR2_x86_64) && BR2_USE_WCHAR
> +	select BR2_LEGACY
> +	select BR2_PACKAGE_FFTW_QUAD
> +	help
> +	  This option has been removed in favor of
> +	  BR2_PACKAGE_FFTW_QUAD.
> +
>  config BR2_PACKAGE_LUA_5_2
>  	bool "Lua 5.2.x version removed"
>  	select BR2_LEGACY
> diff --git a/package/fftw/Config.in b/package/fftw/Config.in
> index ed87de1a70..9e060ba5da 100644
> --- a/package/fftw/Config.in
> +++ b/package/fftw/Config.in
> @@ -12,47 +12,6 @@ config BR2_PACKAGE_FFTW
>  
>  if BR2_PACKAGE_FFTW
>  
> -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_SINGLE
> -	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_DOUBLE
> -	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))
> -	select BR2_PACKAGE_FFTW_LONG_DOUBLE
> -	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
> -	select BR2_PACKAGE_FFTW_QUAD
> -	help
> -	  Compile fftw in quadruple precision, i.e. use '__float128' for
> -	  floating point type.
> -
> -endchoice
> -
>  source "package/fftw/fftw-single/Config.in"
>  source "package/fftw/fftw-double/Config.in"
>  source "package/fftw/fftw-long-double/Config.in"
> diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk
> index 862ad5edc0..bcfdb9c96a 100644
> --- a/package/fftw/fftw.mk
> +++ b/package/fftw/fftw.mk
> @@ -10,22 +10,6 @@ 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
> -
> -ifeq ($(BR2_PACKAGE_FFTW_QUAD),y)
> -FFTW_DEPENDENCIES += fftw-quad
> -endif
> -
> -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_COMMON_CONF_OPTS += --enable-fortran
> @@ -49,6 +33,4 @@ FFTW_COMMON_CONF_OPTS += --disable-threads
>  endif
>  FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--enable,--disable)-openmp
>  
> -$(eval $(generic-package))
> -
>  include $(sort $(wildcard package/fftw/*/*.mk))
> -- 
> 2.20.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 15/17] package/liquid-dsp: use the new fftw-{single, double, long-double} packages
  2019-01-01 21:50   ` Yann E. MORIN
@ 2019-01-01 21:57     ` Yann E. MORIN
  0 siblings, 0 replies; 47+ messages in thread
From: Yann E. MORIN @ 2019-01-01 21:57 UTC (permalink / raw)
  To: buildroot

Thomas, Gwenha?l, All,

On 2019-01-01 22:50 +0100, Yann E. MORIN spake thusly:
> On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> > From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > 
> > Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ---
[--SNIP--]
> Since those three fftw variants can now be enabled at the same time,
> we'd end up with:
>     LIQUID_DSP_DEPENDENCIES = fftw-single fftw-double fftw-long-double
>     LIQUID_DSP_LDFLAGS = -lfftw3f -lfftw3 -lfftw3l
> Is that really what we want?

OK, seeing patch 17 in this seriesm the above does not really matter,
since liquid-dsp eventually keeps support for a single variant.

So, maybe it makes sense to drop the variants before switching to the
new packages?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 07/17] package/aubio: use the new fftw-double and fftw-single packages
  2019-01-01 12:02   ` Yann E. MORIN
@ 2019-01-18 11:00     ` Gwenhael Goavec-Merou
  0 siblings, 0 replies; 47+ messages in thread
From: Gwenhael Goavec-Merou @ 2019-01-18 11:00 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 1 Jan 2019 13:02:42 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Thomas, Gwenha?l, All,
> 
> Gwenha?l, question for you below...
> 
> On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> > From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > 
> > Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > [Thomas: drop the condition on BR2_PACKAGE_FFTW]
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ---
> >  package/aubio/aubio.mk | 13 ++++++-------
> >  1 file changed, 6 insertions(+), 7 deletions(-)
> > 
> > diff --git a/package/aubio/aubio.mk b/package/aubio/aubio.mk
> > index b0cc8b899e..dd2db2adb9 100644
> > --- a/package/aubio/aubio.mk
> > +++ b/package/aubio/aubio.mk
> > @@ -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)  
> 
> Now, we can be in a situation where both single and double are enabled,
> so the condi9tion here would be satisfied, i.e. we'd build with
> libsamplerate, but...
> 
> >  AUBIO_DEPENDENCIES += libsamplerate
> >  AUBIO_CONF_OPTS += --enable-samplerate
> >  else
> > @@ -41,15 +41,14 @@ else
> >  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)  
> 
> ... here we'd be using the double variant, as it takes precedence over
> the single one.
> 
> Thus we'd end up in the situation that the comment warns about: building
> libsamplerate in double precision is not possible.
> 
> So, I'd suggest that we move the libsamplerate condition below, in the
> fftw-single condition...
> 
> >  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
> > -endif
> > -else  # !BR2_PACKAGE_FFTW
> > +AUBIO_DEPENDENCIES += fftw-single  
> 
> ... here.
> 
> Of course, if the comment is now wrong and the libsamplerate can be
> build with fftw-double, the fix is different, and the condition on
> fftw-single should be dropped for libsamplerate.
> 
> Gwenha?l, care to share your thoughts on this? ;-)

True, double can't be enabled if libsamplerate is set.
It's seem mandatory to add a test about libsamplerate to avoid double if
present (or add an option to let the user decide if libsamplerate support must
be use or not).

Gwen

> 
> Regards,
> Yann E. MORIN.
> 
> > +else
> >  AUBIO_CONF_OPTS += --disable-fftw3
> >  endif
> >  
> > -- 
> > 2.20.1
> >   
> 
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________ buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package
  2019-01-01 12:16   ` Yann E. MORIN
  2019-01-01 13:07     ` Thomas Petazzoni
@ 2019-01-18 11:00     ` Gwenhael Goavec-Merou
  1 sibling, 0 replies; 47+ messages in thread
From: Gwenhael Goavec-Merou @ 2019-01-18 11:00 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 1 Jan 2019 13:16:57 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Thomas, Gwenha?l, All,
> 
> On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> > From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > 
> > Thanks to the new fftw package organization, we can use a "select"
> > instead of "depends on".
> > 
> > Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>  
> 
> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> 
[SNIP]
> >  endif
> >  
> >  ifeq ($(BR2_PACKAGE_GNURADIO_FFT),y)
> > -GNURADIO_DEPENDENCIES += fftw
> > +GNURADIO_DEPENDENCIES += fftw-single  
> 
> ... here we only have fftw-single as a dependency. That's a bit weird.
> 
In fact this modification is not needed because GNURadio selects explicitly
single precision and fftw-single is in FFTW_DEPENDENCIES build order will
be respected.

Regards,
Gwen

> But heck...
> 
> Regards,
> Yann E. MORIN.
> 
> >  GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=ON
> >  else
> >  GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=OFF
> > -- 
> > 2.20.1
> >   
> 
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________ buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency
  2019-01-01 12:33     ` Yann E. MORIN
@ 2019-01-18 11:00       ` Gwenhael Goavec-Merou
  0 siblings, 0 replies; 47+ messages in thread
From: Gwenhael Goavec-Merou @ 2019-01-18 11:00 UTC (permalink / raw)
  To: buildroot

Hello,
On Tue, 1 Jan 2019 13:33:12 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Gwenha?l, All,
> 
> On 2019-01-01 13:29 +0100, Yann E. MORIN spake thusly:
> > On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:  
> > > From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > > 
> > > Thanks to the new fftw package organization, gnuradio already selects
> > > the appropriate fftw precision, and there is no need to propagate the
> > > "depends on BR2_PACKAGE_FFTW_PRECISION_SINGLE" that used to be present
> > > in the gnuradio package.
> > > 
> > > Signed-off-by: Gwenhael Goavec-Merou
> > > <gwenhael.goavec-merou@trabucayre.com> Signed-off-by: Thomas Petazzoni
> > > <thomas.petazzoni@bootlin.com>  
> > 
> > Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > 
> > However, Gwenha?l, one question: why does it depend on gnuradio rather
> > than selecting it (and propagating its dependencies, of course)?
> > 
> > As I understand it, gqrx is an application, and for applications, we try
> > as much as posiible to have them visible and select the libraries they
> > need, rather than hide them behind their libs.  
> 
> Oh, I see why, now: that's because of the historical fftw precision
> dependency that we could not select gnuradio so far. But now we could.
> 
True. My fault.

Regards,
Gwen
>
> > Regards,
> > Yann E. MORIN.
> >   
> > > ---
> > >  package/gqrx/Config.in | 6 ++----
> > >  1 file changed, 2 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/package/gqrx/Config.in b/package/gqrx/Config.in
> > > index 1dc40c6d24..94ccb60d44 100644
> > > --- a/package/gqrx/Config.in
> > > +++ b/package/gqrx/Config.in
> > > @@ -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
> > > -- 
> > > 2.20.1
> > >   
> > 
> > -- 
> > .-----------------.--------------------.------------------.--------------------.
> > |  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.  |
> > '------------------------------^-------^------------------^--------------------'
> > _______________________________________________ buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot  
> 
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________ buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 11/17] package/httping: use the new fftw-double package
  2019-01-01 18:16   ` Yann E. MORIN
@ 2019-01-18 11:01     ` Gwenhael Goavec-Merou
  0 siblings, 0 replies; 47+ messages in thread
From: Gwenhael Goavec-Merou @ 2019-01-18 11:01 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 1 Jan 2019 19:16:37 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Thomas, Gwenha?l, All,
> 
> On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> > From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > 
> > Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ---
> >  package/httping/httping.mk | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/package/httping/httping.mk b/package/httping/httping.mk
> > index 955ee3131b..b3a625a8e1 100644
> > --- a/package/httping/httping.mk
> > +++ b/package/httping/httping.mk
> > @@ -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)  
> 
> How did we go from fftw (aka any variant thereof), to fftw-double only?
My fault (again) I've missed to add detail in commit message. httping is only
compatible with fftw-double.

Gwen
> 
> Regards,
> Yann E. MORIN.
> 
> >  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) \
> > -- 
> > 2.20.1
> >   
> 
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________ buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 47+ messages in thread

* [Buildroot] [PATCH v3 12/17] package/imagemagick: use the new fftw-double package
  2019-01-01 21:03   ` Yann E. MORIN
@ 2019-01-18 11:01     ` Gwenhael Goavec-Merou
  0 siblings, 0 replies; 47+ messages in thread
From: Gwenhael Goavec-Merou @ 2019-01-18 11:01 UTC (permalink / raw)
  To: buildroot

On Tue, 1 Jan 2019 22:03:39 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Thomas, Gwenha?l, All,
> 
> On 2018-12-31 14:30 +0100, Thomas Petazzoni spake thusly:
> > From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > 
> > Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ---
> >  package/imagemagick/imagemagick.mk | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/package/imagemagick/imagemagick.mk
> > b/package/imagemagick/imagemagick.mk index 72482267ce..7678980582 100644
> > --- a/package/imagemagick/imagemagick.mk
> > +++ b/package/imagemagick/imagemagick.mk
> > @@ -113,11 +113,11 @@ else
> >  IMAGEMAGICK_CONF_OPTS += --without-lzma
> >  endif
> >  
> > -ifeq ($(BR2_PACKAGE_FFTW),y)
> > +ifeq ($(BR2_PACKAGE_FFTW_DOUBLE),y)  
> 
> Same as for hackrf: why do we restrict it from any fftwe variant, to
> only fftw-double?
>
Lack on commit message... 
ImageMagick use fftw_xx (aka default, aka double).
This is the same situation for hackrf (with single), libvips, pulseaudio
Gwen
>
> Regards,
> Yann E. MORIN.
> 
> >  # 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
> > -- 
> > 2.20.1
> >   
> 
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________ buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2019-01-18 11:01 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-31 13:30 [Buildroot] [PATCH v3 00/17] Split fftw into multiple packages Thomas Petazzoni
2018-12-31 13:30 ` [Buildroot] [PATCH v3 01/17] package/fftw: prepare for splitting " Thomas Petazzoni
2019-01-01 10:14   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 02/17] package/fftw: break fftw-single into a dedicated package Thomas Petazzoni
2019-01-01 11:09   ` Yann E. MORIN
2019-01-01 12:00     ` Thomas Petazzoni
2019-01-01 12:11       ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 03/17] package/fftw: break fftw-long-double " Thomas Petazzoni
2019-01-01 11:40   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 04/17] package/fftw: break fftw-quad " Thomas Petazzoni
2019-01-01 11:46   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 05/17] package/fftw: break fftw-double " Thomas Petazzoni
2019-01-01 11:52   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 06/17] package/alsa-utils: use the new fftw-single package Thomas Petazzoni
2019-01-01 11:55   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 07/17] package/aubio: use the new fftw-double and fftw-single packages Thomas Petazzoni
2019-01-01 12:02   ` Yann E. MORIN
2019-01-18 11:00     ` Gwenhael Goavec-Merou
2018-12-31 13:30 ` [Buildroot] [PATCH v3 08/17] package/gnuradio: use the new fftw-single package Thomas Petazzoni
2019-01-01 12:16   ` Yann E. MORIN
2019-01-01 13:07     ` Thomas Petazzoni
2019-01-18 11:00     ` Gwenhael Goavec-Merou
2018-12-31 13:30 ` [Buildroot] [PATCH v3 09/17] package/gqrx: remove unneeded fftw dependency Thomas Petazzoni
2019-01-01 12:29   ` Yann E. MORIN
2019-01-01 12:33     ` Yann E. MORIN
2019-01-18 11:00       ` Gwenhael Goavec-Merou
2018-12-31 13:30 ` [Buildroot] [PATCH v3 10/17] package/hackrf: use the new fftw-single package Thomas Petazzoni
2019-01-01 18:11   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 11/17] package/httping: use the new fftw-double package Thomas Petazzoni
2019-01-01 18:16   ` Yann E. MORIN
2019-01-18 11:01     ` Gwenhael Goavec-Merou
2018-12-31 13:30 ` [Buildroot] [PATCH v3 12/17] package/imagemagick: " Thomas Petazzoni
2019-01-01 21:03   ` Yann E. MORIN
2019-01-18 11:01     ` Gwenhael Goavec-Merou
2018-12-31 13:30 ` [Buildroot] [PATCH v3 13/17] package/libvips: " Thomas Petazzoni
2019-01-01 21:06   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 14/17] package/pulseaudio: use the new fftw-single package Thomas Petazzoni
2019-01-01 21:44   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 15/17] package/liquid-dsp: use the new fftw-{single, double, long-double} packages Thomas Petazzoni
2019-01-01 21:50   ` Yann E. MORIN
2019-01-01 21:57     ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 16/17] package/fftw: remove as regular package Thomas Petazzoni
2019-01-01 12:24   ` Yann E. MORIN
2019-01-01 21:54   ` Yann E. MORIN
2018-12-31 13:30 ` [Buildroot] [PATCH v3 17/17] package/liquid-dsp: drop support for fftw-double and fftw-long-double Thomas Petazzoni
2018-12-31 13:52   ` Baruch Siach
2018-12-31 13:54     ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.