diff --git a/package/fftw/Config.in b/package/fftw/Config.in index 4cefa28edf..4a0706a6be 100644 --- a/package/fftw/Config.in +++ b/package/fftw/Config.in @@ -49,4 +49,17 @@ config BR2_PACKAGE_FFTW_PRECISION_QUAD endchoice +config BR2_PACKAGE_FFTW_FAST + bool "optimise for speed over accuracy" + help + Optimise for fast math functions, at the expense of accuracy. + + Say 'y' if you need speed and can live with inaccuracies in + the results. Say 'n' (the default) if accuracy is of utmost + importance. + + This basically uses gcc's -Ofast optimisation level, which in + turn is basically using gcc's -ffast-math. See the gcc manual + for what this means. + endif diff --git a/package/fftw/fftw.mk b/package/fftw/fftw.mk index 78d36e97d7..c05012a8e4 100644 --- a/package/fftw/fftw.mk +++ b/package/fftw/fftw.mk @@ -14,4 +14,11 @@ FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)- 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) +ifeq ($(BR2_PACKAGE_FFTW_FAST),y) +FFTW_CFLAGS += -Ofast +endif + +FFTW_CONF_OPTS += CFLAGS="$(FFTW_CFLAGS)" + $(eval $(autotools-package))