summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre GRANDIN <pgrandin@users.noreply.github.com>2016-10-26 10:51:32 -0700
committerGitHub <noreply@github.com>2016-10-26 10:51:32 -0700
commit5fbef56af22f2a62229b919b484de421bc66aeef (patch)
treec25b82f906c5d49d6e1c688b5eb5e5bf4d174ddd
parentfd6ae907cb42161052993dd824cdc1ddec65a4e6 (diff)
parenta88b7545f8ff66e6c2c56fb0ff9df76cb01c89f1 (diff)
downloadnavit-5fbef56af22f2a62229b919b484de421bc66aeef.tar.gz
Merge pull request #119 from navit-gps/tomtom2
Tomtom2
-rw-r--r--Toolchain/arm-linux.cmake14
-rw-r--r--ci/build_tomtom_minimal.sh212
-rw-r--r--ci/build_tomtom_plugin.sh498
-rw-r--r--circle.yml3
-rw-r--r--config.h.cmake1
-rw-r--r--navit/xslt/tomtom.xslt62
6 files changed, 790 insertions, 0 deletions
diff --git a/Toolchain/arm-linux.cmake b/Toolchain/arm-linux.cmake
new file mode 100644
index 000000000..c85a8a6dc
--- /dev/null
+++ b/Toolchain/arm-linux.cmake
@@ -0,0 +1,14 @@
+set ( CMAKE_SYSTEM_NAME GNU )
+
+# specify the cross compiler
+find_program ( CMAKE_C_COMPILER NAMES arm-linux-gcc )
+find_program ( CMAKE_CXX_COMPILER NAMES arm-linux-g++ )
+
+set ( TOMTOM_SDK_DIR /opt/tomtom-sdk )
+set ( CMAKE_FIND_ROOT_PATH ${TOMTOM_SDK_DIR} )
+
+set ( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
+set ( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
+set ( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
+set ( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
+add_definitions(-D_GNU_SOURCE)
diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh
new file mode 100644
index 000000000..18ef4478f
--- /dev/null
+++ b/ci/build_tomtom_minimal.sh
@@ -0,0 +1,212 @@
+#!/bin/sh
+# this builds navit for tomtom
+# in case you want to build a plugin for tomtom use build_tomtom_plugin.sh instead
+# in case you want to build a standalone system
+# https://github.com/george-hopkins/opentom
+# https://github.com/gefin/opentom
+
+set -e
+
+export ARCH=arm-linux
+cp Toolchain/$ARCH.cmake /tmp
+
+# toolchain
+export TOMTOM_SDK_DIR=/opt/tomtom-sdk
+mkdir -p $TOMTOM_SDK_DIR >/dev/null 2>&1 || export TOMTOM_SDK_DIR=$HOME/tomtom-sdk
+export PREFIX=$TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/$ARCH/sys-root
+export PATH=$TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/bin:$PREFIX/bin/:$PATH
+export CFLAGS="-O2 -I$PREFIX/include -I$PREFIX/usr/include"
+export CPPFLAGS="-I$PREFIX/include -I$PREFIX/usr/include"
+export LDFLAGS="-L$PREFIX/lib -L$PREFIX/usr/lib"
+export CC=$ARCH-gcc
+export CXX=$ARCH-g++
+export LD=$ARCH-ld
+export NM="$ARCH-nm -B"
+export AR=$ARCH-ar
+export RANLIB=$ARCH-ranlib
+export STRIP=$ARCH-strip
+export OBJCOPY=$ARCH-objcopy
+export LN_S="ln -s"
+export PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig
+JOBS=`getconf _NPROCESSORS_ONLN`
+
+echo "Jobs"
+echo $JOBS
+
+mkdir -p ~/tomtom_assets
+
+if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ]
+ then
+ wget -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets
+fi
+
+# temporary ? unavailable
+# if ! test -f "~/tomtom_assets/libpng-1.6.25.tar.gz"
+# then
+# wget -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.25.tar.gz -P ~/tomtom_assets
+# fi
+
+# toolchain
+cd /tmp
+mkdir -p $TOMTOM_SDK_DIR
+tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -C $TOMTOM_SDK_DIR
+
+
+# zlib
+cd /tmp
+wget -c http://zlib.net/zlib-1.2.8.tar.gz
+tar xzf zlib-1.2.8.tar.gz
+cd zlib-1.2.8
+./configure --prefix=$PREFIX
+make -j$JOBS
+make install
+
+# libxml
+cd /tmp/
+wget -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz
+tar xzf libxml2-2.7.8.tar.gz
+cd libxml2-2.7.8/
+./configure --prefix=$PREFIX --host=$ARCH --without-python
+make -j$JOBS
+make install
+
+# libpng
+cd /tmp/
+tar xzf ~/tomtom_assets/libpng-1.6.25.tar.gz
+cd libpng-1.6.25/
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+
+cd /tmp
+wget -c http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz
+tar xzf freetype-2.5.0.tar.gz
+cd freetype-2.5.0
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+freetype-config --cflags
+
+# glib
+cd /tmp
+wget -c http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.17.tar.gz
+tar xzf glib-2.25.17.tar.gz
+cd glib-2.25.17
+cat > tomtom.cache << EOF
+glib_cv_long_long_format=ll
+glib_cv_stack_grows=no
+glib_cv_uscore=no
+ac_cv_func_posix_getgrgid_r=yes
+ac_cv_func_posix_getpwuid_r=yes
+EOF
+chmod a-w tomtom.cache
+./configure --prefix=$PREFIX --host=$ARCH --cache-file=tomtom.cache
+sed -i "s|cp xgen-gmc gmarshal.c |cp xgen-gmc gmarshal.c \&\& sed -i \"s\|g_value_get_schar\|g_value_get_char\|g\" gmarshal.c |g" gobject/Makefile
+make -j$JOBS
+make install
+
+
+# tslib
+cd /tmp
+rm -rf tslib-svn
+git clone https://github.com/playya/tslib-svn.git
+cd tslib-svn
+sed -i "s|AM_CONFIG_HEADER|AC_CONFIG_HEADERS|g" configure.ac
+sed -i "119i\#ifdef EVIOCGRAB" plugins/input-raw.c
+sed -i "124i\#endif" plugins/input-raw.c
+sed -i "290i\#ifdef EVIOCGRAB" plugins/input-raw.c
+sed -i "294i\#endif" plugins/input-raw.c
+sed -i "s|# module_raw h3600|module_raw h3600|g" etc/ts.conf # tomtom go 710
+./autogen.sh
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+
+cd /tmp
+wget -c http://www.libsdl.org/release/SDL-1.2.15.tar.gz
+tar xzf SDL-1.2.15.tar.gz
+cd SDL-1.2.15
+wget -c http://tracks.yaina.de/source/sdl-fbcon-notty.patch
+patch -p0 -i sdl-fbcon-notty.patch
+./configure --prefix=$PREFIX --host=$ARCH \
+ --disable-esd --disable-cdrom --disable-joystick --disable-video-x11 \
+ --disable-x11-vm --disable-dga --disable-video-x11-dgamouse \
+ --disable-video-x11-xv --disable-video-x11-xinerama --disable-video-directfb \
+ --enable-video-fbcon --disable-audio CFLAGS="$CFLAGS -DFBCON_NOTTY"
+make -j$JOBS
+make install
+
+# to find sdl-config
+export PATH=$PREFIX/bin:$PATH
+
+# sdl image
+cd /tmp
+wget -c http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz
+tar xzf SDL_image-1.2.12.tar.gz
+cd SDL_image-1.2.12
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+
+# in the end we only want Navit locale
+rm -r $PREFIX/share/locale
+
+
+# navit
+cd ~/navit
+sed -i "s|set ( TOMTOM_SDK_DIR /opt/tomtom-sdk )|set ( TOMTOM_SDK_DIR $TOMTOM_SDK_DIR )|g" /tmp/$ARCH.cmake
+mkdir -p build
+cd build
+cmake ../ -DCMAKE_INSTALL_PREFIX=$PREFIX -DFREETYPE_INCLUDE_DIRS=$PREFIX/include/freetype2/ -Dsupport/gettext_intl=TRUE \
+-DHAVE_API_TOMTOM=TRUE -DXSLTS=tomtom -DAVOID_FLOAT=TRUE -Dmap/mg=FALSE -DUSE_PLUGINS=0 -DCMAKE_TOOLCHAIN_FILE=/tmp/$ARCH.cmake \
+-DDISABLE_QT=ON -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n
+make -j$JOBS
+make install
+cd ..
+
+
+# creating directories
+OUT_PATH="/tmp/tomtom/sdcard"
+rm -rf $OUT_PATH
+mkdir -p $OUT_PATH
+cd $OUT_PATH
+mkdir -p navit
+cd navit
+mkdir -p bin share
+cd share
+mkdir -p fonts
+cd ..
+
+
+# navit executable
+cp $PREFIX/bin/navit bin/
+
+
+# fonts
+cp -r ~/navit/navit/fonts/*.ttf $OUT_PATH/navit/share/fonts
+
+# images and xml
+cd share
+mkdir xpm
+cd xpm
+cp $PREFIX/share/navit/xpm/*16.png ./
+cp $PREFIX/share/navit/xpm/*32.png ./
+cp $PREFIX/share/navit/xpm/*48.png ./
+cp $PREFIX/share/navit/xpm/*64.png ./
+cp $PREFIX/share/navit/xpm/nav*.* ./
+cp $PREFIX/share/navit/xpm/country*.png ./
+cd ..
+cp $PREFIX/share/navit/navit.xml ./tomtom480.xml
+mkdir -p maps
+
+
+# locale
+cp -r $PREFIX/share/locale ./
+
+
+cd $OUT_PATH
+zip -r $CIRCLE_ARTIFACTS/navitom_minimal.zip navit
diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh
new file mode 100644
index 000000000..93dcce3dd
--- /dev/null
+++ b/ci/build_tomtom_plugin.sh
@@ -0,0 +1,498 @@
+#!/bin/sh
+# this builds a plugin for tomtom
+# in case you want to build a standalone system
+# https://github.com/george-hopkins/opentom
+# https://github.com/gefin/opentom
+
+set -e
+
+export ARCH=arm-linux
+cp Toolchain/$ARCH.cmake /tmp
+
+# toolchain
+export TOMTOM_SDK_DIR=/opt/tomtom-sdk
+mkdir -p $TOMTOM_SDK_DIR >/dev/null 2>&1 || export TOMTOM_SDK_DIR=$HOME/tomtom-sdk
+export PREFIX=$TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/$ARCH/sys-root
+export PATH=$TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/bin:$PREFIX/bin/:$PATH
+export CFLAGS="-O2 -I$PREFIX/include -I$PREFIX/usr/include"
+export CPPFLAGS="-I$PREFIX/include -I$PREFIX/usr/include"
+export LDFLAGS="-L$PREFIX/lib -L$PREFIX/usr/lib"
+export CC=$ARCH-gcc
+export CXX=$ARCH-g++
+export LD=$ARCH-ld
+export NM="$ARCH-nm -B"
+export AR=$ARCH-ar
+export RANLIB=$ARCH-ranlib
+export STRIP=$ARCH-strip
+export OBJCOPY=$ARCH-objcopy
+export LN_S="ln -s"
+export PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig
+JOBS=`getconf _NPROCESSORS_ONLN`
+
+echo "Jobs"
+echo $JOBS
+
+mkdir -p ~/tomtom_assets
+
+if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ]
+ then
+ wget -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets
+fi
+
+if ! test -f "~/tomtom_assets/libpng-1.6.25.tar.gz"
+then
+ wget -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.25.tar.gz -P ~/tomtom_assets
+fi
+
+# toolchain
+cd /tmp
+mkdir -p $TOMTOM_SDK_DIR
+tar xzf ~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -C $TOMTOM_SDK_DIR
+
+# espeak
+cd /tmp
+# this one includes the precompiled voices
+wget -c http://freefr.dl.sourceforge.net/project/espeak/espeak/espeak-1.48/espeak-1.48.04-source.zip
+unzip espeak-1.48.04-source.zip
+cd espeak-1.48.04-source
+sed -i "s/PREFIX=\/usr//g" src/Makefile
+sed -i "s/DATADIR=\/usr\/share\/espeak-data/DATADIR=~\/share\/espeak-data/g" src/Makefile
+sed -i "s/AUDIO = portaudio/#AUDIO = portaudio/g" src/Makefile
+sed -i "s/-fvisibility=hidden//g" src/Makefile
+cat src/Makefile
+make -C src
+cd src
+make install
+
+# http://forum.navit-project.org/viewtopic.php?f=17&t=568
+cd /tmp
+cat > /tmp/espeakdsp.c << EOF
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/soundcard.h>
+#include <sys/wait.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+#define IBUFFERLEN 1024
+#define MAXARGC 30
+
+
+int main(int argc, char *argv[],char *envp[])
+{
+ int pipefd[2];
+ pid_t cpid;
+ char buf;
+ int co,wp,l,fh;
+ short bufi[IBUFFERLEN],bufo[IBUFFERLEN*2];
+ int rate=22050;
+
+ char *newargv[MAXARGC+2];
+
+ for(co=0;co<argc;co++)
+ {
+ if(co>=MAXARGC)break;
+ newargv[co]=argv[co];
+ }
+ newargv[co++]="--stdout";
+ newargv[co++]=NULL;
+
+ if (pipe(pipefd) == -1)
+ {
+ perror("pipe");
+ exit(EXIT_FAILURE);
+ }
+
+ if(setpriority(PRIO_PROCESS,0,-10))
+ perror ("setpriority");
+
+ cpid = fork();
+ if (cpid == -1)
+ {
+ perror("fork");
+ exit(EXIT_FAILURE);
+ }
+
+ if (cpid == 0)
+ { /* Child writes to pipe */
+
+ close(pipefd[0]); /* Close unused read end */
+ dup2(pipefd[1],1);
+ execve("/mnt/sdcard/navit/bin/espeak",newargv,envp);
+ perror("exec /mnt/sdcard/navit/bin/espeak");
+ close(pipefd[1]); /* Reader will see EOF */
+ wait(NULL); /* Wait for child */
+ exit(EXIT_SUCCESS);
+
+ } else { /* Parent read from pipe */
+
+ close(pipefd[1]); /* Close unused write end */
+
+ l=read(pipefd[0],bufi,64);
+ if(memcmp(bufi,"RIFF",4))
+ {
+ while(l>0)
+ {
+ write(1,bufi,l);
+ l=read(pipefd[0],bufi,IBUFFERLEN);
+ }
+ exit(EXIT_SUCCESS);
+ }
+ l=read(pipefd[0],bufi,IBUFFERLEN);
+ if(l<500)
+ {
+ printf("espeakdsp: avoid noise speaking a empty string\n");
+ exit(EXIT_SUCCESS);
+ }
+ usleep (50000);
+
+ fh=open("/dev/dsp",O_WRONLY);
+ if(fh<0)
+ {
+ perror("open /dev/dsp");
+ exit(EXIT_FAILURE);
+ }
+ ioctl(fh, SNDCTL_DSP_SPEED , &rate);
+ ioctl(fh, SNDCTL_DSP_SYNC, 0);
+ while(l)
+ {
+ for(co=0,wp=0;co<IBUFFERLEN;co++)
+ {
+ bufo[wp++]=bufi[co]; /* mono->stereo */
+ bufo[wp++]=bufi[co];
+ }
+ write (fh,bufo,wp);
+ l=read(pipefd[0],bufi,IBUFFERLEN);
+ }
+ ioctl(fh, SNDCTL_DSP_SYNC, 0);
+ close(pipefd[0]);
+ exit(EXIT_SUCCESS);
+ }
+}
+EOF
+arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include espeakdsp.c -o espeakdsp
+
+# zlib
+cd /tmp
+wget -c http://zlib.net/zlib-1.2.8.tar.gz
+tar xzf zlib-1.2.8.tar.gz
+cd zlib-1.2.8
+./configure --prefix=$PREFIX
+make -j$JOBS
+make install
+
+# libxml
+cd /tmp/
+wget -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz
+tar xzf libxml2-2.7.8.tar.gz
+cd libxml2-2.7.8/
+./configure --prefix=$PREFIX --host=$ARCH --without-python
+make -j$JOBS
+make install
+
+# libpng
+cd /tmp/
+tar xzf ~/tomtom_assets/libpng-1.6.25.tar.gz
+cd libpng-1.6.25/
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+
+cd /tmp
+wget -c http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.tar.gz
+tar xzf freetype-2.5.0.tar.gz
+cd freetype-2.5.0
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+freetype-config --cflags
+
+# glib
+cd /tmp
+wget -c http://ftp.gnome.org/pub/gnome/sources/glib/2.25/glib-2.25.17.tar.gz
+tar xzf glib-2.25.17.tar.gz
+cd glib-2.25.17
+cat > tomtom.cache << EOF
+glib_cv_long_long_format=ll
+glib_cv_stack_grows=no
+glib_cv_uscore=no
+ac_cv_func_posix_getgrgid_r=yes
+ac_cv_func_posix_getpwuid_r=yes
+EOF
+chmod a-w tomtom.cache
+./configure --prefix=$PREFIX --host=$ARCH --cache-file=tomtom.cache
+sed -i "s|cp xgen-gmc gmarshal.c |cp xgen-gmc gmarshal.c \&\& sed -i \"s\|g_value_get_schar\|g_value_get_char\|g\" gmarshal.c |g" gobject/Makefile
+make -j$JOBS
+make install
+
+
+# tslib
+cd /tmp
+rm -rf tslib-svn
+git clone https://github.com/playya/tslib-svn.git
+cd tslib-svn
+sed -i "s|AM_CONFIG_HEADER|AC_CONFIG_HEADERS|g" configure.ac
+sed -i "119i\#ifdef EVIOCGRAB" plugins/input-raw.c
+sed -i "124i\#endif" plugins/input-raw.c
+sed -i "290i\#ifdef EVIOCGRAB" plugins/input-raw.c
+sed -i "294i\#endif" plugins/input-raw.c
+sed -i "s|# module_raw h3600|module_raw h3600|g" etc/ts.conf # tomtom go 710
+./autogen.sh
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+
+cd /tmp
+wget -c http://www.libsdl.org/release/SDL-1.2.15.tar.gz
+tar xzf SDL-1.2.15.tar.gz
+cd SDL-1.2.15
+wget -c http://tracks.yaina.de/source/sdl-fbcon-notty.patch
+patch -p0 -i sdl-fbcon-notty.patch
+./configure --prefix=$PREFIX --host=$ARCH \
+ --disable-esd --disable-cdrom --disable-joystick --disable-video-x11 \
+ --disable-x11-vm --disable-dga --disable-video-x11-dgamouse \
+ --disable-video-x11-xv --disable-video-x11-xinerama --disable-video-directfb \
+ --enable-video-fbcon --disable-audio CFLAGS="$CFLAGS -DFBCON_NOTTY"
+make -j$JOBS
+make install
+
+# sdl test utilities
+cd test
+./configure --prefix=$PREFIX --host=$ARCH
+make testvidinfo
+cp testvidinfo $PREFIX/usr/bin/
+
+# to find sdl-config
+export PATH=$PREFIX/bin:$PATH
+
+# sdl image
+cd /tmp
+wget -c http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz
+tar xzf SDL_image-1.2.12.tar.gz
+cd SDL_image-1.2.12
+./configure --prefix=$PREFIX --host=$ARCH
+make -j$JOBS
+make install
+
+
+# in the end we only want Navit locale
+rm -r $PREFIX/share/locale
+
+cat > ~/navit/navit/xpm/tomtom_minus.svg << EOF
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="64px" height="64px" viewBox="-100 -100 200 200" xmlns="http://www.w3.org/2000/svg" version="1.1">
+<rect x="-110" y="-110" width="220" height="220" fill="#000080" stroke="none" opacity="0.5"/>
+<path fill="none" stroke="#ffffff" stroke-width="20" stroke-linecap="round" d="M 60 0 L -60 0"/>
+</svg>
+EOF
+
+cat > ~/navit/navit/xpm/tomtom_plus.svg << EOF
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="64px" height="64px" viewBox="-100 -100 200 200" xmlns="http://www.w3.org/2000/svg" version="1.1">
+<rect x="-110" y="-110" width="220" height="220" fill="#000080" stroke="none" opacity="0.5"/>
+<path fill="none" stroke="#ffffff" stroke-width="20" stroke-linecap="round" d="M 0 60 L 0 -60 M 60 0 L -60 0"/>
+</svg>
+EOF
+
+
+# navit
+cd ~/navit
+sed -i "s|set ( TOMTOM_SDK_DIR /opt/tomtom-sdk )|set ( TOMTOM_SDK_DIR $TOMTOM_SDK_DIR )|g" /tmp/$ARCH.cmake
+mkdir -p build
+cd build
+cmake ../ -DCMAKE_INSTALL_PREFIX=$PREFIX -DFREETYPE_INCLUDE_DIRS=$PREFIX/include/freetype2/ -Dsupport/gettext_intl=TRUE \
+-DHAVE_API_TOMTOM=TRUE -DXSLTS=tomtom -DAVOID_FLOAT=TRUE -Dmap/mg=FALSE -DUSE_PLUGINS=0 -DCMAKE_TOOLCHAIN_FILE=/tmp/$ARCH.cmake \
+-DDISABLE_QT=ON -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n
+make -j$JOBS
+make install
+cd ..
+
+
+# creating directories
+OUT_PATH="/tmp/tomtom/sdcard"
+rm -rf $OUT_PATH
+mkdir -p $OUT_PATH
+cd $OUT_PATH
+mkdir -p navit SDKRegistry
+cd navit
+mkdir -p bin lib share sdl ts
+cd share
+mkdir -p fonts
+cd ..
+
+
+cp $PREFIX/lib/libfreetype.so.6 lib
+cp $PREFIX/lib/libSDL-1.2.so.0 lib
+cp $PREFIX/lib/libSDL_image-1.2.so.0 lib
+cp $PREFIX/lib/libfreetype.so.6 lib
+cp $PREFIX/lib/libgio-2.0.so lib
+cp $PREFIX/lib/libglib-2.0.so lib/libglib-2.0.so.0
+cp $PREFIX/lib/libgmodule-2.0.so lib/libgmodule-2.0.so.0
+cp $PREFIX/lib/libgobject-2.0.so lib/libgobject-2.0.so.0
+cp $PREFIX/lib/libgthread-2.0.so lib/libgthread-2.0.so.0
+cp $PREFIX/lib/libpng16.so.16 lib
+cp $PREFIX/lib/libts-1.0.so.0 lib
+cp $PREFIX/lib/libxml2.so.2 lib
+cp $PREFIX/lib/libz.so.1 lib
+cp $PREFIX/etc/ts.conf ts
+cp $TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/$ARCH/lib/libstdc++.so.5 lib
+
+# flite
+# cp $PREFIX/bin/flite* bin/
+
+# SDL testvidinfo
+cp $PREFIX/usr/bin/testvidinfo sdl/
+
+# navit executable and wrapper
+cp $PREFIX/bin/navit bin/
+cat > bin/navit-wrapper << 'EOF'
+#!/bin/sh
+
+cd /mnt/sdcard/navit/bin
+
+# Set some paths.
+export PATH=$PATH:/mnt/sdcard/navit/bin
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/sdcard/navit/lib:/mnt/sdcard/LoquendoTTS/lib
+export HOME=/mnt/sdcard/navit
+export NAVIT_LIBDIR=/mnt/sdcard/navit/lib/navit
+export NAVIT_SHAREDIR=/mnt/sdcard/navit/share
+export NAVIT_LOCALEDIR=/mnt/sdcard/navit/share/locale
+
+# tslib requirements.
+export TSLIB_CONSOLEDEVICE=none
+export TSLIB_FBDEVICE=/dev/fb
+export TSLIB_TSDEVICE=/dev/ts
+export TSLIB_CALIBFILE=/mnt/sdcard/navit/ts/pointercal
+export TSLIB_CONFFILE=/mnt/sdcard/navit/ts/ts.conf
+export TSLIB_PLUGINDIR=/mnt/sdcard/navit/lib/ts
+
+# SDL requirements.
+export SDL_MOUSEDRV=TSLIB
+export SDL_MOUSEDEV=$TSLIB_TSDEVICE
+export SDL_NOMOUSE=1
+export SDL_FBDEV=/dev/fb
+export SDL_VIDEODRIVER=fbcon
+export SDL_AUDIODRIVER=dsp
+
+# Set time zone.
+export TZ="CEDT-01:00:00CEST-02:00:00,M3.4.0,M10.4.0"
+
+# Set language.
+export LANG=en_US
+
+export ESPEAK_DATA_PATH=/mnt/sdcard/navit/share
+
+# Run Navit.
+if /mnt/sdcard/navit/sdl/testvidinfo | grep 480x272
+then
+ /mnt/sdcard/navit/bin/navit /mnt/sdcard/navit/share/tomtom480.xml 2>/mnt/sdcard/navit/navit.log&
+# tomtom320xml is not provided yet
+# elif /mnt/sdcard/navit/sdl/testvidinfo | grep 320x240
+# then
+# /mnt/sdcard/navit/bin/navit /mnt/sdcard/navit/share/config/tomtom320.xml 2>/mnt/sdcard/navit/navit.log&
+else
+ exit 1
+fi
+
+# Kill TTN while Navit is running.
+killall ttn
+
+while [ $? -eq 0 ]
+do
+echo "\0" > /dev/watchdog
+sleep 10
+ps | grep -v grep | grep -v wrapper | grep navit
+done
+
+/sbin/reboot
+
+EOF
+chmod a+rx bin/navit-wrapper
+
+# fonts
+cp -r ~/navit/navit/fonts/*.ttf $OUT_PATH/navit/share/fonts
+
+# ts
+cp -r $PREFIX/lib/ts $OUT_PATH/navit/lib/
+cp $PREFIX/bin/ts_* $OUT_PATH/navit/ts/
+
+# images and xml
+cd share
+mkdir xpm
+cd xpm
+cp $PREFIX/share/navit/xpm/*16.png ./
+cp $PREFIX/share/navit/xpm/*32.png ./
+cp $PREFIX/share/navit/xpm/*48.png ./
+cp $PREFIX/share/navit/xpm/*64.png ./
+cp $PREFIX/share/navit/xpm/nav*.* ./
+cp $PREFIX/share/navit/xpm/country*.png ./
+cd ..
+cp $PREFIX/share/navit/navit.xml ./tomtom480.xml
+mkdir -p maps
+
+
+# locale
+cp -r $PREFIX/share/locale ./
+
+# espeak
+cp -r ~/share/espeak-data ./
+cp $PREFIX/bin/espeak $OUT_PATH/navit/bin/
+cp $PREFIX/lib/libespeak.so.1 $OUT_PATH/navit/lib
+
+mv /tmp/espeakdsp $OUT_PATH/navit/bin/
+
+# add a menu button
+cat > $OUT_PATH/SDKRegistry/navit.cap << EOF
+Version|100|
+AppName|navit-wrapper|
+AppPath|/mnt/sdcard/navit/bin/|
+AppIconFile|navit.bmp|
+AppMainTitle|Navit|
+AppPort|2001|
+COMMAND|CMD|hallo|navit.bmp|Navit|
+EOF
+
+
+convert $PREFIX/share/icons/hicolor/128x128/apps/navit.png -type truecolor -crop 100x100+12+28 -resize 48x48 $OUT_PATH/SDKRegistry/navit.bmp
+convert -background none ~/navit/navit/xpm/tomtom_plus.svg -resize 80x80 $OUT_PATH/navit/share/xpm/tomtom_plus_80_80.png
+convert -background none ~/navit/navit/xpm/tomtom_minus.svg -resize 80x80 $OUT_PATH/navit/share/xpm/tomtom_minus_80_80.png
+
+cat > $OUT_PATH/SDKRegistry/ts.cap << EOF
+Version|100|
+AppName|ts-wrapper|
+AppPath|/mnt/sdcard/navit/ts/|
+AppIconFile||
+AppMainTitle|Touchscreen|
+AppPort||
+COMMAND|CMD|hallo||Touchscreen|
+EOF
+
+
+cat > $OUT_PATH/navit/ts/ts-wrapper << EOF
+#!/bin/sh
+
+cd /mnt/sdcard
+
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/sdcard/navit/lib
+
+export TSLIB_CONSOLEDEVICE=none
+export TSLIB_FBDEVICE=/dev/fb
+export TSLIB_TSDEVICE=/dev/ts
+export TSLIB_CALIBFILE=/mnt/sdcard/navit/ts/pointercal
+export TSLIB_CONFFILE=/mnt/sdcard/navit/ts/ts.conf
+export TSLIB_PLUGINDIR=/mnt/sdcard/navit/lib/ts
+
+/mnt/sdcard/navit/ts/ts_calibrate
+/mnt/sdcard/navit/ts/ts_test
+EOF
+
+cd $OUT_PATH
+zip -r $CIRCLE_ARTIFACTS/navitom.zip navit SDKRegistry
diff --git a/circle.yml b/circle.yml
index fc29cb3aa..ff3df2850 100644
--- a/circle.yml
+++ b/circle.yml
@@ -6,6 +6,7 @@ dependencies:
- ~/.android
- ~/android
- "~/assets/"
+ - ~/tomtom_assets
pre:
- "[ -d ~/assets ] || mkdir ~/assets"
- "[ -d ~/android ] || mkdir ~/android"
@@ -30,6 +31,8 @@ dependencies:
- sudo apt-get install lib32z1
- bash ci/build_android.sh
- bash ci/build_android_x86.sh
+# Tomtom minimal build
+ - bash ci/build_tomtom_minimal.sh
# Windows build
- sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
- sudo apt-get install default-jdk nsis
diff --git a/config.h.cmake b/config.h.cmake
index abc3d0ebc..4774efbaf 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -6,6 +6,7 @@
#cmakedefine HAVE_API_WIN32_BASE 1
#cmakedefine HAVE_API_WIN32 1
#cmakedefine HAVE_API_WIN32_CE 1
+#cmakedefine HAVE_API_TOMTOM 1
#cmakedefine HAVE_GLIB 1
#cmakedefine HAVE_GMODULE 1
#cmakedefine HAVE_GETCWD 1
diff --git a/navit/xslt/tomtom.xslt b/navit/xslt/tomtom.xslt
new file mode 100644
index 000000000..3e34d9224
--- /dev/null
+++ b/navit/xslt/tomtom.xslt
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xi="http://www.w3.org/2001/XInclude" version="1.0">
+
+ <xsl:output method="xml" indent="yes" cdata-section-elements="gui" doctype-system="navit.dtd"/>
+
+ <xsl:template match="/">
+ <xsl:apply-templates select="config"/>
+ </xsl:template>
+
+ <xsl:template match="config">
+ <xsl:copy>
+ <xsl:apply-templates select="navit"/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="navit">
+ <xsl:copy>
+ <xsl:attribute name="zoom">32</xsl:attribute>
+ <xsl:attribute name="tracking">1</xsl:attribute>
+ <xsl:attribute name="orientation">-1</xsl:attribute>
+ <xsl:attribute name="autozoom_active">1</xsl:attribute>
+ <xsl:attribute name="recent_dest">25</xsl:attribute>
+ <graphics type="sdl" w="480" h="272" bpp="16" frame="0" flags="1"/>
+ <xsl:copy-of select="gui[@type='internal']"/>
+ <osd enabled="yes" type="text" x="80" y="0" w="320" h="40" font_size="360" align="0" label="${{tracking.item.street_name}} ${{tracking.item.street_name_systematic}}" background_color="#00008080"/>
+ <osd enabled="yes" type="text" x="80" y="232" w="80" h="40" font_size="360" align="0" label="${{navigation.item[1].length[named]}}" background_color="#00008080"/>
+ <osd enabled="yes" type="text" x="160" y="232" w="240" h="40" font_size="360" align="0" label="${{vehicle.position_speed}} / ${{tracking.item.route_speed}}" background_color="#00008080"/>
+ <osd enabled="yes" type="text" x="400" y="232" w="80" h="40" font_size="360" align="0" label="${{navigation.item.destination_length[named]}}" background_color="#00008080"/>
+ <osd enabled="yes" type="text" x="400" y="192" w="80" h="40" font_size="360" align="0" label="${{navigation.item.destination_time[arrival]}}" background_color="#00008080"/>
+ <osd enabled="yes" type="compass" x="400" y="80" w="80" h="112" background_color="#00008080" font_size="300"/>
+ <osd enabled="yes" type="gps_status" x="0" y="80" w="80" h="40" background_color="#00008080"/>
+ <osd enabled="yes" type="speed_warner" x="0" y="120" w="80" h="72" background_color="#00008080" font_size="300"/>
+ <osd enabled="yes" type="navigation_next_turn" x="0" y="192" w="80" h="80" icon_w="48" icon_h="48" icon_src="%s_wh_48_48.png" background_color="#00008080"/>
+ <osd enabled="yes" type="button" x="400" y="0" command="zoom_in()" src="tomtom_plus_80_80.png"/>
+ <osd enabled="yes" type="button" x="0" y="0" command="zoom_out()" src="tomtom_minus_80_80.png"/>
+ <vehicle name="Local GPS" profilename="car" enabled="yes" active="yes" follow="1" source="file:/var/run/gpspipe">
+ <!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): -->
+ <log enabled="no" type="gpx" attr_types="position_time_iso8601,position_direction,position_speed,position_radius" data="/mnt/sdcard/navit/track_%Y%m%d-%%i.gpx" flush_size="1000" flush_time="30"/>
+ </vehicle>
+ <vehicle name="Demo" profilename="car" enabled="yes" active="no" follow="1" source="demo://" speed="100"/>
+ <xsl:copy-of select="tracking"/>
+
+ <xsl:copy-of select="vehicleprofile[@name='car']"/>
+ <xsl:copy-of select="vehicleprofile[@name='car_shortest']"/>
+ <xsl:copy-of select="vehicleprofile[@name='car_avoid_tolls']"/>
+ <xsl:copy-of select="vehicleprofile[@name='bike']"/>
+ <xsl:copy-of select="vehicleprofile[@name='pedestrian']"/>
+
+ <xsl:copy-of select="route"/>
+ <xsl:copy-of select="navigation"/>
+
+ <xsl:comment>Use espeak.</xsl:comment>
+ <speech type="cmdline" data="/mnt/sdcard/navit/bin/espeakdsp -v en '%s'"/>
+
+ <mapset enabled="yes">
+ <map type="binfile" enabled="yes" data="$NAVIT_SHAREDIR/maps/*.bin"/>
+ </mapset>
+ <xsl:copy-of select="layer"/>
+ <xsl:copy-of select="layout"/>
+ </xsl:copy>
+ </xsl:template>
+</xsl:transform>