comment "gpsd needs a toolchain w/ threads"
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS
	depends on !BR2_microblaze

config BR2_PACKAGE_GPSD
	bool "gpsd"
	# Uses fork()
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_THREADS
	# triggers gcc ice
	depends on !BR2_microblaze
	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"

menu "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 ""
	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 ""
	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
	string ""
	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
	string "compile with limited maximum 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
	string "compile with 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"

endmenu

menu "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
	# uClibc 0.9.31, used on AVR32, does not have the necessary
	# CAN definitions.
	depends on !BR2_avr32
	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

endmenu

endif
