kumquat-buildroot/package/fftw/fftw.mk
Gwenhael Goavec-Merou 55efbfd735 package/fftw: break fftw-double into a dedicated package
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>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-02-06 10:14:46 +01:00

55 lines
1.4 KiB
Makefile

################################################################################
#
# fftw
#
################################################################################
FFTW_VERSION = 3.3.8
FFTW_SITE = http://www.fftw.org
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
FFTW_COMMON_CONF_ENV += FLIBS="-lgfortran -lm"
else
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
# Generic optimisations
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
FFTW_COMMON_CONF_OPTS += --enable-threads
FFTW_COMMON_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--without,--with)-combined-threads
else
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))