config BR2_PACKAGE_NTP
	bool "ntp"
	depends on BR2_USE_MMU || BR2_TOOLCHAIN_HAS_THREADS
	select BR2_PACKAGE_LIBEVENT
	help
	  Network Time Protocol suite/programs.
	  Provides things like ntpd, ntpdate, ntpq, etc...

	  http://www.ntp.org/

if BR2_PACKAGE_NTP

config BR2_PACKAGE_NTP_SNTP
	bool "sntp"
	help
	  Simple network time protocol program (a replacement
	  for the ntpdate tool)

	  A script is installed as S48sntp which will retrieve and
	  step the time if there is a large difference before ntpd
	  takes over the necessary slew adjustments in S49ntp.

config BR2_PACKAGE_NTP_NTP_KEYGEN
	bool "ntp-keygen"
	help
	  Create a NTP host key

config BR2_PACKAGE_NTP_NTP_SHM_CLK
	bool "SHM clock support"
	help
	  Compile ntp with support for a SHM clock attached through
	  shared memory.

config BR2_PACKAGE_NTP_NTP_WAIT
	bool "ntp-wait"
	depends on BR2_PACKAGE_PERL
	help
	  ntp-wait waits until the locally running ntpd is in state 4
	  (synchronized). This could be useful at boot time, to delay
	  the boot sequence until after "ntpd -g" has set the time.

config BR2_PACKAGE_NTP_NTPD
	bool "ntpd"
	default y
	help
	  ntpd is the time synchronization daemon keeping your local
	  system date and time in sync and optionally serving time and
	  date information on the network via the NTP protocol.

config BR2_PACKAGE_NTP_NTPD_ATOM_PPS
	bool "PPS support"
	depends on BR2_PACKAGE_NTP_NTPD
	select BR2_PACKAGE_PPS_TOOLS
	help
	  Compile ntpd with the ability to use an ATOM PPS source.

config BR2_PACKAGE_NTP_NTPDATE
	bool "ntpdate"
	help
	  The ntpdate utility program is used to set the local date
	  and time from an NTP server given as an argument.

config BR2_PACKAGE_NTP_NTPDC
	bool "ntpdc"
	help
	  The ntpdc utility program is used to query an NTP daemon about
	  its current state and to request changes in that state.

config BR2_PACKAGE_NTP_NTPQ
	bool "ntpq"
	help
	  The ntpq utility program is used to query NTP servers
	  requesting information about current state and/or changes in
	  that state.

config BR2_PACKAGE_NTP_NTPSNMPD
	bool "ntpsnmpd"
	depends on BR2_USE_MMU # netsnmp fork()
	select BR2_PACKAGE_NETSNMP
	help
	  Install ntpsnmpd NTP SNMP MIB agent.

config BR2_PACKAGE_NTP_NTPTIME
	bool "ntptime"
	help
	  The ntptime utility program is used to read and set kernel
	  time variables.

config BR2_PACKAGE_NTP_NTPTRACE
	bool "ntptrace"
	depends on BR2_PACKAGE_PERL
	help
	  ntptrace is a perl script that uses the ntpq utility program
	  to follow the chain of NTP servers from a given host back to
	  the primary time source

config BR2_PACKAGE_NTP_TICKADJ
	bool "tickadj"
	help
	  set time-related kernel variables

endif
