Note: This page describes an obsolete version of GPSBabel that may substantially differ from the current or development version.

Building from source.

For operating systems where no binary is provided or if you want the latest development version, you will have to build it from source. The code should be compilable on any system with ISO C89 compilers, though we use a smattering of C99 like double slash comments. It's tested on Linux, Mac OS/X, and Windows cross compilers. Less frequently, someone will build on MSVC, FreeBSD, OpenBSD, Solaris, UnixWare, OpenServer, etc. It's also exercised on a variety of processors and compilers.

You can grab a release from the GPSBabel download page, but if you're going to be doing any development, you'll find that working from the GPSBabel SVN tree is easier.

For most cases, an anonymous checkout of the trunk is really all you need. That can be done easily with the single command:

svn checkout

In most cases, the code is as simple to build as running:

./configure && make

Expat is strongly recommended for source builds as it is required for reading all the XML formats such as GPX. Fedora users may need to 'yum install expat-devel'. Ubuntu users may need to 'apt-get install expat libexpat-dev'.

libusb is recommended for OS/X and Linux if you want to use a USB Garmin. Fedora users may need to 'yum install libusb-devel'. Ubuntu users may need to 'apt-get install libusb-dev'.

There are additional flags that can be passed to configure to customize your build of GPSBabel.

./configure --help

lists all the supported options, but of interest we have:

--disable-shapefile Excludes the shapefile support.

--disable-pdb Excludes the Palm database support and all formats that rely on it.

--disable-csv Excludes all support for our something-separated formats.

--disable-filters Excludes all filter support.

--enable-efence Activate debugging mode for gpsbabel-debug.

--with-doc=dir Specifies that the doc should be created and installed in dir.

--without-libusb Disables use of libusb, even it's it's available.

--with-zlib=(included)|system|no By default, we use our own version of zlib. If you specify system the system zlib is used. A value of no (or --without-zlib) disables zlib.