config BR2_PACKAGE_BLUEZ5_UTILS
	bool "bluez-utils 5.x"
	depends on BR2_USE_WCHAR # libglib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
	depends on BR2_USE_MMU # dbus
	depends on !BR2_STATIC_LIBS # uses dlfcn
	depends on !BR2_PACKAGE_BLUEZ_UTILS # conflicts with 4.x version
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
	select BR2_PACKAGE_DBUS
	select BR2_PACKAGE_LIBGLIB2
	help
	  bluez utils version 5.x

	  With this release BlueZ only supports the new Bluetooth
	  Management kernel interface (introduced in Linux 3.4).

	  For Low Energy support at least kernel version 3.5 is
	  needed.

	  The API is not backward compatible with BlueZ 4.

	  Bluez utils will use systemd and/or udev if enabled.

	  http://www.bluez.org
	  http://www.kernel.org/pub/linux/bluetooth

if BR2_PACKAGE_BLUEZ5_UTILS

config BR2_PACKAGE_BLUEZ5_UTILS_OBEX
	bool "build OBEX support"
	select BR2_PACKAGE_LIBICAL
	depends on BR2_INSTALL_LIBSTDCPP
	help
	  Enable the OBEX support in Bluez 5.x.

comment "OBEX support needs a toolchain w/ C++"
	depends on !BR2_INSTALL_LIBSTDCPP

config BR2_PACKAGE_BLUEZ5_UTILS_CLIENT
	bool "build CLI client"
	select BR2_PACKAGE_READLINE
	help
	  Enable the Bluez 5.x command line client.

config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL
	bool "install GATT tool"
	depends on BR2_PACKAGE_BLUEZ5_UTILS_CLIENT
	help
	  Generic Attribute Profile (GATT) support. This provides
	  profile discovery and description services for Bluetooth Low
	  Energy. This will install the gatttool utility.

	  It is always built with BlueZ 5.x, but upstream choose not
	  to install it by default.

config BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL
	bool "build experimental plugins"
	help
	  Build BlueZ 5.x experimental plugins (SAP, NFC, ...).

config BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS
	bool "build sixaxis plugin"
	depends on BR2_PACKAGE_HAS_UDEV
	help
	  Build BlueZ 5.x sixaxis plugin (support Sony Dualshock controller)

comment "sixaxis plugin needs udev /dev management"
	depends on !BR2_PACKAGE_HAS_UDEV

config BR2_PACKAGE_BLUEZ5_UTILS_TEST
	bool "build tests"
	help
	  Build BlueZ 5.x tests

endif

comment "bluez5-utils needs a toolchain w/ wchar, threads, headers >= 3.4, dynamic library"
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 || BR2_STATIC_LIBS
	depends on BR2_USE_MMU

comment "bluez5-utils conflicts with older bluez-utils version"
	depends on BR2_PACKAGE_BLUEZ_UTILS
