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_*
	select BR2_PACKAGE_DHCPCD if !BR2_PACKAGE_DHCP_CLIENT
	select BR2_PACKAGE_DBUS
	select BR2_PACKAGE_DBUS_GLIB
	select BR2_PACKAGE_GNUTLS
	select BR2_PACKAGE_LIBGCRYPT
	select BR2_PACKAGE_LIBNL
	select BR2_PACKAGE_LIBGUDEV
	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"
	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
