config BR2_PACKAGE_CONNMAN
	bool "connman"
	depends on BR2_USE_WCHAR # libglib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
	depends on BR2_USE_MMU # dbus, libglib2
	depends on !BR2_STATIC_LIBS # needs dlopen()
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on !BR2_TOOLCHAIN_USES_MUSL # missing res_ninit()
	select BR2_PACKAGE_DBUS
	select BR2_PACKAGE_LIBGLIB2
	help
	  The Connection Manager (ConnMan) project provides a daemon
	  for managing internet connections within embedded devices
	  running the Linux operating system.

	  https://01.org/connman

if BR2_PACKAGE_CONNMAN

choice
	prompt "Firewall type"
	default BR2_PACKAGE_CONNMAN_IPTABLES
	help
	  Select which firewall type is used.

config BR2_PACKAGE_CONNMAN_IPTABLES
	bool "iptables"
	select BR2_PACKAGE_IPTABLES
	help
	  Use iptables as firewall.

config BR2_PACKAGE_CONNMAN_NFTABLES
	bool "nftables"
	depends on BR2_USE_WCHAR
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
	select BR2_PACKAGE_LIBMNL
	select BR2_PACKAGE_NFTABLES
	help
	  Use nftables as firewall.
endchoice

config BR2_PACKAGE_CONNMAN_ETHERNET
	bool "enable Ethernet support"
	default y

config BR2_PACKAGE_CONNMAN_WIFI
	bool "enable WiFi support"
	select BR2_PACKAGE_WPA_SUPPLICANT # runtime
	select BR2_PACKAGE_WPA_SUPPLICANT_DBUS # runtime
	help
	  Enable WiFi support (scan and static/dhcp interface
	  setup). ConnMan detects the start of wpa_supplicant
	  automatically.

config BR2_PACKAGE_CONNMAN_WIREGUARD
	bool "enable wireguard support"
	select BR2_PACKAGE_LIBMNL

config BR2_PACKAGE_CONNMAN_WISPR
	bool "enable WISPr support"
	depends on !BR2_STATIC_LIBS # gnutls
	select BR2_PACKAGE_GNUTLS
	help
	  Enable support for Wireless Internet Service Provider
	  roaming (WISPr). A RADIUS server is used to authenticate the
	  subscriber's credentials.

comment "connman WISPr needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_CONNMAN_BLUETOOTH
	bool "enable Bluetooth support"
	help
	  Enable Bluetooth support. The start of bluetoothd is
	  automatically detected and only a runtime dependency.

config BR2_PACKAGE_CONNMAN_LOOPBACK
	bool "enable loopback support"

config BR2_PACKAGE_CONNMAN_NEARD
	bool "enable neard support"
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # neard
	select BR2_PACKAGE_NEARD

config BR2_PACKAGE_CONNMAN_OFONO
	bool "enable ofono support"
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # ofono
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # ofono
	select BR2_PACKAGE_OFONO

comment "ofono support needs a toolchain w/ headers >= 4.12"
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12

config BR2_PACKAGE_CONNMAN_DEBUG
	bool "enable compiling with debugging information"

config BR2_PACKAGE_CONNMAN_CLIENT
	bool "enable command line client"
	select BR2_PACKAGE_READLINE

endif # BR2_PACKAGE_CONNMAN

comment "connman needs a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library"
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \
		|| BR2_TOOLCHAIN_USES_MUSL
