diff options
author | Pierre GRANDIN <pgrandin@users.noreply.github.com> | 2016-10-26 10:51:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-26 10:51:32 -0700 |
commit | 5fbef56af22f2a62229b919b484de421bc66aeef (patch) | |
tree | c25b82f906c5d49d6e1c688b5eb5e5bf4d174ddd | |
parent | fd6ae907cb42161052993dd824cdc1ddec65a4e6 (diff) | |
parent | a88b7545f8ff66e6c2c56fb0ff9df76cb01c89f1 (diff) | |
download | navit-5fbef56af22f2a62229b919b484de421bc66aeef.tar.gz |
Merge pull request #119 from navit-gps/tomtom2
Tomtom2
-rw-r--r-- | Toolchain/arm-linux.cmake | 14 | ||||
-rw-r--r-- | ci/build_tomtom_minimal.sh | 212 | ||||
-rw-r--r-- | ci/build_tomtom_plugin.sh | 498 | ||||
-rw-r--r-- | circle.yml | 3 | ||||
-rw-r--r-- | config.h.cmake | 1 | ||||
-rw-r--r-- | navit/xslt/tomtom.xslt | 62 |
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> |