kumquat-buildroot/package/fftw/Config.in
Gwenhael Goavec-Merou fca8b60f86 package/fftw: break fftw-single 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 single precision into a new package and:

- makes BR2_PACKAGE_FFTW_PRECISION_SINGLE select
  BR2_PACKAGE_FFTW_SINGLE to keep compatibility with packages that use
  BR2_PACKAGE_FFTW_PRECISION_SINGLE. This option will be removed in a
  follow-up commit;

- removes the BR2_PACKAGE_FFTW_USE_SSE and BR2_PACKAGE_FFTW_USE_NEON
  otpions since they are only used for single precision. The
  corresponding CPU-capability options are directly handled in
  the fftw-single package;

- makes fftw depend on fftw-single when this package is enabled.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
[Yann/Thomas:
 - Force --disable-single in FFTW_CONF_OPTS, just for the sake of
   clarity (fftw is no longer going to build the single variant)
 - Use FFTW_SINGLE_DL_SUBDIR to avoid downloading fftw multiple times
 - Minor reformatting tweaks in fftw-single.mk
 - Do not deprecate BR2_PACKAGE_FFTW_PRECISION_SINGLE and instead make
   it select BR2_PACKAGE_FFTW_SINGLE, so that packages using
   BR2_PACKAGE_FFTW_PRECISION_SINGLE continue to work.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-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

73 lines
1.9 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))
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"
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