config BR2_PACKAGE_BANDWIDTHD
	bool "bandwidthd"
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_LIBPNG
	select BR2_PACKAGE_LIBPCAP
	select BR2_PACKAGE_GD
	help
	  BandwidthD - Bandwidth monitoring

	  Provides a method to measure the bandwidth that travels
	  through the machine, grouped by subnet and IP. This
	  information can be stored locally in /var/lib/bandwidthd and
	  can be configured to generate static HTML pages which can be
	  hosted by a web server.

	  It is highly recommended that the target has some way of
	  retaining the time between reboots. (e.g. NTP on boot or an
	  RTC)

	  It is suggested to use sqlite for logfile storage but works
	  fine without, and can be completely ignored if the
	  postgresql portion is used.

	  As upstream is no longer actively maintained, a fork is
	  available on github that works on making BandwidthD's build
	  process more compatible with buildroot's.

	  Upstream:
	  http://bandwidthd.sourceforge.net/
	  Github fork:
	  http://github.com/nroach44/bandwidthd

if BR2_PACKAGE_BANDWIDTHD

config BR2_PACKAGE_BANDWIDTHD_POSTGRESQL
	bool "enable postgresql log target support"
	depends on !BR2_STATIC_LIBS
	depends on BR2_USE_WCHAR # postgresql
	depends on !BR2_OPTIMIZE_FAST # postgresql
	select BR2_PACKAGE_POSTGRESQL
	help
	  Enable support for logging the bandwidthd data to a remote
	  (or local) postgresql server. This data can then be viewed
	  through a php site. See README in the source code
	  (github.com/nroach44/bandwidthd) for more information.

comment "postgresql support needs a toolchain w/ dynamic library, wchar"
	depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR

comment "postgresql support can't be built with Optimize for fast"
	depends on BR2_OPTIMIZE_FAST

config BR2_PACKAGE_BANDWIDTHD_SQLITE3
	bool "enable sqlite3 log storage"
	select BR2_PACKAGE_SQLITE
	help
	  Enable support for storing the aggregated data in an sqlite
	  db instead of a plain text file.

endif
