config BR2_PACKAGE_BIND
	bool "bind"
	depends on BR2_USE_MMU # fork(), libuv
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
	depends on !BR2_STATIC_LIBS # libuv
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libuv
	select BR2_PACKAGE_LIBUV
	select BR2_PACKAGE_OPENSSL
	help
	  BIND (Berkeley Internet Name Domain) is an
	  implementation of the Domain Name System (DNS) protocols
	  and provides an openly redistributable reference
	  implementation of the major components of the Domain
	  Name System, including:

	    * a Domain Name System server (named)
	    * a Domain Name System resolver library
	    * tools for verifying the proper operation of the DNS
	      server

	  The BIND DNS Server is used on the vast majority of name
	  serving machines on the Internet, providing a robust and
	  stable architecture on top of which an organization's naming
	  architecture can be built. The resolver library included in
	  the BIND distribution provides the standard APIs for
	  translation between domain names and Internet addresses and is
	  intended to be linked with applications requiring name
	  service.

	  https://www.isc.org/bind/

if BR2_PACKAGE_BIND

config BR2_PACKAGE_BIND_SERVER
	bool "Install server components"
	help
	  Install server components (named, lwresd)

config BR2_PACKAGE_BIND_TOOLS
	bool "Install tools"
	help
	  Install tools (dig, host, nslookup, nsupdate)

endif

comment "bind needs a toolchain w/ NPTL, dynamic library, gcc >= 4.9"
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS \
		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
