comment "ola needs a toolchain w/ C++, threads, largefile, wchar"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_arm || BR2_i386 || BR2_mipsel || BR2_x86_64

config 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_LARGEFILE # util-linux
	depends on BR2_USE_WCHAR # util-linux
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_arm || BR2_i386 || BR2_mipsel || BR2_x86_64 # protobuf
	# protobuf -> host-protobuf
	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
	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

menu "bindings and interface"

config BR2_PACKAGE_OLA_WEB
	bool "http interface"
	select BR2_PACKAGE_LIBMICROHTTPD
	help
	  Build OLA with browser interface.

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

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

endmenu

menu "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"
	select BR2_PACKAGE_OLA_PYTHON_BINDINGS
	depends on BR2_USE_MMU
	help
	  Build OLA RDM tests.

endmenu

menu "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.

endmenu

endif
