comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 8"
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8

comment "gnuradio needs a toolchain not affected by GCC bug 43744"
	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_43744

config BR2_PACKAGE_GNURADIO
	bool "gnuradio"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	depends on BR2_USE_MMU # use fork()
	depends on BR2_USE_WCHAR # boost
	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic, boost-thread
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_43744
	select BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_ATOMIC
	select BR2_PACKAGE_BOOST_DATE_TIME
	select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
	select BR2_PACKAGE_BOOST_REGEX
	select BR2_PACKAGE_BOOST_SYSTEM
	select BR2_PACKAGE_BOOST_THREAD
	select BR2_PACKAGE_LOG4CPP
	select BR2_PACKAGE_GMP
	select BR2_PACKAGE_SPDLOG
	select BR2_PACKAGE_VOLK
	help
	  GNU Radio is a free & open-source software development
	  toolkit that provides signal processing blocks to implement
	  software radios. It can be used with readily-available
	  low-cost external RF hardware to create software-defined
	  radios, or without hardware in a simulation-like
	  environment. It is widely used in hobbyist, academic and
	  commercial environments to support both wireless
	  communications research and real-world radio systems.

	  http://gnuradio.org/

if BR2_PACKAGE_GNURADIO

config BR2_PACKAGE_GNURADIO_AUDIO
	bool "gr-audio"
	select BR2_PACKAGE_ALSA_LIB if !BR2_PACKAGE_PORTAUDIO
	help
	  Add audio source/sink to GNU Radio

config BR2_PACKAGE_GNURADIO_BLOCKS
	bool "blocks support"
	help
	  GNU Radio basic block library

config BR2_PACKAGE_GNURADIO_CTRLPORT
	bool "ctrlport support"
	help
	  GNU Radio ctrlport block

config BR2_PACKAGE_GNURADIO_DTV
	bool "gr-dtv support"
	select BR2_PACKAGE_GNURADIO_ANALOG
	select BR2_PACKAGE_GNURADIO_FEC
	select BR2_PACKAGE_GNURADIO_FILTER
	help
	  various digital television standards blocks

config BR2_PACKAGE_GNURADIO_FEC
	bool "gr-fec support"
	select BR2_PACKAGE_GNURADIO_BLOCKS
	select BR2_PACKAGE_GSL
	help
	  FEC signal processing blocks

config BR2_PACKAGE_GNURADIO_PYTHON
	bool "python support"
	depends on BR2_PACKAGE_PYTHON3
	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
	depends on BR2_HOST_GCC_AT_LEAST_9 # host-python-numpy
	select BR2_PACKAGE_BOOST_PYTHON
	select BR2_PACKAGE_PYTHON_NUMPY # runtime
	select BR2_PACKAGE_PYTHON_PYBIND
	select BR2_PACKAGE_PYTHON_SIX # runtime
	help
	  Enable python component

comment "python support needs a glibc or musl toolchain w/ host gcc >= 9"
	depends on !BR2_HOST_GCC_AT_LEAST_9 || \
		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)

config BR2_PACKAGE_GNURADIO_UTILS
	bool "gr-utils support"
	depends on BR2_PACKAGE_GNURADIO_PYTHON
	help
	  Misc python utilities

config BR2_PACKAGE_GNURADIO_ZEROMQ
	bool "gr-zeromq support"
	select BR2_PACKAGE_CPPZMQ
	select BR2_PACKAGE_PYTHON_PYZMQ if BR2_PACKAGE_GNURADIO_PYTHON
	help
	  zeromq communication support

config BR2_PACKAGE_GNURADIO_ANALOG
	bool "gr-analog support"
	select BR2_PACKAGE_GNURADIO_FILTER
	help
	  Analog communications blocks

config BR2_PACKAGE_GNURADIO_CHANNELS
	bool "gr-channels support"
	select BR2_PACKAGE_GNURADIO_ANALOG
	help
	  Channel model blocks

config BR2_PACKAGE_GNURADIO_DIGITAL
	bool "gr-digital support"
	select BR2_PACKAGE_GNURADIO_ANALOG
	help
	  Digital communications blocks

config BR2_PACKAGE_GNURADIO_FFT
	bool "gr-fft support"
	select BR2_PACKAGE_FFTW
	select BR2_PACKAGE_FFTW_SINGLE
	select BR2_PACKAGE_GNURADIO_BLOCKS
	help
	  FFT signal processing blocks

config BR2_PACKAGE_GNURADIO_FILTER
	bool "gr-filter support"
	select BR2_PACKAGE_GNURADIO_FFT
	help
	  Filter signal processing blocks

config BR2_PACKAGE_GNURADIO_IIO
	bool "gr-iio support"
	select BR2_PACKAGE_LIBIIO
	select BR2_PACKAGE_GNURADIO_BLOCKS
	help
	  IIO support

config BR2_PACKAGE_GNURADIO_NETWORK
	bool "gr-network support"
	select BR2_PACKAGE_GNURADIO_BLOCKS
	help
	  TCP and UDP source/sink blocks

config BR2_PACKAGE_GNURADIO_QTGUI
	bool "gr-qtgui"
	depends on BR2_PACKAGE_GNURADIO_PYTHON
	depends on BR2_PACKAGE_QT5
	select BR2_PACKAGE_GNURADIO_FFT
	select BR2_PACKAGE_GNURADIO_FILTER
	select BR2_PACKAGE_PYTHON_PYQT5
	select BR2_PACKAGE_QT5BASE_FONTCONFIG # runtime
	select BR2_PACKAGE_QT5BASE_GUI # runtime
	select BR2_PACKAGE_QT5BASE_WIDGETS # runtime
	select BR2_PACKAGE_QWT
	help
	  GNU Radio Qt scopes

config BR2_PACKAGE_GNURADIO_TRELLIS
	bool "gr-trellis support"
	select BR2_PACKAGE_GNURADIO_DIGITAL
	help
	  Trellis coded modulation blocks

config BR2_PACKAGE_GNURADIO_UHD
	bool "gr-uhd support"
	select BR2_PACKAGE_UHD
	select BR2_PACKAGE_GNURADIO_ANALOG
	select BR2_PACKAGE_GNURADIO_BLOCKS
	select BR2_PACKAGE_GNURADIO_FILTER
	help
	  UHD support

endif
