gcc -o gps2udp.o -c -D_GNU_SOURCE -Wmissing-prototypes -Wextra -Wall -Wno-uninitialized -Wno-missing-field-initializers -Wcast-align -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type -pthread -Wmissing-declarations -O2 -pthread gps2udp.c
gpsd.c: In function 'ship_pps_drift_message':
gpsd.c:1680:57: warning: unused parameter 'session' [-Wunused-parameter]
gpsd.c:1681:28: warning: unused parameter 'td' [-Wunused-parameter]
gcc -o gpsmon -pthread gpsmon.o monitor_italk.o monitor_nmea.o monitor_oncore.o monitor_sirf.o monitor_superstar2.o monitor_tnt.o monitor_ubx.o monitor_garmin.o -L. -lrt -lgpsd -lgps -lncurses -lm
gpsmon.o: In function `gpsmon_hook':
gpsmon.c:(.text+0xdf0): undefined reference to `json_pps_read'
collect2: error: ld returned 1 exit status
scons: *** [gpsmon] Error 1
scons: building terminated because of errors.
This looks like a simple issue that gpsmon isn't guarding usage of json_pps_read cleanly but I could be mistaken.
Attached is a patch to address it.