55efbfd735
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>
55 lines
1.4 KiB
Makefile
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))
|