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_SSE
	bool

config BR2_PACKAGE_FFTW_USE_SSE2
	bool

config BR2_PACKAGE_FFTW_USE_NEON
	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_USE_SSE if BR2_X86_CPU_HAS_SSE
	select BR2_PACKAGE_FFTW_USE_SSE2 if BR2_X86_CPU_HAS_SSE2
	select BR2_PACKAGE_FFTW_USE_NEON if BR2_ARM_CPU_HAS_NEON && !BR2_ARM_SOFT_FLOAT
	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

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
