comment "gpsd needs a toolchain w/ threads, dynamic library"
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

menuconfig BR2_PACKAGE_GPSD
	bool "gpsd"
	# Uses fork()
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_THREADS
	# Always tries to build a shared library
	depends on !BR2_STATIC_LIBS
	help
	  gpsd is a service daemon that monitors one or more GPSes or
	  AIS receivers attached to a host computer through serial or
	  USB ports, making all data on the location/course/velocity of
	  the sensors available to be queried on TCP port 2947 of the
	  host computer.

	  The D-Bus interface is included if dbus-glib is enabled.

	  http://www.catb.org/gpsd/

if BR2_PACKAGE_GPSD

config BR2_PACKAGE_GPSD_DEVICES
	string "Where to look for GPSes"
	default "/dev/ttyS1"

comment "Features"

config BR2_PACKAGE_GPSD_CLIENT_DEBUG
	bool "client debugging support"

config BR2_PACKAGE_GPSD_OLDSTYLE
	bool "oldstyle (pre-JSON) protocol support"

config BR2_PACKAGE_GPSD_PROFILING
	bool "profiling support"
	depends on BR2_TOOLCHAIN_USES_GLIBC
	depends on !BR2_aarch64

comment "profiling support not available with uClibc-based toolchain"
	depends on !BR2_TOOLCHAIN_USES_GLIBC

config BR2_PACKAGE_GPSD_NTP_SHM
	bool "NTP time hinting support"

config BR2_PACKAGE_GPSD_PPS
	bool "PPS time syncing support"
	select BR2_PACKAGE_GPSD_NTP_SHM

config BR2_PACKAGE_GPSD_USER
	bool "GPSD privilege revocation user"

config BR2_PACKAGE_GPSD_USER_VALUE
	string "user to run as"
	default "nobody"
	depends on BR2_PACKAGE_GPSD_USER

config BR2_PACKAGE_GPSD_GROUP
	bool "GPSD privilege revocation group"

config BR2_PACKAGE_GPSD_GROUP_VALUE
	string "group to run as"
	default "nobody"
	depends on BR2_PACKAGE_GPSD_GROUP

config BR2_PACKAGE_GPSD_FIXED_PORT_SPEED
	bool "compile with fixed serial port speed"

config BR2_PACKAGE_GPSD_FIXED_PORT_SPEED_VALUE
	int "serial port speed"
	default "9600"
	depends on BR2_PACKAGE_GPSD_FIXED_PORT_SPEED

config BR2_PACKAGE_GPSD_MAX_CLIENT
	bool "compile with limited maximum clients"

config BR2_PACKAGE_GPSD_MAX_CLIENT_VALUE
	int "maximum number of clients"
	default "10"
	depends on BR2_PACKAGE_GPSD_MAX_CLIENT

config BR2_PACKAGE_GPSD_MAX_DEV
	bool "compile with maximum allowed devices"

config BR2_PACKAGE_GPSD_MAX_DEV_VALUE
	int "maximum allowed devices"
	default "2"
	depends on BR2_PACKAGE_GPSD_MAX_DEV

config BR2_PACKAGE_GPSD_RECONFIGURE
	bool "allow gpsd to change device settings"
	default y

config BR2_PACKAGE_GPSD_CONTROLSEND
	bool "allow gpsctl/gpsmon to change device settings"
	default y

config BR2_PACKAGE_GPSD_SQUELCH
	bool "squelch gpsd_report and gpsd_hexdump to save cpu"

comment "Protocols"

config BR2_PACKAGE_GPSD_AIVDM
	bool "Aivdm"
	help
	  Aivdm support

config BR2_PACKAGE_GPSD_ASHTECH
	bool "Ashtech"
	help
	  Ashtech support

config BR2_PACKAGE_GPSD_EARTHMATE
	bool "Earthmate"
	help
	  DeLorme EarthMate Zodiac support

config BR2_PACKAGE_GPSD_EVERMORE
	bool "EverMore"
	help
	  EverMore binary support

config BR2_PACKAGE_GPSD_FURY
	bool "Fury"
	help
	  Jackson Labs Fury and Firefly support

config BR2_PACKAGE_GPSD_FV18
	bool "FV-18"
	help
	  San Jose Navigation FV-18 support

config BR2_PACKAGE_GPSD_GARMIN
	bool "Garmin (kernel)"
	help
	  Garmin kernel driver support

config BR2_PACKAGE_GPSD_GARMIN_SIMPLE_TXT
	bool "Garmin (simple text)"
	help
	  Garmin Simple Text support

config BR2_PACKAGE_GPSD_GEOSTAR
	bool "Geostar"
	help
	  Geostar Protocol support

config BR2_PACKAGE_GPSD_GPSCLOCK
	bool "GPSClock"
	help
	  GPSClock support

config BR2_PACKAGE_GPSD_ITRAX
	bool "iTrax"
	help
	  iTrax support

config BR2_PACKAGE_GPSD_MTK3301
	bool "MTK-3301"
	help
	  Mediatek MTK-3301 support

config BR2_PACKAGE_GPSD_NAVCOM
	bool "Navcom"
	help
	  Navcom binary support

config BR2_PACKAGE_GPSD_NMEA
	bool "NMEA"
	default y
	help
	  Generic NMEA support

config BR2_PACKAGE_GPSD_NMEA2000
	bool "NMEA2000"
	select BR2_PACKAGE_GPSD_NAVCOM
	select BR2_PACKAGE_GPSD_AIVDM
	help
	  NMEA2000/CAN support

config BR2_PACKAGE_GPSD_NTRIP
	bool "NTRIP"
	help
	  NTRIP support

config BR2_PACKAGE_GPSD_OCEANSERVER
	bool "OceanServer"
	help
	  OceanServer Digital Compass support

config BR2_PACKAGE_GPSD_ONCORE
	bool "OnCore"
	help
	  OnCore support

config BR2_PACKAGE_GPSD_RTCM104V2
	bool "RTCM104 v2"
	help
	  RTCM104 v2 support

config BR2_PACKAGE_GPSD_RTCM104V3
	bool "RTCM104 v3"
	help
	  RTCM104 v3 support

config BR2_PACKAGE_GPSD_SIRF
	bool "SiRF"
	help
	  SiRF binary support

config BR2_PACKAGE_GPSD_SUPERSTAR2
	bool "SuperStarII"
	help
	  Novatel SuperStarII binary support

config BR2_PACKAGE_GPSD_TRIMBLE_TSIP
	bool "Trimble TSIP"
	help
	  Trimble TSIP support

config BR2_PACKAGE_GPSD_TRIPMATE
	bool "TripMate"
	help
	  Delorme TripMate support

config BR2_PACKAGE_GPSD_TRUE_NORTH
	bool "True North Technologies"
	help
	  True North Technologies support

config BR2_PACKAGE_GPSD_UBX
	bool "UBX"
	help
	  uBlox UBX binary support

endif
