mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-19 16:40:46 -09:00
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>
75 lines
2.0 KiB
Plaintext
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
|