config BR2_PACKAGE_NETWORK_MANAGER
	bool "network-manager"
	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
	depends on !BR2_STATIC_LIBS # gnutls
	depends on BR2_USE_MMU # dbus
	depends on BR2_PACKAGE_HAS_UDEV
	# Tested with 3.2, but may even work with earlier versions
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
	depends on BR2_TOOLCHAIN_USES_GLIBC # CLOCK_BOOTTIME, IPTOS_CLASS_*
	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
	depends on BR2_USE_WCHAR # libglib2
	select BR2_PACKAGE_DBUS
	select BR2_PACKAGE_GNUTLS
	select BR2_PACKAGE_LIBGLIB2
	select BR2_PACKAGE_LIBGCRYPT
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	select BR2_PACKAGE_WIRELESS_TOOLS
	select BR2_PACKAGE_WIRELESS_TOOLS_LIB
	select BR2_PACKAGE_READLINE
	select BR2_PACKAGE_LIBNDP
	help
	  NetworkManager is a set of co-operative tools that make
	  networking simple and straightforward. Whether WiFi, wired,
	  3G, or Bluetooth, NetworkManager allows you to quickly move
	  from one network to another: once a network has been
	  configured and joined once, it can be detected and re-joined
	  automatically the next time it's available.

	  http://projects.gnome.org/NetworkManager/

if BR2_PACKAGE_NETWORK_MANAGER

config BR2_PACKAGE_NETWORK_MANAGER_TUI
	bool "nmtui support"
	select BR2_PACKAGE_NEWT
	help
	  This option enables terminal based UI

config BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER
	bool "modem-manager support"
	select BR2_PACKAGE_MODEM_MANAGER
	select BR2_PACKAGE_MODEM_MANAGER_LIBMBIM
	select BR2_PACKAGE_MODEM_MANAGER_LIBQMI
	help
	  This option enables support for ModemManager

config BR2_PACKAGE_NETWORK_MANAGER_PPPD
	bool "pppd support"
	depends on !BR2_TOOLCHAIN_USES_MUSL # pppd
	select BR2_PACKAGE_PPPD
	help
	  This option enables support for PPPD daemon

comment "pppd support needs a glibc or uClibc toolchain"
	depends on BR2_TOOLCHAIN_USES_MUSL

config BR2_PACKAGE_NETWORK_MANAGER_OVS
	bool "OpenVSwitch support"
	select BR2_PACKAGE_JANSSON
	help
	  This option enables support for OpenVSwitch

endif

comment "NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 3.2, dynamic library, wchar, threads"
	depends on BR2_USE_MMU
	depends on !BR2_PACKAGE_HAS_UDEV || \
		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 || \
		!BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS || \
		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
