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
	select BR2_PACKAGE_GPSD_CLIENTS if !BR2_PACKAGE_GPSD_DAEMON \
				       && !BR2_PACKAGE_GPSD_PYTHON
	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.

	  https://gpsd.gitlab.io/gpsd

if BR2_PACKAGE_GPSD

config BR2_PACKAGE_GPSD_DAEMON
	bool "gpsd daemon"
	default y # legacy
	select BR2_PACKAGE_GPSD_CLIENTS
	help
	  Build and install the gpsd daemon itself

if BR2_PACKAGE_GPSD_DAEMON

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_PROFILING
	bool "profiling support"
	depends on BR2_TOOLCHAIN_USES_GLIBC
	depends on !BR2_aarch64
	# Needs glibc for ARC arc-2018.03-eng007+ for correct __mcount linking
	depends on !BR2_arc

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

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_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_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_GREIS
	bool "Greis"
	help
	  Greis support

config BR2_PACKAGE_GPSD_ISYNC
	bool "iSync"
	help
	  Spectratime iSync LNRClok/GRCLOK support

config BR2_PACKAGE_GPSD_ITRAX
	bool "iTrax"
	help
	  iTrax support

config BR2_PACKAGE_GPSD_NAVCOM
	bool "Navcom"
	help
	  Navcom binary 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_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_SKYTRAQ
	bool "Skytraq"
	help
	  Skytraq 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  # GPSD_DAEMON

config BR2_PACKAGE_GPSD_CLIENTS
	bool "gpsd clients"
	default y # legacy
	help
	  Build and install gspd client programs, like:
	    - gpsctl
	    - gpsdctl
	    - gpsdecode
	    - gpspipe
	    - ...

config BR2_PACKAGE_GPSD_PYTHON
	bool "build Python support and modules"
	depends on BR2_USE_WCHAR # python3
	select BR2_PACKAGE_PYTHON3
	help
	  Python libraries and tools for the gpsd service daemon
	  including gpsfake test harness.

comment "python support needs a toolchain w/ wchar"
	depends on !BR2_USE_WCHAR

endif
