fca8b60f86
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>
73 lines
1.9 KiB
Plaintext
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
|