comment "uhd needs a toolchain w/ C++, NPTL, wchar, dynamic library"
	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

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

config BR2_PACKAGE_UHD
	bool "uhd"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic, boost-filesystem
	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	depends on BR2_USE_MMU # use fork()
	depends on BR2_USE_WCHAR # boost
	select BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_ATOMIC
	select BR2_PACKAGE_BOOST_CHRONO
	select BR2_PACKAGE_BOOST_DATE_TIME
	select BR2_PACKAGE_BOOST_FILESYSTEM
	select BR2_PACKAGE_BOOST_MATH
	select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
	select BR2_PACKAGE_BOOST_REGEX
	select BR2_PACKAGE_BOOST_SERIALIZATION
	select BR2_PACKAGE_BOOST_SYSTEM
	select BR2_PACKAGE_BOOST_THREAD
	help
	  Universal Software Radio Peripheral (USRP) Hardware Driver

	  https://kb.etthus.com

if BR2_PACKAGE_UHD

config BR2_PACKAGE_UHD_B100
	bool "b100 support"
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
	select BR2_PACKAGE_UHD_USB
	help
	  enable B100 support

comment "B100 support needs a toolchain w/ gcc >= 4.9"
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9

config BR2_PACKAGE_UHD_B200
	bool "b200 support"
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
	select BR2_PACKAGE_UHD_USB
	help
	  enable B200 support

comment "B200 support needs a toolchain w/ gcc >= 4.9"
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9

config BR2_PACKAGE_UHD_E300
	bool "E300 support"
	select BR2_PACKAGE_UHD_MPMD
	help
	  enable E300 support

config BR2_PACKAGE_UHD_E320
	bool "E320 support"
	select BR2_PACKAGE_UHD_MPMD
	help
	  enable E320 support

config BR2_PACKAGE_UHD_EXAMPLES
	bool "uhd-examples"
	help
	  Examples

config BR2_PACKAGE_UHD_MPMD
	bool "MPMD support"
	help
	  enable MPMD support

config BR2_PACKAGE_UHD_N230
	bool "N230 support"
	help
	  enable N230 support

config BR2_PACKAGE_UHD_N300
	bool "N300 support"
	select BR2_PACKAGE_UHD_MPMD
	help
	  enable N300 support

config BR2_PACKAGE_UHD_N320
	bool "N320 support"
	select BR2_PACKAGE_UHD_MPMD
	help
	  enable N320 support

config BR2_PACKAGE_UHD_OCTOCLOCK
	bool "OctoClock support"
	help
	  enable OctoClock support

comment "uhd python API needs python3 and a toolchain w/ glibc or musl"
	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

config BR2_PACKAGE_UHD_PYTHON
	bool "python API 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_PYTHON_NUMPY
	select BR2_PACKAGE_PYTHON_REQUESTS
	help
	  enable python API support

config BR2_PACKAGE_UHD_RFNOC
	bool "RFNoC support"
	help
	  enable RFNoC support

config BR2_PACKAGE_UHD_USB
	bool "USB support"
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
	select BR2_PACKAGE_LIBUSB
	help
	  enable UHD USB support

comment "USB support needs a toolchain w/ gcc >= 4.9"
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9

config BR2_PACKAGE_UHD_USRP1
	bool "USRP1 support"
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
	select BR2_PACKAGE_UHD_USB
	help
	  enable USRP1 support

comment "USRP1 support needs a toolchain w/ gcc >= 4.9"
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9

config BR2_PACKAGE_UHD_USRP2
	bool "USRP2 support"
	help
	  enable USRP2 support

comment "uhd utils depends on python API support"
	depends on !BR2_PACKAGE_UHD_PYTHON

config BR2_PACKAGE_UHD_UTILS
	bool "uhd-utils"
	depends on BR2_PACKAGE_UHD_PYTHON
	select BR2_PACKAGE_PYTHON_SIX
	help
	  uhd-utils

config BR2_PACKAGE_UHD_X300
	bool "X300 support"
	help
	  enable X300 support

endif
