comment "ola needs a toolchain w/ C++, threads, wchar, dynamic library"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \
		|| !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS

menuconfig BR2_PACKAGE_OLA
	bool "ola (open lighting architecture)"
	select BR2_PACKAGE_PROTOBUF
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	select BR2_PACKAGE_UTIL_LINUX
	depends on BR2_INSTALL_LIBSTDCPP # protobuf
	depends on !BR2_STATIC_LIBS # protobuf
	depends on BR2_USE_WCHAR # util-linux
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
	help
	  Open Lighting Architecture provides applications
	  with a mechanism to send and receive DMX512 & RDM
	  commands using hardware devices and DMX over IP protocols.

	  http://www.opendmx.net/index.php/OLA

if BR2_PACKAGE_OLA

comment "bindings and interface"

config BR2_PACKAGE_OLA_WEB
	bool "http interface"
	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt, libmicrohttpd
	select BR2_PACKAGE_LIBMICROHTTPD
	help
	  Build OLA with browser interface.

config BR2_PACKAGE_OLA_PYTHON_BINDINGS
	bool "python bindings"
	depends on BR2_PACKAGE_PYTHON
	select BR2_PACKAGE_PYTHON_PROTOBUF
	help
	  Build OLA with support for the Python language.

config BR2_PACKAGE_OLA_SLP
	bool "slp tools"
	help
	  Build OLA with slp tools.

comment "tests and examples"

config BR2_PACKAGE_OLA_EXAMPLES
	bool "examples"
	select BR2_PACKAGE_NCURSES
	help
	  Build OLA examples.

config BR2_PACKAGE_OLA_RDM_TESTS
	bool "rdm tests"
	depends on BR2_PACKAGE_OLA_PYTHON_BINDINGS
	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
	select BR2_PACKAGE_PYTHON_NUMPY
	help
	  Build OLA RDM tests.

comment "plugin selections"

config BR2_PACKAGE_OLA_PLUGIN_E131
	bool "acn E131"
	help
	  Build ACN E131 plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_ARTNET
	bool "artnet"
	help
	  Build Artnet plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_OPENDMX
	bool "DMX4Linux"
	help
	  Build DMX4Linux plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_DUMMY
	bool "dummy"
	help
	  Build Dummy plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_ESPNET
	bool "espnet"
	help
	  Build EspNet plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_KINET
	bool "kinet"
	help
	  Build KiNet plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_MILINT
	bool "Milford Instruments"
	help
	  Build Milford Instruments 1-463 plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_OSC
	bool "osc"
	select BR2_PACKAGE_LIBLO
	help
	  Build Open Sound Control plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_PATHPORT
	bool "pathport"
	help
	  Build Pathport plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_SANDNET
	bool "sandnet"
	help
	  Build SandNet plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_SHOWNET
	bool "shownet"
	help
	  Build ShowNet plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_STAGEPROFI
	bool "stageprofi"
	select BR2_PACKAGE_LIBUSB
	help
	  Build StageProfi plugin for OLA.

config BR2_PACKAGE_OLA_PLUGIN_USBPRO
	bool "usbpro"
	select BR2_PACKAGE_LIBUSB
	help
	  Build UsbPro plugin for OLA.

endif
