Browse Source

Imported Upstream version 2.94

master
Bernd Zeimetz 10 years ago
parent
commit
b12f868ba8
51 changed files with 1776 additions and 1180 deletions
  1. +49
    -46
      INSTALL
  2. +58
    -51
      Makefile.am
  3. +144
    -143
      Makefile.in
  4. +11
    -0
      NEWS
  5. +0
    -18
      Tachometer.c
  6. +22
    -22
      ais_json.i
  7. +44
    -37
      configure
  8. +19
    -11
      configure.ac
  9. +1
    -1
      crc24q.c
  10. +1
    -1
      do-tests
  11. +16
    -12
      driver_evermore.c
  12. +74
    -2
      driver_garmin.c
  13. +17
    -154
      driver_italk.c
  14. +19
    -8
      driver_navcom.c
  15. +0
    -16
      driver_nmea.c
  16. +4
    -1
      driver_proto.c
  17. +9
    -52
      driver_sirf.c
  18. +5
    -104
      driver_superstar2.c
  19. +30
    -17
      driver_tsip.c
  20. +17
    -27
      driver_ubx.c
  21. +6
    -78
      driver_zodiac.c
  22. BIN
      gps/client.so
  23. +134
    -116
      gps/gps.py
  24. +101
    -0
      gps/misc.py
  25. +1
    -1
      gpscat
  26. +2
    -2
      gpsclient.c
  27. +2
    -0
      gpsd.c
  28. +4
    -5
      gpsd.h
  29. +3
    -4
      gpsd.h-tail
  30. +1
    -1
      gpsd_config.h
  31. +1
    -1
      gpsfake
  32. +1
    -1
      gpsprof
  33. +3
    -42
      isgps.c
  34. +10
    -8
      jsongen.py.in
  35. +3
    -5
      libgps.3
  36. +3
    -12
      libgps.xml
  37. +1
    -1
      libgps_core.c
  38. +3
    -5
      libgpsd.3
  39. +4
    -10
      libgpsd.xml
  40. +1
    -8
      libgpsd_core.c
  41. +0
    -18
      monitor_nmea.c
  42. +4
    -1
      packaging/gpsd.spec
  43. +3
    -0
      packaging/gpsd.spec.in
  44. +10
    -4
      regress-driver
  45. +1
    -1
      revision.h
  46. +21
    -8
      setup.py
  47. +170
    -111
      subframe.c
  48. +8
    -1
      test/packet.test.chk
  49. +5
    -6
      test_gpsmm.cpp
  50. +49
    -7
      test_packet.c
  51. +681
    -0
      xgps

+ 49
- 46
INSTALL View File

@@ -7,32 +7,36 @@ have additional prerequisites.
Necessary components for any build:

C compiler -> gpsd and client library are written in C
Python -> some code is generated from python scripts
Python GTK-2 binding -> the main test client, xgps, needs this

The code depends on one non-C99 feature: anonymous unions. We could
The C code depends on one non-C99 feature: anonymous unions. We could
eliminate these, but the cost would be source-level interface breakage
if we have to move structure members in and out of unions.

You will need Python 2.6 or 2.4+ & simplejson. The Python code in
GPSD is 2.4-compatible except that you need either the json library
module from 2.6 or the functionally equivalent simplejson backport.
Note that while Python is required to *build* GPSD (the build uses
some code generators in Python), it is not required to run the service
daemon. In particular, you can cross-compile onto an embeddeed system
without having to take Python with you.

Having the following optional components on your system will enable
various additional capabilities and extensions:

C++ compiler -> libgpsmm C++ wrapper for the library
pthreads library -> support for PPS timekeeping on serial GPSes
DBUS -> gpsd will issue DBUS notifications
X windows -> two test clients depend on this
ncurses -> two more test clients depend on this
X windows -> one test client depends on this
ncurses -> a test client and the GPS monitor depend on this
libusb-1.0.x or later -> better USB device discovery
Qt + qmake -> libQgpsmm depends on this

Python 2.6 or 2.4+ & simplejson. The Python code in GPSD is
2.4-compatible except that you need either the json library module
from 2.6 or the functionally equivalent simplejson backport. Note
that while Python is required to *build* GPSD (the build uses some code
generators in Python), it is not required to *run* GPSD.

For building from the source tree, the following are necessary:
autoconf 2.61 or later
automake 1.10 or later
libtool 2.26 or later
Python -> code is generated from python scripts
If you have libusb-1.0.0 or later, the GPSD build will autodetect
this and use it to discover Garmin USB GPSes, rather than groveling
through /proc/bus/usb/devices (which has been deprecated by the
Linux kernel team).

For working with DBUS, you'll need the DBUS development
headers and libraries installed. Under Debian/Ubuntu these
@@ -52,6 +56,12 @@ be able to tell from configure messages which extensions you will get.
Under Ubuntu and most other Debian-derived, an easy way to pick up
the prerequisites is: "apt-get build-dep gpsd"

If you are going to modify the build, you will need these:

autoconf 2.61 or later
automake 1.10 or later
libtool 2.26 or later

Once you have fetched the software prerequisites:

1. Start by making sure you can get data from your GPS, otherwise the later
@@ -98,62 +108,55 @@ the permission-setting part; the hotplug scripts will force the
permissions for you. You still have to make sure all the tty devices
are in the same group.

3. Build gpsd from source (skip this step if you have installed a gpsd
binary package).

You will need to have either Motif or LessTif installed in order for
xgps and xgpsspeed to build; if you don't, you'll get some error
resembling "Xm/Xm.h: No such file or directory". If you're on a Linux
system, you may already have LessTif. Source code is available
from <http://www.lesstif.org/>.
3. Install prerequisites

Under Ubuntu, you will require libxp-dev and libxaw7-dev
in addition to the standard build-support packages. You can get
all the build prerequisites intalled with "apt-get build-dep gpsd".

To build from source, run ./autogen.sh (or sh autogen.sh if the
script does not have execute permission). Mac OS X users may
need to do "./autogen.sh --x-includes=/usr/X11R6/include"
all the build prerequisites installed with "apt-get build-dep gpsd".

Note: if you are going to use the RTCM-104 support, you should compile
with gcc4; if you don't have it installed as your default
compiler, do this by specifying CC=gcc4 before the autogen.sh
compiler, do this by specifying CC=gcc4 before the configure
command. The rtcm2.c file confuses the gcc-3.4.[23] optimizer
at -O2 level, making it generate incorrect code.

Then run make: libgps.so, gpsd, xgps, and xgpsspeed will be
built. Copy the app-defaults files xgps.ad and xgpsspeed.ad to your
4. Build gpsd from source (skip this step if you have installed GPSD
from a binary package). As usual, the sequence is:

./configure && make

Mac OS X users may need to do "./configure --x-includes=/usr/X11R6/include"

Optionally, copy the app-defaults files xgpsspeed.ad to your
home directory or to the system-wide X app-defaults directory.

4. Start gpsd. You'll need to give it as an argument a path to
5. Start gpsd. You'll need to give it as an argument a path to
a serial or USB port with a GPS attached to it.

5. Once gpsd is running, telnet to port 2947. You should see a
6. Once gpsd is running, telnet to port 2947. You should see a
greeting line that's a JSON object describing GPSD's version.
Now plug in your GPS (or AIS receiver, or RTCM2 receiver).

6. Type '?WATCH={"enable":true,"json":true,"raw":1};' to start raw and
watcher modes. You should see NMEA data (text lines beginning with $)
spewing out (if you have a non-NMEA device you may see long strings of
hex instead). You will also see lines beginning with '{' that are
7. Type '?WATCH={"enable":true,"json"};' to start raw and
watcher modes. You should see lines beginning with '{' that are
JSON objects representing reports from your GPS; these are packet
translations in GPSD protocol.

7. Start the xgps client. Calling it with no arguments should do the right
8. Start the xgps client. Calling it with no arguments should do the right
thing. You should see a GUI panel with position/velocity-time information,
and a satellite display. The displays won't look very interesting until
the GPS acquires satellite lock.

8. Now that you've verified that the code is working, "make install"
9. Now that you've verified that the code is working, "make install"
will install it it in the system directories. "make uninstall" will
undo this.

(You won't need to "make install" if you installed from a binary package.)

9. To enable hotplugging of USB GPSes under Linux, do a 'make udev-install' or
equivalent to put the appropriate udev rules and wrapper files in plases.
10. To enable hotplugging of USB GPSes under Linux, do a 'make udev-install' or
equivalent to put the appropriate udev rules and wrapper files in place.

10. Check out the list of supported hardware at
11. Check out the list of supported hardware at

http://gpsd.berlios.de/hardware.html

@@ -163,15 +166,15 @@ line to the table. Directions are included on that page.
We can also use updates of the latest version number known to work with
hardware already supported.

11. Note for small embedded systems and those without threading. It is
12. Note for small embedded systems and those without threading. It is
possible to build gpsd without thread support if you configure with
--disable-pps. You'll lose support for updating the clock from PPS pulses.

12. Note for systems using DBUS: gpsd includes support for shipping fixes
13. Note for systems using DBUS: gpsd includes support for shipping fixes
as DBUS notifications, but it is not compiled in by default. Configure
with the option "--enable-dbus" to get it working.

13. The distribution includes a PHP script that you can use to
14. The distribution includes a PHP script that you can use to
generate a PHP status page for your GPS. You will need php and php-gd
installed. To install it, copy the file 'gpsd.php' to your HTTP
document directory. The first time it's invoked, it will generate a
@@ -179,7 +182,7 @@ file called 'gpsd_config.inc' containing configuration information;
edit to taste. Note that for the Google Maps feature work you need
to set a valid Google API key in your config file.

14. libQgpsmm is a Qt version of the libgps/libgpsmm pair. Thanks to
15. libQgpsmm is a Qt version of the libgps/libgpsmm pair. Thanks to
the multi-platform approach of Qt, it allows the gpsd client library
to be available on all the Qt supported platforms. Please see
http://qt.nokia.com/doc/4.6/supported-platforms.html for a status of
@@ -205,7 +208,7 @@ Please refer to Qt's documentation at
http://qt.nokia.com/doc/4.6/platform-specific.html for platform specific
building documentation

15. There are regression tests to verify proper operation of gpsd, and
16. There are regression tests to verify proper operation of gpsd, and
it can be useful to run these to verify that all is well. To run the
regression tests, first build gpsd from sources, and then run "make
check". It is not necessary to install first, but you do need


+ 58
- 51
Makefile.am View File

@@ -57,7 +57,7 @@ endif
endif
endif

bin_PROGRAMS = $(MOTIF_PROGS) $(XAW_PROGS) $(RTCM104PROGS) $(CURSESPROGS) gpsctl gpspipe gpxlogger lcdgps
bin_PROGRAMS = $(XAW_PROGS) $(RTCM104PROGS) $(CURSESPROGS) gpsctl gpspipe gpxlogger lcdgps
sbin_PROGRAMS = gpsd

# \todo Add programs to TESTS if not already. used.
@@ -66,11 +66,13 @@ if LIBGPSMM_ENABLE
check_PROGRAMS += test_gpsmm
endif

PYTHONSCRIPTS_DIST = gpscat gpsfake gpsprof xgps
PYTHONMODULES_DIST = gps/__init__.py gps/misc.py gps/fake.py gps/gps.py

PYTHONPAGES_DIST = gpsprof.1 gpsfake.1 gpscat.1
if HAVE_PYTHON
python_PYTHON = gpscap.py
PYTHONPAGES = $(PYTHONPAGES_DIST)
export PYTHON
endif

#
@@ -96,20 +98,20 @@ cgps_LDADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(NCURSES_LIBS) libgps.la -l
# Build gpxlogger
#
gpxlogger_SOURCES = gpxlogger.c
gpxlogger_LDADD = $(DBUS_GLIB_LIBS) libgps.la -lm
gpxlogger_LDADD = $(DBUS_GLIB_LIBS) libgps.la -lm

#
# Build gpsd
#
gpsd_c_sources = gpsd_dbus.c gpsd.c
gpsd_SOURCES = $(gpsd_c_sources) gpsd_dbus.h
gpsd_LDADD = $(DBUS_LIBS) $(LIBM) libgps.la -lm $(LIBPTHREAD) $(LIBUSB)
gpsd_LDADD = $(DBUS_LIBS) $(LIBM) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build gpsctl
#
gpsctl_SOURCES = gpsctl.c
gpsctl_LDADD = $(LIBM) libgps.la -lm $(LIBPTHREAD)
gpsctl_LDADD = $(LIBM) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build gpspipe
@@ -129,50 +131,52 @@ lcdgps_LDADD = $(LIBM) libgps.la -lm
gpsmon_SOURCES = gpsmon.c monitor_nmea.c monitor_sirf.c \
monitor_italk.c monitor_ubx.c monitor_superstar2.c \
monitor_oncore.c monitor_tnt.c
gpsmon_LDADD = $(LIBM) $(NCURSES_LIBS) libgps.la -lm $(LIBPTHREAD)
gpsmon_LDADD = $(LIBM) $(NCURSES_LIBS) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build gpsdecode
#
gpsdecode_SOURCES = gpsdecode.c
gpsdecode_LDADD = $(LIBM) libgps.la -lm $(LIBPTHREAD)
gpsdecode_LDADD = $(LIBM) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build shared libraries
#
libgps_la_LDFLAGS = -version-number 19:0:0
lib_LTLIBRARIES = libgps.la
lib_LTLIBRARIES = libgps.la libgpsd.la

libgpsd_c_sources = \
libgps_c_sources = \
ais_json.c \
bits.c \
bsd-base64.c \
crc24q.c \
gpsd_report.c \
gpsutils.c \
geoid.c \
gpsd_json.c \
gpsdclient.c \
gps_maskdump.c \
hex.c \
isgps.c \
json.c \
libgps_core.c \
libgps_json.c \
gpsdclient.c \
libgpsd_core.c \
gps_maskdump.c \
netlib.c \
rtcm2_json.c \
shared_json.c \
strl.c

libgpsd_c_sources = \
bits.c \
bsd-base64.c \
crc24q.c \
gpsd_json.c \
isgps.c \
gpsd_maskdump.c \
libgpsd_core.c \
net_dgpsip.c \
net_gnss_dispatch.c \
net_ntrip.c \
netlib.c \
ntpshm.c \
packet.c \
pseudonmea.c \
serial.c \
rtcm2_json.c \
srecord.c \
shared_json.c \
strl.c \
subframe.c \
drivers.c \
driver_aivdm.c \
@@ -233,7 +237,9 @@ gpsd_maskdump.c: gpsd.h-tail maskaudit.py
$(PYTHON) maskaudit.py -d >gpsd_maskdump.c && \
chmod a-w gpsd_maskdump.c

libgps_la_SOURCES = $(libgpsd_c_sources) $(libgpsd_h_sources) \
libgps_la_SOURCES = $(libgps_c_sources)

libgpsd_la_SOURCES = $(libgpsd_c_sources) $(libgpsd_h_sources) \
driver_rtcm2.h packet_states.h

# Warning: This overrides autoconf's normal link-line generation process
@@ -244,18 +250,16 @@ else
libgps_la_LINK = /bin/sh ./libtool --tag=CC --mode=link gcc $(libgps_la_LDFLAGS) -o $@
endif

nodist_libgps_la_SOURCES = packet_names.h ais_json.i
nodist_libgpsd_la_SOURCES = packet_names.h ais_json.i
libgps_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD)
libgpsd_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD)

#
# Build Python binding
#
if HAVE_PYTHON
PYEXTENSIONS = gpspacket.so gpslib.so
# Having gpspacket.so gpslib.so in noinst_SCRIPTS forces copies to be dropped
# under gps. This is important, otherwise gpsfake will fail before
# make install.
noinst_SCRIPTS = gpspacket.so gpslib.so setup.py
noinst_SCRIPTS = stamp-python-modules setup.py

# Multiple-outputs hack. See
# http://www.gnu.org/software/automake/manual/automake.html#Multiple-Outputs
@@ -269,10 +273,13 @@ stamp-python-modules: gpspacket.c gpsclient.c libgps.la setup.py
(cd '$(srcdir)' && \
env abs_builddir='$(abs_builddir)' \
MAKE='$(MAKE)' \
$(PYTHON) setup.py build_ext \
--build-lib '$(srcdir)' \
--include-dirs '$(srcdir):.'\
$(PYTHON) setup.py build \
--build-lib '$(srcdir)/$(PYTHON_DISTUTILS_LIBDIR)' \
--build-scripts '$(srcdir)/$(PYTHON_DISTUTILS_SCRIPTDIR)' \
--mangenerator '$(MANGENERATOR)') && \
(cd '$(srcdir)/gps' && \
rm -f *.so && \
ln -s ../$(PYTHON_DISTUTILS_LIBDIR)/gps/*.so . ) && \
mv -f '$@.tmp' '$@'
CLEANFILES += stamp-python-modules stamp-python-modules.tmp

@@ -289,33 +296,33 @@ endif
# Build test_float
#
test_float_SOURCES = test_float.c
test_float_LDADD = $(LIBC) libgps.la -lm
test_float_LDADD = $(LIBC) -lm

#
# Build test_trig
#
test_trig_SOURCES = test_trig.c
test_trig_LDADD = $(LIBC) libgps.la -lm
test_trig_LDADD = $(LIBC) -lm

if LIBGPSMM_ENABLE
#
# Build test_gpsmm
#
test_gpsmm_SOURCES = test_gpsmm.cpp
test_gpsmm_LDADD = $(LIBC) libgps.la -lm
test_gpsmm_LDADD = $(LIBC) libgps.la -lm $(LIBUSB)
endif

#
# Build test_bits tester
#
test_bits_SOURCES = test_bits.c
test_bits_LDADD = $(LIBC) libgps.la
test_bits_LDADD = $(LIBC) libgpsd.la libgps.la $(LIBUSB)

#
# Build packets tester
#
test_packet_SOURCES = test_packet.c
test_packet_LDADD = $(LIBC) libgps.la -lm
test_packet_LDADD = $(LIBC) libgpsd.la libgps.la -lm $(LIBUSB)

#
# Build geoid model tester
@@ -468,10 +475,8 @@ EXTRA_DIST = \
packaging/etc_init.d_gpsd_rpm \
do-tests \
regress-driver \
gps/__init__.py \
gps/client.so \
gps/fake.py \
gps/gps.py \
$(PYTHONSCRIPTS_DIST) \
$(PYTHONMODULES_DIST) \
test

#dist-hook:
@@ -490,10 +495,10 @@ libgps: libgps_core.c gps.h .libs/libgps.a
$(CC) $(CFLAGS) -o libgps -lm -DTESTMAIN $(LIBPTHREAD) -g libgps_core.c .libs/libgps.a

# Report splint warnings
SPLINTOPTS = -I/usr/include/dbus-1.0/ +quiet
SPLINTOPTS = -I/usr/include/dbus-1.0/ $(INCUSB) +quiet
splint: gpsd.h packet_names.h
@echo "Running splint on daemon and libraries..."
-splint $(SPLINTOPTS) -exportlocal -redef $(gpsd_c_sources) $(libgpsd_c_sources)
-splint $(SPLINTOPTS) -exportlocal -redef $(gpsd_c_sources) $(libgpsd_c_sources) $(libgps_c_sources)
@echo "Running splint on cgps..."
-splint $(SPLINTOPTS) -exportlocal $(cgps_SOURCES)
@echo "Running splint on xgpsspeed..."
@@ -525,7 +530,7 @@ cppcheck: gpsd.h packet_names.h

# Re-indent the codebase in aa uniform style for readability.
# FIXME: Except for xgpsspeed - Tachometer.c makes GNI indent lose it.
INDENT_FILES = $(gpsd_c_sources) $(libgpsd_c_sources) \
INDENT_FILES = $(gpsd_c_sources) $(libgpsd_c_sources) $(libgps_c_sources) \
$(cgps_SOURCES) $(gpsmon_SOURCES) $(gpspipe_SOURCES) \
$(gpxlogger_SOURCES) $(gpsdecode_SOURCES) \
$(test_bits_SOURCES) $(test_packet_SOURCES) \
@@ -576,19 +581,21 @@ version:
# depends on each TEST as well as invokes it (with TESTS_ENVIRONMENT)
# the entire list of tests is run twice.

run_regress_driver = PYTHON=$(PYTHON) $(srcdir)/regress-driver

# Regression-test the daemon
gps-regress: gpsd
$(srcdir)/regress-driver $(srcdir)/test/daemon/*.log
$(run_regress_driver) $(srcdir)/test/daemon/*.log

# Test that super-raw mode works. Compare each logfile against itself
# dumped through the daemon running in R=2 mode. (This test is not
# included in the normal regressions.)
raw-regress:
$(srcdir)/regress-driver -r $(srcdir)/test/daemon/*.log
$(run_regress_driver) -r $(srcdir)/test/daemon/*.log

# Build the regression tests for the daemon.
gps-makeregress: gpsd
$(srcdir)/regress-driver -b $(srcdir)/test/daemon/*.log
$(run_regress_driver) -b $(srcdir)/test/daemon/*.log

# To build an individual test for a load named foo.log, put it in
# test/daemon and do this:
@@ -661,12 +668,12 @@ time-regress: test_mkgmtime
# Regression test the unpacking code in libgps
unpack-regress: libgps
@echo "Testing the client-library sentence decoder..."
$(srcdir)/regress-driver -c $(srcdir)/test/clientlib/*.log
$(run_regress_driver) -c $(srcdir)/test/clientlib/*.log

# Build the regression test for the sentence unpacker
unpack-makeregress: libgps
@echo "Rebuilding the client sentence-unpacker tests..."
$(srcdir)/regress-driver -c -b $(srcdir)/test/clientlib/*.log
$(run_regress_driver) -c -b $(srcdir)/test/clientlib/*.log

# Unit-test the JSON parsing
json-regress: test_json
@@ -682,7 +689,7 @@ testregress: gps-regress rtcm-regress aivdm-regress packet-regress time-regress

# do-tests is a shell script that invokes make with target testregress.
# This works around automake's lack of support for make targets as tests.
TESTS_ENVIRONMENT = MAKE=$(MAKE)
TESTS_ENVIRONMENT = MAKE=$(MAKE) PYTHON=$(PYTHON)
TESTS = do-tests

# The website directory
@@ -706,7 +713,7 @@ www/AIVDM.html: www/AIVDM.txt
asciidoc -a toc -o www/AIVDM.html www/AIVDM.txt

www/NMEA.html: www/NMEA.txt
asciidoc -a toc -o www/NMEA.html NMEA.txt
asciidoc -a toc -o www/NMEA.html www/NMEA.txt

www/protocol-evolution.html: www/protocol-evolution.txt
asciidoc -a toc -o www/protocol-evolution.html www/protocol-evolution.txt
@@ -736,7 +743,7 @@ www/internals.html: $(shell ls doc/*.xml)

pydoc: www/pydoc/index.html

www/pydoc/index.html: gps gpsfake gpscat gpsprof
www/pydoc/index.html: gps gpsfake gpscat gpsprof stamp-python-modules
mkdir -p www/pydoc
epydoc -v -q --html --graph all -n GPSD gps gpsfake gpscat gpsprof -o www/pydoc

@@ -784,7 +791,7 @@ upload-ftp: dist
# It requires developer access verified via ssh.
#
release-tag:
git tag -s -m "Tagged for external release $(VERSION)" HEAD
git tag -s -m "Tagged for external release $(VERSION)" release-$(VERSION)
git push --tags

#


+ 144
- 143
Makefile.in View File

@@ -62,14 +62,12 @@ subdir = .
DIST_COMMON = README $(am__configure_deps) $(am__include_HEADERS_DIST) \
$(am__python_PYTHON_DIST) $(noinst_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gpscat.in $(srcdir)/gpsd_config.h.in \
$(srcdir)/gpsfake.in $(srcdir)/gpsprof.in \
$(srcdir)/jsongen.py.in $(srcdir)/libgps.pc.in \
$(srcdir)/libgpsd.pc.in $(srcdir)/maskaudit.py.in \
$(srcdir)/valgrind-audit.in $(top_srcdir)/configure \
$(top_srcdir)/packaging/gpsd.spec.in AUTHORS COPYING INSTALL \
NEWS TODO config.guess config.sub depcomp install-sh ltmain.sh \
missing py-compile
$(srcdir)/gpsd_config.h.in $(srcdir)/jsongen.py.in \
$(srcdir)/libgps.pc.in $(srcdir)/libgpsd.pc.in \
$(srcdir)/maskaudit.py.in $(srcdir)/valgrind-audit.in \
$(top_srcdir)/configure $(top_srcdir)/packaging/gpsd.spec.in \
AUTHORS COPYING INSTALL NEWS TODO config.guess config.sub \
depcomp install-sh ltmain.sh missing py-compile
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -79,7 +77,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = gpsd_config.h
CONFIG_CLEAN_FILES = packaging/gpsd.spec libgps.pc libgpsd.pc \
jsongen.py maskaudit.py gpscat gpsfake gpsprof valgrind-audit
jsongen.py maskaudit.py valgrind-audit
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
@@ -113,38 +111,33 @@ am__DEPENDENCIES_1 =
libgps_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am__libgps_la_SOURCES_DIST = ais_json.c bits.c bsd-base64.c crc24q.c \
gpsd_report.c gpsutils.c geoid.c gpsd_json.c hex.c isgps.c \
json.c libgps_core.c libgps_json.c gpsdclient.c libgpsd_core.c \
gps_maskdump.c gpsd_maskdump.c net_dgpsip.c \
net_gnss_dispatch.c net_ntrip.c netlib.c ntpshm.c packet.c \
pseudonmea.c serial.c rtcm2_json.c srecord.c shared_json.c \
strl.c subframe.c drivers.c driver_aivdm.c driver_evermore.c \
driver_garmin.c driver_garmin_txt.c driver_italk.c \
driver_navcom.c driver_nmea.c driver_oncore.c driver_rtcm2.c \
driver_rtcm3.c driver_sirf.c driver_superstar2.c driver_tsip.c \
driver_ubx.c driver_zodiac.c sockaddr.h bsd-base64.h \
timebase.h bits.h crc24q.h driver_rtcm2.h packet_states.h \
am__libgps_la_SOURCES_DIST = ais_json.c gpsd_report.c gpsutils.c \
geoid.c gpsdclient.c gps_maskdump.c hex.c json.c libgps_core.c \
libgps_json.c netlib.c rtcm2_json.c shared_json.c strl.c \
libgpsmm.cpp
am__objects_1 = ais_json.lo bits.lo bsd-base64.lo crc24q.lo \
gpsd_report.lo gpsutils.lo geoid.lo gpsd_json.lo hex.lo \
isgps.lo json.lo libgps_core.lo libgps_json.lo gpsdclient.lo \
libgpsd_core.lo gps_maskdump.lo gpsd_maskdump.lo net_dgpsip.lo \
net_gnss_dispatch.lo net_ntrip.lo netlib.lo ntpshm.lo \
packet.lo pseudonmea.lo serial.lo rtcm2_json.lo srecord.lo \
shared_json.lo strl.lo subframe.lo drivers.lo driver_aivdm.lo \
driver_evermore.lo driver_garmin.lo driver_garmin_txt.lo \
driver_italk.lo driver_navcom.lo driver_nmea.lo \
driver_oncore.lo driver_rtcm2.lo driver_rtcm3.lo \
driver_sirf.lo driver_superstar2.lo driver_tsip.lo \
driver_ubx.lo driver_zodiac.lo
am__objects_2 =
@LIBGPSMM_ENABLE_TRUE@am__objects_3 = libgpsmm.lo
am_libgps_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
$(am__objects_3)
nodist_libgps_la_OBJECTS =
libgps_la_OBJECTS = $(am_libgps_la_OBJECTS) \
$(nodist_libgps_la_OBJECTS)
am__objects_1 = ais_json.lo gpsd_report.lo gpsutils.lo geoid.lo \
gpsdclient.lo gps_maskdump.lo hex.lo json.lo libgps_core.lo \
libgps_json.lo netlib.lo rtcm2_json.lo shared_json.lo strl.lo
@LIBGPSMM_ENABLE_TRUE@am__objects_2 = libgpsmm.lo
am_libgps_la_OBJECTS = $(am__objects_1) $(am__objects_2)
libgps_la_OBJECTS = $(am_libgps_la_OBJECTS)
libgpsd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am__objects_3 = bits.lo bsd-base64.lo crc24q.lo gpsd_json.lo isgps.lo \
gpsd_maskdump.lo libgpsd_core.lo net_dgpsip.lo \
net_gnss_dispatch.lo net_ntrip.lo ntpshm.lo packet.lo \
pseudonmea.lo serial.lo srecord.lo subframe.lo drivers.lo \
driver_aivdm.lo driver_evermore.lo driver_garmin.lo \
driver_garmin_txt.lo driver_italk.lo driver_navcom.lo \
driver_nmea.lo driver_oncore.lo driver_rtcm2.lo \
driver_rtcm3.lo driver_sirf.lo driver_superstar2.lo \
driver_tsip.lo driver_ubx.lo driver_zodiac.lo
am__objects_4 =
am_libgpsd_la_OBJECTS = $(am__objects_3) $(am__objects_4)
nodist_libgpsd_la_OBJECTS =
libgpsd_la_OBJECTS = $(am_libgpsd_la_OBJECTS) \
$(nodist_libgpsd_la_OBJECTS)
@HAVE_XAW_TRUE@am__EXEEXT_1 = xgpsspeed$(EXEEXT)
@HAVE_AIVDM_TRUE@@HAVE_RTCM104V2_TRUE@@HAVE_RTCM104V3_TRUE@am__EXEEXT_2 = gpsdecode$(EXEEXT)
@HAVE_NCURSES_TRUE@am__EXEEXT_3 = cgps$(EXEEXT) gpsmon$(EXEEXT)
@@ -157,24 +150,26 @@ cgps_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) libgps.la $(am__DEPENDENCIES_1)
am_gpsctl_OBJECTS = gpsctl.$(OBJEXT)
gpsctl_OBJECTS = $(am_gpsctl_OBJECTS)
gpsctl_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la \
$(am__DEPENDENCIES_1)
am__objects_4 = gpsd_dbus.$(OBJEXT) gpsd.$(OBJEXT)
am_gpsd_OBJECTS = $(am__objects_4)
gpsctl_DEPENDENCIES = $(am__DEPENDENCIES_1) libgpsd.la libgps.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am__objects_5 = gpsd_dbus.$(OBJEXT) gpsd.$(OBJEXT)
am_gpsd_OBJECTS = $(am__objects_5)
gpsd_OBJECTS = $(am_gpsd_OBJECTS)
gpsd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
libgps.la $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
libgpsd.la libgps.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am_gpsdecode_OBJECTS = gpsdecode.$(OBJEXT)
gpsdecode_OBJECTS = $(am_gpsdecode_OBJECTS)
gpsdecode_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la \
$(am__DEPENDENCIES_1)
gpsdecode_DEPENDENCIES = $(am__DEPENDENCIES_1) libgpsd.la libgps.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_gpsmon_OBJECTS = gpsmon.$(OBJEXT) monitor_nmea.$(OBJEXT) \
monitor_sirf.$(OBJEXT) monitor_italk.$(OBJEXT) \
monitor_ubx.$(OBJEXT) monitor_superstar2.$(OBJEXT) \
monitor_oncore.$(OBJEXT) monitor_tnt.$(OBJEXT)
gpsmon_OBJECTS = $(am_gpsmon_OBJECTS)
gpsmon_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
libgps.la $(am__DEPENDENCIES_1)
libgpsd.la libgps.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am_gpspipe_OBJECTS = gpspipe.$(OBJEXT)
gpspipe_OBJECTS = $(am_gpspipe_OBJECTS)
gpspipe_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -187,10 +182,11 @@ lcdgps_OBJECTS = $(am_lcdgps_OBJECTS)
lcdgps_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
am_test_bits_OBJECTS = test_bits.$(OBJEXT)
test_bits_OBJECTS = $(am_test_bits_OBJECTS)
test_bits_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
test_bits_DEPENDENCIES = $(am__DEPENDENCIES_1) libgpsd.la libgps.la \
$(am__DEPENDENCIES_1)
am_test_float_OBJECTS = test_float.$(OBJEXT)
test_float_OBJECTS = $(am_test_float_OBJECTS)
test_float_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
test_float_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_test_geoid_OBJECTS = test_geoid.$(OBJEXT)
test_geoid_OBJECTS = $(am_test_geoid_OBJECTS)
test_geoid_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
@@ -198,7 +194,7 @@ am__test_gpsmm_SOURCES_DIST = test_gpsmm.cpp
@LIBGPSMM_ENABLE_TRUE@am_test_gpsmm_OBJECTS = test_gpsmm.$(OBJEXT)
test_gpsmm_OBJECTS = $(am_test_gpsmm_OBJECTS)
@LIBGPSMM_ENABLE_TRUE@test_gpsmm_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@LIBGPSMM_ENABLE_TRUE@ libgps.la
@LIBGPSMM_ENABLE_TRUE@ libgps.la $(am__DEPENDENCIES_1)
am_test_json_OBJECTS = test_json.$(OBJEXT)
test_json_OBJECTS = $(am_test_json_OBJECTS)
test_json_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
@@ -207,12 +203,13 @@ test_mkgmtime_OBJECTS = $(am_test_mkgmtime_OBJECTS)
test_mkgmtime_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
am_test_packet_OBJECTS = test_packet.$(OBJEXT)
test_packet_OBJECTS = $(am_test_packet_OBJECTS)
test_packet_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
test_packet_DEPENDENCIES = $(am__DEPENDENCIES_1) libgpsd.la libgps.la \
$(am__DEPENDENCIES_1)
am_test_trig_OBJECTS = test_trig.$(OBJEXT)
test_trig_OBJECTS = $(am_test_trig_OBJECTS)
test_trig_DEPENDENCIES = $(am__DEPENDENCIES_1) libgps.la
am__objects_5 = xgpsspeed.$(OBJEXT) Tachometer.$(OBJEXT)
am_xgpsspeed_OBJECTS = $(am__objects_5)
test_trig_DEPENDENCIES = $(am__DEPENDENCIES_1)
am__objects_6 = xgpsspeed.$(OBJEXT) Tachometer.$(OBJEXT)
am_xgpsspeed_OBJECTS = $(am__objects_6)
xgpsspeed_OBJECTS = $(am_xgpsspeed_OBJECTS)
xgpsspeed_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -242,22 +239,23 @@ CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libgps_la_SOURCES) $(nodist_libgps_la_SOURCES) \
SOURCES = $(libgps_la_SOURCES) $(libgpsd_la_SOURCES) \
$(nodist_libgpsd_la_SOURCES) $(cgps_SOURCES) $(gpsctl_SOURCES) \
$(gpsd_SOURCES) $(gpsdecode_SOURCES) $(gpsmon_SOURCES) \
$(gpspipe_SOURCES) $(gpxlogger_SOURCES) $(lcdgps_SOURCES) \
$(test_bits_SOURCES) $(test_float_SOURCES) \
$(test_geoid_SOURCES) $(test_gpsmm_SOURCES) \
$(test_json_SOURCES) $(test_mkgmtime_SOURCES) \
$(test_packet_SOURCES) $(test_trig_SOURCES) \
$(xgpsspeed_SOURCES)
DIST_SOURCES = $(am__libgps_la_SOURCES_DIST) $(libgpsd_la_SOURCES) \
$(cgps_SOURCES) $(gpsctl_SOURCES) $(gpsd_SOURCES) \
$(gpsdecode_SOURCES) $(gpsmon_SOURCES) $(gpspipe_SOURCES) \
$(gpxlogger_SOURCES) $(lcdgps_SOURCES) $(test_bits_SOURCES) \
$(test_float_SOURCES) $(test_geoid_SOURCES) \
$(test_gpsmm_SOURCES) $(test_json_SOURCES) \
$(am__test_gpsmm_SOURCES_DIST) $(test_json_SOURCES) \
$(test_mkgmtime_SOURCES) $(test_packet_SOURCES) \
$(test_trig_SOURCES) $(xgpsspeed_SOURCES)
DIST_SOURCES = $(am__libgps_la_SOURCES_DIST) $(cgps_SOURCES) \
$(gpsctl_SOURCES) $(gpsd_SOURCES) $(gpsdecode_SOURCES) \
$(gpsmon_SOURCES) $(gpspipe_SOURCES) $(gpxlogger_SOURCES) \
$(lcdgps_SOURCES) $(test_bits_SOURCES) $(test_float_SOURCES) \
$(test_geoid_SOURCES) $(am__test_gpsmm_SOURCES_DIST) \
$(test_json_SOURCES) $(test_mkgmtime_SOURCES) \
$(test_packet_SOURCES) $(test_trig_SOURCES) \
$(xgpsspeed_SOURCES)
am__python_PYTHON_DIST = gpscap.py
py_compile = $(top_srcdir)/py-compile
man1dir = $(mandir)/man1
@@ -360,6 +358,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PYTHON = @PYTHON@
PYTHON_CFLAGS = @PYTHON_CFLAGS@
PYTHON_DISTUTILS_LIBDIR = @PYTHON_DISTUTILS_LIBDIR@
PYTHON_DISTUTILS_SCRIPTDIR = @PYTHON_DISTUTILS_SCRIPTDIR@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_LIBS = @PYTHON_LIBS@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
@@ -484,6 +484,8 @@ INCLUDES = $(INCUSB) $(am__append_1)
RTCM104PAGES_DIST = gpsdecode.1
@HAVE_AIVDM_TRUE@@HAVE_RTCM104V2_TRUE@@HAVE_RTCM104V3_TRUE@RTCM104PROGS = gpsdecode
@HAVE_AIVDM_TRUE@@HAVE_RTCM104V2_TRUE@@HAVE_RTCM104V3_TRUE@RTCM104PAGES = $(RTCM104PAGES_DIST)
PYTHONSCRIPTS_DIST = gpscat gpsfake gpsprof xgps
PYTHONMODULES_DIST = gps/__init__.py gps/misc.py gps/fake.py gps/gps.py
PYTHONPAGES_DIST = gpsprof.1 gpsfake.1 gpscat.1
@HAVE_PYTHON_TRUE@python_PYTHON = gpscap.py
@HAVE_PYTHON_TRUE@PYTHONPAGES = $(PYTHONPAGES_DIST)
@@ -513,20 +515,20 @@ cgps_LDADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(NCURSES_LIBS) libgps.la -l
# Build gpxlogger
#
gpxlogger_SOURCES = gpxlogger.c
gpxlogger_LDADD = $(DBUS_GLIB_LIBS) libgps.la -lm
gpxlogger_LDADD = $(DBUS_GLIB_LIBS) libgps.la -lm

#
# Build gpsd
#
gpsd_c_sources = gpsd_dbus.c gpsd.c
gpsd_SOURCES = $(gpsd_c_sources) gpsd_dbus.h
gpsd_LDADD = $(DBUS_LIBS) $(LIBM) libgps.la -lm $(LIBPTHREAD) $(LIBUSB)
gpsd_LDADD = $(DBUS_LIBS) $(LIBM) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build gpsctl
#
gpsctl_SOURCES = gpsctl.c
gpsctl_LDADD = $(LIBM) libgps.la -lm $(LIBPTHREAD)
gpsctl_LDADD = $(LIBM) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build gpspipe
@@ -547,49 +549,51 @@ gpsmon_SOURCES = gpsmon.c monitor_nmea.c monitor_sirf.c \
monitor_italk.c monitor_ubx.c monitor_superstar2.c \
monitor_oncore.c monitor_tnt.c

gpsmon_LDADD = $(LIBM) $(NCURSES_LIBS) libgps.la -lm $(LIBPTHREAD)
gpsmon_LDADD = $(LIBM) $(NCURSES_LIBS) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build gpsdecode
#
gpsdecode_SOURCES = gpsdecode.c
gpsdecode_LDADD = $(LIBM) libgps.la -lm $(LIBPTHREAD)
gpsdecode_LDADD = $(LIBM) libgpsd.la libgps.la -lm $(LIBPTHREAD) $(LIBUSB)

#
# Build shared libraries
#
libgps_la_LDFLAGS = -version-number 19:0:0
lib_LTLIBRARIES = libgps.la
libgpsd_c_sources = \
lib_LTLIBRARIES = libgps.la libgpsd.la
libgps_c_sources = \
ais_json.c \
bits.c \
bsd-base64.c \
crc24q.c \
gpsd_report.c \
gpsutils.c \
geoid.c \
gpsd_json.c \
gpsdclient.c \
gps_maskdump.c \
hex.c \
isgps.c \
json.c \
libgps_core.c \
libgps_json.c \
gpsdclient.c \
libgpsd_core.c \
gps_maskdump.c \
netlib.c \
rtcm2_json.c \
shared_json.c \
strl.c

libgpsd_c_sources = \
bits.c \
bsd-base64.c \
crc24q.c \
gpsd_json.c \
isgps.c \
gpsd_maskdump.c \
libgpsd_core.c \
net_dgpsip.c \
net_gnss_dispatch.c \
net_ntrip.c \
netlib.c \
ntpshm.c \
packet.c \
pseudonmea.c \
serial.c \
rtcm2_json.c \
srecord.c \
shared_json.c \
strl.c \
subframe.c \
drivers.c \
driver_aivdm.c \
@@ -616,51 +620,51 @@ libgpsd_h_sources = \
crc24q.h

BUILT_SOURCES = packet_names.h gpsd.h revision.h ais_json.i gps_maskdump.c gpsd_maskdump.c
libgps_la_SOURCES = $(libgpsd_c_sources) $(libgpsd_h_sources) \
driver_rtcm2.h packet_states.h $(am__append_3)
libgps_la_SOURCES = $(libgps_c_sources) $(am__append_3)
libgpsd_la_SOURCES = $(libgpsd_c_sources) $(libgpsd_h_sources) \
driver_rtcm2.h packet_states.h

@LIBGPSMM_ENABLE_FALSE@libgps_la_LINK = /bin/sh ./libtool --tag=CC --mode=link gcc $(libgps_la_LDFLAGS) -o $@
@LIBGPSMM_ENABLE_TRUE@libgps_la_LINK = /bin/sh ./libtool --tag=CXX --mode=link g++ $(libgps_la_LDFLAGS) -o $@
nodist_libgps_la_SOURCES = packet_names.h ais_json.i
nodist_libgpsd_la_SOURCES = packet_names.h ais_json.i
libgps_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD)
libgpsd_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD)

#
# Build Python binding
#
@HAVE_PYTHON_TRUE@PYEXTENSIONS = gpspacket.so gpslib.so
# Having gpspacket.so gpslib.so in noinst_SCRIPTS forces copies to be dropped
# under gps. This is important, otherwise gpsfake will fail before
# make install.
@HAVE_PYTHON_TRUE@noinst_SCRIPTS = gpspacket.so gpslib.so setup.py
@HAVE_PYTHON_TRUE@noinst_SCRIPTS = stamp-python-modules setup.py

#
# Build test_float
#
test_float_SOURCES = test_float.c
test_float_LDADD = $(LIBC) libgps.la -lm
test_float_LDADD = $(LIBC) -lm

#
# Build test_trig
#
test_trig_SOURCES = test_trig.c
test_trig_LDADD = $(LIBC) libgps.la -lm
test_trig_LDADD = $(LIBC) -lm

#
# Build test_gpsmm
#
@LIBGPSMM_ENABLE_TRUE@test_gpsmm_SOURCES = test_gpsmm.cpp
@LIBGPSMM_ENABLE_TRUE@test_gpsmm_LDADD = $(LIBC) libgps.la -lm
@LIBGPSMM_ENABLE_TRUE@test_gpsmm_LDADD = $(LIBC) libgps.la -lm $(LIBUSB)

#
# Build test_bits tester
#
test_bits_SOURCES = test_bits.c
test_bits_LDADD = $(LIBC) libgps.la
test_bits_LDADD = $(LIBC) libgpsd.la libgps.la $(LIBUSB)

#
# Build packets tester
#
test_packet_SOURCES = test_packet.c
test_packet_LDADD = $(LIBC) libgps.la -lm
test_packet_LDADD = $(LIBC) libgpsd.la libgps.la -lm $(LIBUSB)

#
# Build geoid model tester
@@ -784,21 +788,19 @@ EXTRA_DIST = \
packaging/etc_init.d_gpsd_rpm \
do-tests \
regress-driver \
gps/__init__.py \
gps/client.so \
gps/fake.py \
gps/gps.py \
$(PYTHONSCRIPTS_DIST) \
$(PYTHONMODULES_DIST) \
test

pkgconfig_DATA = libgps.pc libgpsd.pc
pkgconfigdir = $(libdir)/pkgconfig

# Report splint warnings
SPLINTOPTS = -I/usr/include/dbus-1.0/ +quiet
SPLINTOPTS = -I/usr/include/dbus-1.0/ $(INCUSB) +quiet

# Re-indent the codebase in aa uniform style for readability.
# FIXME: Except for xgpsspeed - Tachometer.c makes GNI indent lose it.
INDENT_FILES = $(gpsd_c_sources) $(libgpsd_c_sources) \
INDENT_FILES = $(gpsd_c_sources) $(libgpsd_c_sources) $(libgps_c_sources) \
$(cgps_SOURCES) $(gpsmon_SOURCES) $(gpspipe_SOURCES) \
$(gpxlogger_SOURCES) $(gpsdecode_SOURCES) \
$(test_bits_SOURCES) $(test_packet_SOURCES) \
@@ -817,9 +819,31 @@ INDENT_OPTIONS = --indent-level4 \
--dont-format-comments


#
# Regression tests begin here
#
# Note that the *-makeregress targets re-create the *.log.chk source
# files from the *.log source files.
#
# These require gcc4; use of the math coprocessor's on-board trig functions
# apparently increases the accuracy of computation in a way that affects
# the low-order digits of the track field in the O response.

# Our regression tests are make targets, while automake expects
# programs. Thus, our approach is to construct the test
# infrastructure our way, with make targets, and to have one TEST from
# automake's viewpoint: a trivial shell script to invoke make with our
# top-level regression target.

# One might think that using TESTS_ENVIRONMENT=$(MAKE) would work
# around this, but because the generated rule (check-TESTS) both
# depends on each TEST as well as invokes it (with TESTS_ENVIRONMENT)
# the entire list of tests is run twice.
run_regress_driver = PYTHON=$(PYTHON) $(srcdir)/regress-driver

# do-tests is a shell script that invokes make with target testregress.
# This works around automake's lack of support for make targets as tests.
TESTS_ENVIRONMENT = MAKE=$(MAKE)
TESTS_ENVIRONMENT = MAKE=$(MAKE) PYTHON=$(PYTHON)
TESTS = do-tests
all: $(BUILT_SOURCES) gpsd_config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -887,12 +911,6 @@ jsongen.py: $(top_builddir)/config.status $(srcdir)/jsongen.py.in
cd $(top_builddir) && $(SHELL) ./config.status $@
maskaudit.py: $(top_builddir)/config.status $(srcdir)/maskaudit.py.in
cd $(top_builddir) && $(SHELL) ./config.status $@
gpscat: $(top_builddir)/config.status $(srcdir)/gpscat.in
cd $(top_builddir) && $(SHELL) ./config.status $@
gpsfake: $(top_builddir)/config.status $(srcdir)/gpsfake.in
cd $(top_builddir) && $(SHELL) ./config.status $@
gpsprof: $(top_builddir)/config.status $(srcdir)/gpsprof.in
cd $(top_builddir) && $(SHELL) ./config.status $@
valgrind-audit: $(top_builddir)/config.status $(srcdir)/valgrind-audit.in
cd $(top_builddir) && $(SHELL) ./config.status $@
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@@ -928,6 +946,8 @@ clean-libLTLIBRARIES:
done
libgps.la: $(libgps_la_OBJECTS) $(libgps_la_DEPENDENCIES)
$(libgps_la_LINK) -rpath $(libdir) $(libgps_la_OBJECTS) $(libgps_la_LIBADD) $(LIBS)
libgpsd.la: $(libgpsd_la_OBJECTS) $(libgpsd_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libgpsd_la_OBJECTS) $(libgpsd_la_LIBADD) $(LIBS)
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@@ -1915,7 +1935,6 @@ uninstall-man: uninstall-man1 uninstall-man3 uninstall-man5 \
uninstall-pkgconfigDATA uninstall-pythonPYTHON \
uninstall-sbinPROGRAMS

@HAVE_PYTHON_TRUE@export PYTHON

packet_names.h: packet_states.h
rm -f packet_names.h && \
@@ -1962,10 +1981,13 @@ gpsd_maskdump.c: gpsd.h-tail maskaudit.py
@HAVE_PYTHON_TRUE@ (cd '$(srcdir)' && \
@HAVE_PYTHON_TRUE@ env abs_builddir='$(abs_builddir)' \
@HAVE_PYTHON_TRUE@ MAKE='$(MAKE)' \
@HAVE_PYTHON_TRUE@ $(PYTHON) setup.py build_ext \
@HAVE_PYTHON_TRUE@ --build-lib '$(srcdir)' \
@HAVE_PYTHON_TRUE@ --include-dirs '$(srcdir):.'\
@HAVE_PYTHON_TRUE@ $(PYTHON) setup.py build \
@HAVE_PYTHON_TRUE@ --build-lib '$(srcdir)/$(PYTHON_DISTUTILS_LIBDIR)' \
@HAVE_PYTHON_TRUE@ --build-scripts '$(srcdir)/$(PYTHON_DISTUTILS_SCRIPTDIR)' \
@HAVE_PYTHON_TRUE@ --mangenerator '$(MANGENERATOR)') && \
@HAVE_PYTHON_TRUE@ (cd '$(srcdir)/gps' && \
@HAVE_PYTHON_TRUE@ rm -f *.so && \
@HAVE_PYTHON_TRUE@ ln -s ../$(PYTHON_DISTUTILS_LIBDIR)/gps/*.so . ) && \
@HAVE_PYTHON_TRUE@ mv -f '$@.tmp' '$@'

# Clean up after Python
@@ -2002,7 +2024,7 @@ libgps: libgps_core.c gps.h .libs/libgps.a
$(CC) $(CFLAGS) -o libgps -lm -DTESTMAIN $(LIBPTHREAD) -g libgps_core.c .libs/libgps.a
splint: gpsd.h packet_names.h
@echo "Running splint on daemon and libraries..."
-splint $(SPLINTOPTS) -exportlocal -redef $(gpsd_c_sources) $(libgpsd_c_sources)
-splint $(SPLINTOPTS) -exportlocal -redef $(gpsd_c_sources) $(libgpsd_c_sources) $(libgps_c_sources)
@echo "Running splint on cgps..."
-splint $(SPLINTOPTS) -exportlocal $(cgps_SOURCES)
@echo "Running splint on xgpsspeed..."
@@ -2045,40 +2067,19 @@ indent:
version:
@echo $(VERSION)

#
# Regression tests begin here
#
# Note that the *-makeregress targets re-create the *.log.chk source
# files from the *.log source files.
#
# These require gcc4; use of the math coprocessor's on-board trig functions
# apparently increases the accuracy of computation in a way that affects
# the low-order digits of the track field in the O response.

# Our regression tests are make targets, while automake expects
# programs. Thus, our approach is to construct the test
# infrastructure our way, with make targets, and to have one TEST from
# automake's viewpoint: a trivial shell script to invoke make with our
# top-level regression target.

# One might think that using TESTS_ENVIRONMENT=$(MAKE) would work
# around this, but because the generated rule (check-TESTS) both
# depends on each TEST as well as invokes it (with TESTS_ENVIRONMENT)
# the entire list of tests is run twice.

# Regression-test the daemon
gps-regress: gpsd
$(srcdir)/regress-driver $(srcdir)/test/daemon/*.log
$(run_regress_driver) $(srcdir)/test/daemon/*.log

# Test that super-raw mode works. Compare each logfile against itself
# dumped through the daemon running in R=2 mode. (This test is not
# included in the normal regressions.)
raw-regress:
$(srcdir)/regress-driver -r $(srcdir)/test/daemon/*.log
$(run_regress_driver) -r $(srcdir)/test/daemon/*.log

# Build the regression tests for the daemon.
gps-makeregress: gpsd
$(srcdir)/regress-driver -b $(srcdir)/test/daemon/*.log
$(run_regress_driver) -b $(srcdir)/test/daemon/*.log

# To build an individual test for a load named foo.log, put it in
# test/daemon and do this:
@@ -2151,12 +2152,12 @@ time-regress: test_mkgmtime
# Regression test the unpacking code in libgps
unpack-regress: libgps
@echo "Testing the client-library sentence decoder..."
$(srcdir)/regress-driver -c $(srcdir)/test/clientlib/*.log
$(run_regress_driver) -c $(srcdir)/test/clientlib/*.log

# Build the regression test for the sentence unpacker
unpack-makeregress: libgps
@echo "Rebuilding the client sentence-unpacker tests..."
$(srcdir)/regress-driver -c -b $(srcdir)/test/clientlib/*.log
$(run_regress_driver) -c -b $(srcdir)/test/clientlib/*.log

# Unit-test the JSON parsing
json-regress: test_json
@@ -2191,7 +2192,7 @@ www/AIVDM.html: www/AIVDM.txt
asciidoc -a toc -o www/AIVDM.html www/AIVDM.txt

www/NMEA.html: www/NMEA.txt
asciidoc -a toc -o www/NMEA.html NMEA.txt
asciidoc -a toc -o www/NMEA.html www/NMEA.txt

www/protocol-evolution.html: www/protocol-evolution.txt
asciidoc -a toc -o www/protocol-evolution.html www/protocol-evolution.txt
@@ -2221,7 +2222,7 @@ www/internals.html: $(shell ls doc/*.xml)

pydoc: www/pydoc/index.html

www/pydoc/index.html: gps gpsfake gpscat gpsprof
www/pydoc/index.html: gps gpsfake gpscat gpsprof stamp-python-modules
mkdir -p www/pydoc
epydoc -v -q --html --graph all -n GPSD gps gpsfake gpscat gpsprof -o www/pydoc

@@ -2269,7 +2270,7 @@ upload-ftp: dist
# It requires developer access verified via ssh.
#
release-tag:
git tag -s -m "Tagged for external release $(VERSION)" HEAD
git tag -s -m "Tagged for external release $(VERSION)" release-$(VERSION)
git push --tags

#


+ 11
- 0
NEWS View File

@@ -1,3 +1,14 @@
* Sun Apr 20 2010 Eric S. Raymond <esr@snark.thyrsus.com> - 2.94
Error-checking in the 50bps subframe code has been greatly improved.
The Garmin GPS driver can now use libusb, if it is present, to do
device discovery. The libgps library has been split apart; the
service functions used by the daemon now live in libgpsd. This
will shave some code volume from GPSD client applications. A packaging
error that resulted in xgps not being shipped in 2.93 has been
corrected. We now have stronger checking for valid ephemeris before
extracting the leap-second offset; they should prevent many cases
where gpsd migh previously have used an invalid leap-second offset.

* Fri Apr 16 2010 Eric S. Raymond <esr@snark.thyrsus.com> - 2.93
Support for JSON dumping and parsing of AIS message types 25 and 26,
not yet observed in the wild on AISHub. Fix Debian bug #569703. by


+ 0
- 18
Tachometer.c View File

@@ -76,24 +76,6 @@ static StringRec char_data[] = {
{12, 5},
{2, 5},
{2, -5}}}};
#if 0
{{{{ {2, -5}}},
{ 5, /* "%" */
{{17, -5},
{20, -5},
{20, -2},
{17, -2},
{17, -5}}},
{ 2,
{{27, -5},
{17, 5}}},
{5,
{{24, 2},
{27, 2},
{27, 5},
{24, 5},
{24, 2}}}};
#endif
/*@ -initallelements @*/
/*@ -charint @*/



+ 22
- 22
ais_json.i View File

@@ -31,7 +31,7 @@
.dflt.boolean = false},
{"radio", t_uinteger, .addr.uinteger = &ais->type1.radio,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

char timestamp[JSON_VAL_MAX+1];
@@ -51,7 +51,7 @@
.dflt.boolean = false},
{"radio", t_uinteger, .addr.uinteger = &ais->type4.radio,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

char eta[JSON_VAL_MAX+1];
@@ -85,7 +85,7 @@
.len = sizeof(ais->type5.destination)},
{"dte", t_uinteger, .addr.uinteger = &ais->type5.dte,
.dflt.uinteger = 1},
{NULL},
{NULL}
};

char data[JSON_VAL_MAX+1];
@@ -101,7 +101,7 @@
.dflt.uinteger = 0},
{"data", t_string, .addr.string = data,
.len = sizeof(data)},
{NULL},
{NULL}
};

const struct json_attr_t json_ais7[] = {
@@ -114,7 +114,7 @@
.dflt.uinteger = 0},
{"mmsi4", t_uinteger, .addr.uinteger = &ais->type7.mmsi4,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais8[] = {
@@ -123,7 +123,7 @@
.dflt.uinteger = 0},
{"data", t_string, .addr.string = data,
.len = sizeof(data)},
{NULL},
{NULL}
};

const struct json_attr_t json_ais9[] = {
@@ -150,14 +150,14 @@
.dflt.boolean = false},
{"radio", t_uinteger, .addr.uinteger = &ais->type9.radio,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais10[] = {
AIS_HEADER,
{"dest_mmsi", t_uinteger, .addr.uinteger = &ais->type10.dest_mmsi,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais12[] = {
@@ -170,14 +170,14 @@
.dflt.boolean = 0},
{"text", t_string, .addr.string = ais->type12.text,
.len = sizeof(ais->type12.text)},
{NULL},
{NULL}
};

const struct json_attr_t json_ais14[] = {
AIS_HEADER,
{"text", t_string, .addr.string = ais->type14.text,
.len = sizeof(ais->type14.text)},
{NULL},
{NULL}
};

const struct json_attr_t json_ais15[] = {
@@ -198,7 +198,7 @@
.dflt.uinteger = 0},
{"offset2_1", t_uinteger, .addr.uinteger = &ais->type15.offset2_1,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais16[] = {
@@ -215,7 +215,7 @@
.dflt.uinteger = 0},
{"increment2", t_uinteger, .addr.uinteger = &ais->type16.increment2,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais17[] = {
@@ -226,7 +226,7 @@
.dflt.integer = AIS_GNS_LAT_NOT_AVAILABLE},
{"data", t_string, .addr.string = data,
.len = sizeof(data)},
{NULL},
{NULL}
};

const struct json_attr_t json_ais18[] = {
@@ -263,7 +263,7 @@
.dflt.boolean = false},
{"radio", t_uinteger, .addr.uinteger = &ais->type18.radio,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais19[] = {
@@ -306,7 +306,7 @@
.dflt.uinteger = 1},
{"assigned", t_boolean, .addr.boolean = &ais->type19.assigned,
.dflt.boolean = false},
{NULL},
{NULL}
};

const struct json_attr_t json_ais20[] = {
@@ -343,7 +343,7 @@
.dflt.uinteger = 0},
{"increment4", t_uinteger, .addr.uinteger = &ais->type20.increment4,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais21[] = {
@@ -378,7 +378,7 @@
.dflt.boolean = false},
{"virtual_aid", t_boolean, .addr.boolean = &ais->type21.virtual_aid,
.dflt.boolean = false},
{NULL},
{NULL}
};

const struct json_attr_t json_ais22[] = {
@@ -411,7 +411,7 @@
.dflt.boolean = false},
{"zonesize", t_uinteger, .addr.uinteger = &ais->type22.zonesize,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais23[] = {
@@ -434,7 +434,7 @@
.dflt.uinteger = 0},
{"quiet", t_uinteger, .addr.uinteger = &ais->type23.quiet,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais24[] = {
@@ -457,7 +457,7 @@
.dflt.uinteger = 0},
{"to_starboard", t_uinteger, .addr.uinteger = &ais->type24.dim.to_starboard,
.dflt.uinteger = 0},
{NULL},
{NULL}
};

const struct json_attr_t json_ais25[] = {
@@ -472,7 +472,7 @@
.dflt.uinteger = 0},
{"data", t_string, .addr.string = data,
.len = sizeof(data)},
{NULL},
{NULL}
};

const struct json_attr_t json_ais26[] = {
@@ -489,7 +489,7 @@
.len = sizeof(data)},
{"radio", t_uinteger, .addr.uinteger = &ais->type26.radio,
.dflt.uinteger = 0},
{NULL},
{NULL}
};




+ 44
- 37
configure View File

@@ -825,6 +825,8 @@ LN_S
HAVE_PYTHON_FALSE
HAVE_PYTHON_TRUE
PYTHON_LIBS
PYTHON_DISTUTILS_SCRIPTDIR
PYTHON_DISTUTILS_LIBDIR
PYTHON_CFLAGS
pkgpyexecdir
pyexecdir
@@ -1625,7 +1627,7 @@ Optional Features:
--disable-garmin disable Garmin kernel driver support
--enable-garmintxt enable Garmin Simple Text support
--enable-tnt disable True North Technologies support
--disble-oceanserver disable OceanServer support
--disable-oceanserver disable OceanServer support
--disable-ubx disable UBX Protocol support
--disable-evermore disable EverMore binary support
--disable-mtk3301 disable MTK-3301 support
@@ -3316,7 +3318,7 @@ fi

# Define the identity of the package.
PACKAGE=gpsd
VERSION=2.93
VERSION=2.94


cat >>confdefs.h <<_ACEOF
@@ -4646,7 +4648,7 @@ if test "${am_cv_pathless_PYTHON+set}" = set; then :
$as_echo_n "(cached) " >&6
else

for am_cv_pathless_PYTHON in python3.0 python2.6 python2.5 python2.4 python none; do
for am_cv_pathless_PYTHON in python2.6 python2.5 python2.4 python none; do
test "$am_cv_pathless_PYTHON" = none && break
prog="import sys
# split strings by '.' and convert to numeric. Append some zeros
@@ -4873,15 +4875,18 @@ fi
if test "x$ac_python" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Python version and location" >&5
$as_echo_n "checking Python version and location... " >&6; }
PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
PYTHON_VERSION_MAJOR=`$PYTHON -c "import sys; print '%d' % (sys.version_info[0]);"`
PYTHON_VERSION_MINOR=`$PYTHON -c "import sys; print '%d' % (sys.version_info[1]);"`
PYTHON_PREFIX=`$PYTHON -c "import sys; print(sys.prefix)"`
PYTHON_VERSION_MAJOR=`$PYTHON -c "import sys; print('%d' % (sys.version_info[0]));"`
PYTHON_VERSION_MINOR=`$PYTHON -c "import sys; print('%d' % (sys.version_info[1]));"`
PYTHON_VERSION="${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON, $PYTHON_VERSION, $PYTHON_PREFIX" >&5
$as_echo "$PYTHON, $PYTHON_VERSION, $PYTHON_PREFIX" >&6; }

PYTHON_CFLAGS="-DHAVE_PYTHON -I$PYTHON_PREFIX/include/python$PYTHON_VERSION"

PYTHON_DISTUTILS_LIBDIR=`$PYTHON -c 'import distutils.util; import sys; print ("build/lib.%s-%s" %(distutils.util.get_platform(), sys.version[0:3]))'`
PYTHON_DISTUTILS_SCRIPTDIR=`$PYTHON -c 'import sys; print ("build/scripts-%s" %(sys.version[0:3], ))'`

OLD_CPPFLAGS="$CPPFLAGS"
OLD_CXXFLAGS="$CXXFLAGS"
CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
@@ -5040,6 +5045,8 @@ done
if test "x$ac_python" = "xyes"; then




ac_python=no
for pylibpath in '/usr/lib' $PYTHON_PREFIX/lib $PYTHON_PREFIX/lib/python$PYTHON_VERSION/config; do
eval `echo unset ac_cv_lib_python$PYTHON_VERSION'___'Py_Finalize | tr '.' '_'`
@@ -5709,13 +5716,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:5712: $ac_compile\"" >&5)
(eval echo "\"\$as_me:5719: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
(eval echo "\"\$as_me:5715: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval echo "\"\$as_me:5722: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
(eval echo "\"\$as_me:5718: output\"" >&5)
(eval echo "\"\$as_me:5725: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6909,7 +6916,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
echo '#line 6912 "configure"' > conftest.$ac_ext
echo '#line 6919 "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -8167,11 +8174,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:8170: $lt_compile\"" >&5)
(eval echo "\"\$as_me:8177: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:8174: \$? = $ac_status" >&5
echo "$as_me:8181: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8506,11 +8513,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:8509: $lt_compile\"" >&5)
(eval echo "\"\$as_me:8516: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:8513: \$? = $ac_status" >&5
echo "$as_me:8520: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8611,11 +8618,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:8614: $lt_compile\"" >&5)
(eval echo "\"\$as_me:8621: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:8618: \$? = $ac_status" >&5
echo "$as_me:8625: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8666,11 +8673,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:8669: $lt_compile\"" >&5)
(eval echo "\"\$as_me:8676: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:8673: \$? = $ac_status" >&5
echo "$as_me:8680: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11049,7 +11056,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11052 "configure"
#line 11059 "configure"
#include "confdefs.h"

#if HAVE_DLFCN_H
@@ -11145,7 +11152,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11148 "configure"
#line 11155 "configure"
#include "confdefs.h"

#if HAVE_DLFCN_H
@@ -14031,11 +14038,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:14034: $lt_compile\"" >&5)
(eval echo "\"\$as_me:14041: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:14038: \$? = $ac_status" >&5
echo "$as_me:14045: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -14130,11 +14137,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:14133: $lt_compile\"" >&5)
(eval echo "\"\$as_me:14140: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:14137: \$? = $ac_status" >&5
echo "$as_me:14144: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14182,11 +14189,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:14185: $lt_compile\"" >&5)
(eval echo "\"\$as_me:14192: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:14189: \$? = $ac_status" >&5
echo "$as_me:14196: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -16639,9 +16646,11 @@ $as_echo "#define HAVE_LIBUSB /**/" >>confdefs.h

LIBUSB=-l${usb}
INCUSB=-I/usr/include/lib${usb}
ac_libusb=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found." >&5
$as_echo "found." >&6; }
else
ac_libusb=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found." >&5
$as_echo "not found." >&6; }
fi
@@ -16670,8 +16679,8 @@ done

if test x"$ac_cv_header_X11_xpm_h" = "xno" &&
test x"$ac_cv_header_xpm_h" = "xno"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xpm.h problem - xgps won't be built." >&5
$as_echo "$as_me: WARNING: xpm.h problem - xgps won't be built." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xpm.h problem - xgpsspeed won't be built." >&5
$as_echo "$as_me: WARNING: xpm.h problem - xgpsspeed won't be built." >&2;}
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
$as_echo_n "checking for X... " >&6; }
@@ -17598,8 +17607,8 @@ fi


if test x"$ac_cv_lib_Xext_XShapeQueryVersion" = "xno"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libXext problem - xgps won't be built." >&5
$as_echo "$as_me: WARNING: libXext problem - xgps won't be built." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libXext problem - xgpsspeed won't be built." >&5
$as_echo "$as_me: WARNING: libXext problem - xgpsspeed won't be built." >&2;}
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmCreatePixmapFromXpmImage in -lXpm" >&5
$as_echo_n "checking for XpmCreatePixmapFromXpmImage in -lXpm... " >&6; }
@@ -17646,8 +17655,8 @@ fi


if test x"$ac_cv_lib_Xpm_XpmCreatePixmapFromXpmImage" = "xno"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libXpm problem - xgps won't be built." >&5
$as_echo "$as_me: WARNING: libXpm problem - xgps won't be built." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libXpm problem - xgpsspeed won't be built." >&5
$as_echo "$as_me: WARNING: libXpm problem - xgpsspeed won't be built." >&2;}
fi
else
if false; then
@@ -18884,6 +18893,7 @@ echo "Allow device reconfig : $ac_reconfigure"
echo "Allow control send : $ac_controlsend"
echo "Squelch logging/hexdump : $ac_squelch"
echo "Raw Measurements : $ac_raw"
echo "libusb device discovery : $ac_libusb"
echo " Client Features"
echo " ---------------"
echo "Old protocol in libgps : $ac_oldstyle"
@@ -18915,7 +18925,7 @@ if test "xdummy" = "xdummy" -a \
x"$ac_ubx" = "xno"; then
as_fn_error "Can't build gpsd with no protocols enabled" "$LINENO" 5
fi
ac_config_files="$ac_config_files Makefile packaging/gpsd.spec libgps.pc libgpsd.pc jsongen.py maskaudit.py gpscat gpsfake gpsprof valgrind-audit"
ac_config_files="$ac_config_files Makefile packaging/gpsd.spec libgps.pc libgpsd.pc jsongen.py maskaudit.py valgrind-audit"

ac_config_commands="$ac_config_commands default"

@@ -20054,9 +20064,6 @@ do
"libgpsd.pc") CONFIG_FILES="$CONFIG_FILES libgpsd.pc" ;;
"jsongen.py") CONFIG_FILES="$CONFIG_FILES jsongen.py" ;;
"maskaudit.py") CONFIG_FILES="$CONFIG_FILES maskaudit.py" ;;
"gpscat") CONFIG_FILES="$CONFIG_FILES gpscat" ;;
"gpsfake") CONFIG_FILES="$CONFIG_FILES gpsfake" ;;
"gpsprof") CONFIG_FILES="$CONFIG_FILES gpsprof" ;;
"valgrind-audit") CONFIG_FILES="$CONFIG_FILES valgrind-audit" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;

@@ -21540,7 +21547,7 @@ compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
_LT_EOF

;;
"default":C) chmod +x jsongen.py maskaudit.py gpscat gpsfake gpsprof valgrind-audit ;;
"default":C) chmod +x jsongen.py maskaudit.py gpscat gpsfake gpsprof xgps valgrind-audit ;;

esac
done # for ac_tag


+ 19
- 11
configure.ac View File

@@ -2,7 +2,7 @@ dnl This file is Copyright (c)2010 by the GPSD project
dnl BSD terms apply: see the file COPYING in the distribution root for details.

AC_INIT
AM_INIT_AUTOMAKE(gpsd, 2.93)
AM_INIT_AUTOMAKE(gpsd, 2.94)
dnl AC_PREFIX_PROGRAM(gcc)
AM_CONFIG_HEADER(gpsd_config.h)
AC_LANG([C])
@@ -31,7 +31,7 @@ ACREQUIRE_BUGFIX
dnl AM_PATH_PYTHON provided with automake can be too old. Look
dnl for newer python first, and include 2.6 on the list.
m4_define([_AM_PYTHON_INTERPRETER_LIST],
[python3.0 python2.6 python2.5 python2.4 python])
[python2.6 python2.5 python2.4 python])
AM_PATH_PYTHON([2.4])
ac_python=yes
if test "x$PYTHON" = "x"; then
@@ -45,14 +45,17 @@ fi

if test "x$ac_python" = "xyes"; then
AC_MSG_CHECKING(Python version and location)
PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
PYTHON_VERSION_MAJOR=[`$PYTHON -c "import sys; print '%d' % (sys.version_info[0]);"`]
PYTHON_VERSION_MINOR=[`$PYTHON -c "import sys; print '%d' % (sys.version_info[1]);"`]
PYTHON_PREFIX=`$PYTHON -c "import sys; print(sys.prefix)"`
PYTHON_VERSION_MAJOR=[`$PYTHON -c "import sys; print('%d' % (sys.version_info[0]));"`]
PYTHON_VERSION_MINOR=[`$PYTHON -c "import sys; print('%d' % (sys.version_info[1]));"`]
PYTHON_VERSION="${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}"
AC_MSG_RESULT([$PYTHON, $PYTHON_VERSION, $PYTHON_PREFIX])

PYTHON_CFLAGS="-DHAVE_PYTHON -I$PYTHON_PREFIX/include/python$PYTHON_VERSION"

PYTHON_DISTUTILS_LIBDIR=[`$PYTHON -c 'import distutils.util; import sys; print ("build/lib.%s-%s" %(distutils.util.get_platform(), sys.version[0:3]))'`]
PYTHON_DISTUTILS_SCRIPTDIR=[`$PYTHON -c 'import sys; print ("build/scripts-%s" %(sys.version[0:3], ))'`]

OLD_CPPFLAGS="$CPPFLAGS"
OLD_CXXFLAGS="$CXXFLAGS"
CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
@@ -66,6 +69,8 @@ if test "x$ac_python" = "xyes"; then

if test "x$ac_python" = "xyes"; then
AC_SUBST([PYTHON_CFLAGS])
AC_SUBST([PYTHON_DISTUTILS_LIBDIR])
AC_SUBST([PYTHON_DISTUTILS_SCRIPTDIR])

ac_python=no
for pylibpath in '/usr/lib' $PYTHON_PREFIX/lib $PYTHON_PREFIX/lib/python$PYTHON_VERSION/config; do
@@ -244,8 +249,10 @@ then
AC_DEFINE([HAVE_LIBUSB], [], [will link with -l$usb; ])
LIBUSB=-l${usb}
INCUSB=-I/usr/include/lib${usb}
ac_libusb=yes
AC_MSG_RESULT([found.])
else
ac_libusb=yes
AC_MSG_RESULT([not found.])
fi
AC_SUBST(LIBUSB)
@@ -282,7 +289,7 @@ if test x"$with_x" != "xno" -a x"$have_x" != "xdisabled"
AC_CHECK_HEADERS(X11/xpm.h xpm.h)
if test x"$ac_cv_header_X11_xpm_h" = "xno" &&
test x"$ac_cv_header_xpm_h" = "xno"; then
AC_MSG_WARN([xpm.h problem - xgps won't be built.])
AC_MSG_WARN([xpm.h problem - xgpsspeed won't be built.])
fi
AC_PATH_XTRA
if test x"$ac_cv_have_x" = "xno"; then
@@ -322,14 +329,14 @@ if test x"$with_x" != "xno" -a x"$have_x" != "xdisabled"
${X_PRE_LIBS} ${X11_LIBS})
AC_SUBST(XEXT_LIBS)
if test x"$ac_cv_lib_Xext_XShapeQueryVersion" = "xno"; then
AC_MSG_WARN([libXext problem - xgps won't be built.])
AC_MSG_WARN([libXext problem - xgpsspeed won't be built.])
fi
AC_CHECK_LIB(Xpm, XpmCreatePixmapFromXpmImage,
XPM_LIBS="-lXpm"
AC_DEFINE([HAVE_XPM],1,[Xpm available]),,${X_PRE_LIBS} ${X11_LIBS})
AC_SUBST(XPM_LIBS)
if test x"$ac_cv_lib_Xpm_XpmCreatePixmapFromXpmImage" = "xno"; then
AC_MSG_WARN([libXpm problem - xgps won't be built.])
AC_MSG_WARN([libXpm problem - xgpsspeed won't be built.])
fi
else
dnl X11 disabled
@@ -544,7 +551,7 @@ fi

dnl check for OceanServer support
AC_ARG_ENABLE(oceanserver,
AC_HELP_STRING([--disble-oceanserver],
AC_HELP_STRING([--disable-oceanserver],
[disable OceanServer support]),
[ac_oceanserver=$enableval], [ac_oceanserver=yes])
AC_MSG_CHECKING([for OceanServer support])
@@ -1082,6 +1089,7 @@ echo "Allow device reconfig : $ac_reconfigure"
echo "Allow control send : $ac_controlsend"
echo "Squelch logging/hexdump : $ac_squelch"
echo "Raw Measurements : $ac_raw"
echo "libusb device discovery : $ac_libusb"
echo " Client Features"
echo " ---------------"
echo "Old protocol in libgps : $ac_oldstyle"
@@ -1115,7 +1123,7 @@ if test "xdummy" = "xdummy" -a \
fi
AC_OUTPUT(Makefile packaging/gpsd.spec libgps.pc libgpsd.pc
jsongen.py maskaudit.py
gpscat gpsfake gpsprof valgrind-audit,
[chmod +x jsongen.py maskaudit.py gpscat gpsfake gpsprof valgrind-audit])
valgrind-audit,
[chmod +x jsongen.py maskaudit.py gpscat gpsfake gpsprof xgps valgrind-audit])
echo "Configure finished, type 'make' to build."


+ 1
- 1
crc24q.c View File

@@ -30,7 +30,7 @@

#include "crc24q.h"

#if 0
#ifdef REBUILD_CRC_TABLE
/*
* The crc24q code table below can be regenerated with the following code:
*/


+ 1
- 1
do-tests View File

@@ -1,3 +1,3 @@
#!/bin/sh

${MAKE} testregress
${MAKE} testregress PYTHON="$PYTHON"

+ 16
- 12
driver_evermore.c View File

@@ -183,11 +183,12 @@ gps_mask_t evermore_parse(struct gps_device_t * session, unsigned char *buf,

switch (type) {
case 0x02: /* Navigation Data Output */
session->context->gps_week = (unsigned short)getleuw(buf2, 2);
session->context->gps_tow = (double)getleul(buf2, 4) * 0.01;
/*@ ignore @*//*@ splint is confused @ */
session->newdata.time =
gpstime_to_unix((int)getleuw(buf2, 2),
getleul(buf2,
4) * 0.01) -
gpstime_to_unix(session->context->gps_week,
session->context->gps_tow) -
session->context->leap_seconds;
/*@ end @*/
ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation,
@@ -222,11 +223,12 @@ gps_mask_t evermore_parse(struct gps_device_t * session, unsigned char *buf,
return mask | CLEAR_IS | REPORT_IS;

case 0x04: /* DOP Data Output */
session->context->gps_week = (unsigned short)getleuw(buf2, 2);
session->context->gps_tow = (double)getleul(buf2, 4) * 0.01;
/*@ ignore @*//*@ splint is confused @ */
session->newdata.time =
gpstime_to_unix((int)getleuw(buf2, 2),
getleul(buf2,
4) * 0.01) -
gpstime_to_unix(session->context->gps_week,
session->context->gps_tow) -
session->context->leap_seconds;
/*@ end @*/
clear_dop(&session->gpsdata.dop);
@@ -265,11 +267,12 @@ gps_mask_t evermore_parse(struct gps_device_t * session, unsigned char *buf,
return mask;

case 0x06: /* Channel Status Output */
session->context->gps_week = (unsigned short)getleuw(buf2, 2);
session->context->gps_tow = (double)getleul(buf2, 4) * 0.01;
/*@ ignore @*//*@ splint is confused @ */
session->gpsdata.skyview_time =
gpstime_to_unix((int)getleuw(buf2, 2),
getleul(buf2,
4) * 0.01) -
gpstime_to_unix(session->context->gps_week,
session->context->gps_tow) -
session->context->leap_seconds;
/*@ end @*/
session->gpsdata.satellites_visible = (int)getub(buf2, 8);
@@ -324,11 +327,12 @@ gps_mask_t evermore_parse(struct gps_device_t * session, unsigned char *buf,
case 0x08: /* Measurement Data Output */
/* clock offset is a manufacturer diagnostic */
/* (int)getleuw(buf2, 8); clock offset, 29000..29850 ?? */
session->context->gps_week = (unsigned short)getleuw(buf2, 2);
session->context->gps_tow = (double)getleul(buf2, 4) * 0.01;
/*@ ignore @*//*@ splint is confused @ */
session->newdata.time =
gpstime_to_unix((int)getleuw(buf2, 2),
getleul(buf2,
4) * 0.01) -
gpstime_to_unix(session->context->gps_week,
session->context->gps_tow) -
session->context->leap_seconds;
/*@ end @*/
visible = (unsigned char)getub(buf2, 10);


+ 74
- 2
driver_garmin.c View File

@@ -101,6 +101,10 @@
#include <strings.h>
#endif

#if defined(HAVE_LIBUSB)
#include <libusb.h>
#endif

#include "gpsd.h"
#include "gps.h"

@@ -195,7 +199,7 @@ typedef struct
* 4 - 2D Diff
* 5 - 3D Diff
*/
double gps_tow; /* gps time os week (seconds) */
double gps_tow; /* gps time of week (seconds) */
double lat; /* ->latitude (radians) */
double lon; /* ->longitude (radians) */
float lon_vel; /* velocity east (meters/second) */
@@ -799,6 +803,69 @@ static void Build_Send_SER_Packet(struct gps_device_t *session,

}

#if defined(HAVE_LIBUSB) || defined(S_SPLINT_S)
/*
* is_usb_device() - is a specified device USB matching given vendor/product?
*
* BUG: Doesn't actually match against path yet. Must finish this function
* by querying /sys/dev/char, either directly or using libudev. Greg KH
* assures this is possible, though he is vague about how.
*
* libudev: http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/
*/
/*@-compdef -usedef@*/
static bool is_usb_device(const char *path UNUSED, int vendor, int product)
{
// discover devices
libusb_device **list;
ssize_t cnt;
ssize_t i = 0;
bool found = false;