comment "ola needs a toolchain w/ C++, threads, dynamic library"
	depends on !BR2_INSTALL_LIBSTDCPP || !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_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
