Navit on Windows is highly experimental at this moment (December 2007). This is a work in progress that will be documented. If you have made any progress with that, share with the others!
- 1 Compiling / debugging using CodeBlocks & mingw compiler
- 2 Compiling and running using cygwin
- 3 Compiling a native binary using mingw
Compiling / debugging using CodeBlocks & mingw compiler
Win32 builds are currently supported using the CodeBlocks/mingw development environment, in combination with the glade for win32 GTK devlopment toolkit. The CodeBlocks project files have been added to cvs repository.
In order to compile the win32 version of Navit, you need the following software devlopment tools:
- Glade/gtk+ toolkit for win32 from link Gtk+ 2.10.11
- ming compiler from mingw
- CodeBlocks IDE from CodeBlocks download page (select recent development snapshot)
Install the packages mentioned above. After everything has been installed:
- Start the CodeBlocks application
- Open the navit.workspace file (located in projs\CodeBlocks directory)
- Set the GTK_DIR enviroment variable in CodeBlocks (Setting/Environment, and select environments variables)
- the GTK_DIR should point to where you have installed the Glade/Gtk toolkit package (e.g. d:\gtk)
Now you should be able to build/debug the navit project
Running from debugger
In order to run navit from the CodeBlocks debugger, you have to:
- Copy the navit.xml file from the source directory into the projs\CodeBlocks directory
- Copy the xpm directory from the toplevel directory into the projs\CodeBlocks directory
- Modify the navit.xml to set the map (currently only OSM binary files are supported)
Currently NMEA serial GPS receiver devices (USB/Bluetooth) are supported by the win32 port of navit. You can configure the device by adapting the navit.xml file in the projs\CodeBlocks directory. For example, a serial device on Com4 can be configured as follows
<vehicle name="GPSOnCom4" enabled="yes" active="1" source="file:COM4 baud=115200 parity=N data=8 stop=1" color="#0000ff"/>
Compiling and running using cygwin
You will probably need the following packages from cygwin :
- gcc (g++ too for sdl)
Prepare the build
Edit configure.in and add the following to CFLAGS at line 10:
It should look like this :
CFLAGS="$CFLAGS -Wall -Wcast-align -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type -D_GNU_SOURCE -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include"
autogen.sh && ./configure
If you get :
checking for X... no
try adding the following parameters to ./configure :
Currently, building navit will fail at this point, because we haven't found an implementation of the wordexp function for cygwin.
Here's a message in that thread from an actual competent Cygwin user: http://email@example.com/msg16750.html
The implication of that is a "C library". A "C library" is an "implementation" of reusable code. It consists of a library file that contains the compiled object code and a header file with the matching declarations that goes along with it. The library is implemented as a static archive at build time and simply linked into the app binary. There's nothing to include in that case -- it's already in there.
Make a redistributable package
Please read and understand http://cygwin.com/licensing.html so that you don't infringe Cygwin's intellectual property rights (copyleft) when you distribute the package you've built.
Compiling a native binary using mingw
The main advantage of this method is that it will produce a redistributable binary.