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

comment "gnuradio needs a toolchain not affected by GCC bug 64735"
	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735

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_HAS_GCC_BUG_64735 # boost-thread
	select BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_ATOMIC
	select BR2_PACKAGE_BOOST_DATE_TIME
	select BR2_PACKAGE_BOOST_FILESYSTEM
	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
	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
	select BR2_PACKAGE_BOOST_PYTHON
	select BR2_PACKAGE_PYTHON_NUMPY # runtime
	select BR2_PACKAGE_PYTHON_SIX # runtime
	help
	  Enable python component

comment "python support needs glibc or musl"
	depends on !(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_PAGER
	bool "gr-flex support"
	select BR2_PACKAGE_GNURADIO_ANALOG
	help
	  FLEX pager decoder implementation 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

endif
