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
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.
endchoice
+source "package/fftw/fftw-single/Config.in"
+
config BR2_PACKAGE_FFTW_FAST
bool "optimise for speed over accuracy"
help
--- /dev/null
+config BR2_PACKAGE_FFTW_SINGLE
+ bool "fftw-single"
+ help
+ Compile fftw in single precision, i.e. use 'float'
+ for floating point type.
--- /dev/null
+../fftw.hash
\ No newline at end of file
--- /dev/null
+################################################################################
+#
+# 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))
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
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
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))