Files
buildroot/package/fftw/Config.in
Gwenhael Goavec-Merou cab310b8fd package/fftw: break fftw-long-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 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>
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

75 lines
2.0 KiB
Plaintext

config BR2_PACKAGE_FFTW
bool "fftw"
help
Library for computing Fast Fourier Transforms.
This library computes Fast Fourier Transforms (FFT) in one
or more dimensions. It is extremely fast. This package
contains the shared library version of the fftw libraries in
double precision.
http://www.fftw.org
if BR2_PACKAGE_FFTW
config BR2_PACKAGE_FFTW_USE_SSE2
bool
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_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
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
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-long-double/Config.in"
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