summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml107
-rwxr-xr-xCMakeLists.txt6
-rwxr-xr-xToolchain/arm-eabi.cmake6
-rwxr-xr-xToolchain/i686-android.cmake6
-rw-r--r--ci/build_android.sh22
-rw-r--r--ci/build_android_x86.sh22
-rw-r--r--ci/build_linux.sh12
-rw-r--r--ci/build_tomtom_minimal.sh183
-rw-r--r--ci/build_tomtom_plugin.sh461
-rw-r--r--ci/build_win32.sh2
-rw-r--r--ci/setup_android.sh34
-rw-r--r--ci/setup_common_requirements.sh1
-rw-r--r--ci/setup_tomtom_requirements.sh83
-rw-r--r--circle.yml46
-rw-r--r--contrib/tomtom/SDKRegistry/navit.cap7
-rw-r--r--contrib/tomtom/SDKRegistry/ts.cap8
-rwxr-xr-xcontrib/tomtom/navit-wrapper59
-rw-r--r--contrib/tomtom/ts/ts-wrapper15
-rw-r--r--navit/icons/tomtom_minus.svg6
-rw-r--r--navit/icons/tomtom_plus.svg6
20 files changed, 376 insertions, 716 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 000000000..ca49945be
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,107 @@
+version: 2
+defaults: &defaults
+ docker:
+ - image: ubuntu:14.04
+
+jobs:
+ build_linux:
+ <<: *defaults
+ steps:
+ - checkout
+ - run:
+ name: Build for Linux
+ command: |
+ bash ci/setup_common_requirements.sh
+ bash ci/build_linux.sh
+ build_android_arm:
+ <<: *defaults
+ steps:
+ - checkout
+ - run:
+ name: Setup common requirements
+ command: |
+ bash ci/setup_common_requirements.sh
+ - run:
+ name: Prepare the Android build environment
+ command: |
+ bash ci/setup_android.sh
+ - run:
+ name: Build for Android ARM
+ command: |
+ bash ci/build_android.sh
+ - store_artifacts:
+ path: android-arm/navit
+ build_android_x86:
+ <<: *defaults
+ steps:
+ - checkout
+ - run:
+ name: Setup common requirements
+ command: |
+ bash ci/setup_common_requirements.sh
+ - run:
+ name: Prepare the Android build environment
+ command: |
+ bash ci/setup_android.sh
+ - run:
+ name: Build for Android X86
+ command: |
+ bash ci/build_android_x86.sh
+ - store_artifacts:
+ path: android-x86/navit
+ build_win32:
+ <<: *defaults
+ steps:
+ - checkout
+ - run:
+ name: Build for Windows
+ command: |
+ bash ci/setup_common_requirements.sh
+ bash ci/build_win32.sh
+ build_tomtom_minimal:
+ <<: *defaults
+ steps:
+ - checkout
+ - run:
+ name: Setup common requirements
+ command: |
+ bash ci/setup_common_requirements.sh
+ - run:
+ name: Build the Tomtom toolchain
+ command: |
+ bash ci/setup_tomtom_requirements.sh
+ - run:
+ name: Build for Tomtom (minimal)
+ command: |
+ bash ci/build_tomtom_minimal.sh
+ - store_artifacts:
+ path: /tmp/tomtom/sdcard
+ build_tomtom_plugin:
+ <<: *defaults
+ steps:
+ - checkout
+ - run:
+ name: Setup common requirements
+ command: |
+ bash ci/setup_common_requirements.sh
+ - run:
+ name: Build the Tomtom toolchain
+ command: |
+ bash ci/setup_tomtom_requirements.sh
+ - run:
+ name: Build for Tomtom (plugin)
+ command: |
+ bash ci/build_tomtom_plugin.sh
+ - store_artifacts:
+ path: /tmp/tomtom/sdcard
+
+workflows:
+ version: 2
+ build_all:
+ jobs:
+ - build_linux
+ - build_android_arm
+ - build_android_x86
+ - build_win32
+ - build_tomtom_minimal
+ - build_tomtom_plugin
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e7a6f6418..3d5924582 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -704,9 +704,9 @@ if(ANDROID)
set(XSLTS "android;${XSLTS}" CACHE STRING "define a semicolon seperated list of XSLTs to process")
list(APPEND NAVIT_LIBS log)
set(HAVE_API_ANDROID 1)
- set_with_reason(graphics/android "Android detected" TRUE)
- set_with_reason(speech/android "Android detected" TRUE)
- set_with_reason(vehicle/android "Android detected" TRUE)
+ set_with_reason(graphics/android "Android detected, NDK:${ANDROID_NDK_API_VERSION}, API:${ANDROID_API_VERSION}" TRUE)
+ set_with_reason(speech/android "Android detected, NDK:${ANDROID_NDK_API_VERSION}, API:${ANDROID_API_VERSION}" TRUE)
+ set_with_reason(vehicle/android "Android detected, NDK:${ANDROID_NDK_API_VERSION}, API:${ANDROID_API_VERSION}" TRUE)
set(SHARED_LIBNAVIT TRUE)
add_feature(XPM2PNG "Android detected" TRUE)
diff --git a/Toolchain/arm-eabi.cmake b/Toolchain/arm-eabi.cmake
index 7c8190667..5aec27692 100755
--- a/Toolchain/arm-eabi.cmake
+++ b/Toolchain/arm-eabi.cmake
@@ -1,8 +1,8 @@
set(CMAKE_SYSTEM_NAME GNU)
set(ANDROID TRUE)
-set(ANDROID_API_VERSION 9 CACHE STRING "Andriod API Version")
-set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Andriod NDK API Version")
+set(ANDROID_API_VERSION 9 CACHE STRING "Android API Version")
+set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Android NDK API Version")
set(ANDROID_ARCH "armeabi" CACHE STRING "Android architecture")
find_program(CMAKE_C_COMPILER NAMES arm-eabi-gcc arm-eabi-gcc.exe arm-linux-androideabi-gcc arm-linux-androideabi-gcc.exe)
@@ -11,7 +11,7 @@ set(PKG_CONFIG_EXECUTABLE "arm-eabi-pkg-config")
get_filename_component(COMPILER_PATH ${CMAKE_C_COMPILER} PATH)
-set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Andriod NDK")
+set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Android NDK")
set(NDK_ARCH_DIR "${ANDROID_NDK}/platforms/android-${ANDROID_NDK_API_VERSION}/arch-arm")
set(CMAKE_FIND_ROOT_PATH ${NDK_ARCH_DIR})
diff --git a/Toolchain/i686-android.cmake b/Toolchain/i686-android.cmake
index 2b6e8a177..4f5630644 100755
--- a/Toolchain/i686-android.cmake
+++ b/Toolchain/i686-android.cmake
@@ -1,8 +1,8 @@
set(CMAKE_SYSTEM_NAME GNU)
set(ANDROID TRUE)
-set(ANDROID_API_VERSION 9 CACHE STRING "Andriod API Version")
-set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Andriod NDK API Version")
+set(ANDROID_API_VERSION 9 CACHE STRING "Android API Version")
+set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Android NDK API Version")
set(ANDROID_ARCH "x86" CACHE STRING "Android architecture")
find_program(CMAKE_C_COMPILER NAMES i686-linux-android-gcc i686-linux-android-gcc.exe)
@@ -11,7 +11,7 @@ set(PKG_CONFIG_EXECUTABLE "i686-android-pkg-config")
get_filename_component(COMPILER_PATH ${CMAKE_C_COMPILER} PATH)
-set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Andriod NDK")
+set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Android NDK")
set(NDK_ARCH_DIR "${ANDROID_NDK}/platforms/android-${ANDROID_NDK_API_VERSION}/arch-x86")
set(CMAKE_FIND_ROOT_PATH ${NDK_ARCH_DIR})
diff --git a/ci/build_android.sh b/ci/build_android.sh
index 97ac349a1..ad42c78c2 100644
--- a/ci/build_android.sh
+++ b/ci/build_android.sh
@@ -1,6 +1,8 @@
#!/bin/bash
set -e
+apt-get update && apt-get install -y wget
+
export ARCH="arm"
export START_PATH=~/
export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/"
@@ -10,28 +12,30 @@ export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/arm-linux-androideabi-4.9/prebui
export ANDROID_SDK="/usr/local/android-sdk-linux/"
export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools"
export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH
-export BUILD_PATH=$START_PATH"/android-${ARCH}"
+export BUILD_PATH=android-${ARCH}
+
+export ANDROID_SDK_HOME=/opt/android-sdk-linux
+export ANDROID_HOME=/opt/android-sdk-linux
+export PATH=${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools:/opt/tools
wget -nv -c http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip
[ -d ~/android-ndk-r11c ] || unzip -q -d ~ android-ndk-r11c-linux-x86_64.zip
[ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH
-cd $BUILD_PATH
+pushd $BUILD_PATH
android list targets
-cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 $SOURCE_PATH
+cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain/arm-eabi.cmake -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 ../
+
make -j $(nproc --all)
if [[ "${CIRCLE_BRANCH}" == "master" ]]; then
- make -j $(nproc --all) apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1
+ make -j $(nproc --all) apkg-release && mv navit/android/bin/Navit-release-unsigned.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1
else
- make -j $(nproc --all) apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1
+ make -j $(nproc --all) apkg && mv navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1
fi
-[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/
-cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/
-
echo
echo "Build leftovers :"
-ls $BUILD_PATH
+find .
diff --git a/ci/build_android_x86.sh b/ci/build_android_x86.sh
index b9dff3a2c..6e84bc4e1 100644
--- a/ci/build_android_x86.sh
+++ b/ci/build_android_x86.sh
@@ -1,6 +1,8 @@
#!/bin/bash
set -e
+apt-get update && apt-get install -y wget
+
export ARCH="x86"
export START_PATH=~/
export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/"
@@ -10,28 +12,30 @@ export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/x86-4.9/prebuilt/linux-x86_64/bi
export ANDROID_SDK="/usr/local/android-sdk-linux/"
export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools"
export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_PLATFORM_TOOLS:$PATH
-export BUILD_PATH=$START_PATH"/android-${ARCH}"
+export BUILD_PATH=android-${ARCH}
+
+export ANDROID_SDK_HOME=/opt/android-sdk-linux
+export ANDROID_HOME=/opt/android-sdk-linux
+export PATH=${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools:/opt/tools
+
wget -nv -c http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip
[ -d ~/android-ndk-r11c ] || unzip -q -d ~ android-ndk-r11c-linux-x86_64.zip
[ -d $BUILD_PATH ] || mkdir -p $BUILD_PATH
-cd $BUILD_PATH
+pushd $BUILD_PATH
android list targets
-cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 $SOURCE_PATH
+cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain/i686-android.cmake -DAVOID_FLOAT=1 -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n -DANDROID_API_VERSION=25 -DANDROID_NDK_API_VERSION=19 -DDISABLE_CXX=1 -DDISABLE_QT=1 ..
make -j $(nproc --all)
if [[ "${CIRCLE_BRANCH}" == "master" ]]; then
- make -j $(nproc --all) apkg-release && mv $BUILD_PATH/navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1
+ make -j $(nproc --all) apkg-release && mv navit/android/bin/Navit-release-unsigned.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-release-unsigned.apk || exit 1
else
- make -j $(nproc --all) apkg && mv $BUILD_PATH/navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1
+ make -j $(nproc --all) apkg && mv navit/android/bin/Navit-debug.apk navit/android/bin/navit-$CIRCLE_SHA1-${ARCH}-debug.apk || exit 1
fi
-[ -d $CIRCLE_ARTIFACTS/android-${ARCH}/ ] || mkdir $CIRCLE_ARTIFACTS/android-${ARCH}/
-cp $BUILD_PATH/navit/*.xml $CIRCLE_ARTIFACTS/android-${ARCH}/
-
echo
echo "Build leftovers :"
-ls $BUILD_PATH
+find .
diff --git a/ci/build_linux.sh b/ci/build_linux.sh
index ff5550e65..061ebd019 100644
--- a/ci/build_linux.sh
+++ b/ci/build_linux.sh
@@ -1,4 +1,6 @@
-sudo apt-get install cmake libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev g++ libgtk2.0-dev libqt5svg5-dev qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin qtmultimedia5-dev
+set -e
+
+apt-get install -y libpng12-dev librsvg2-bin libfreetype6-dev libdbus-glib-1-dev libgtk2.0-dev
cmake_opts="-Dgraphics/qt_qpainter:BOOL=FALSE -Dgui/qml:BOOL=FALSE -DSVG2PNG:BOOL=FALSE -DSAMPLE_MAP=n -Dgraphics/gtk_drawing_area:BOOL=TRUE"
@@ -26,15 +28,11 @@ if [[ "${CIRCLE_PROJECT_USERNAME}" == "navit-gps" && "${CIRCLE_BRANCH}" == "trun
curl "https://translations.launchpad.net/navit/${CIRCLE_BRANCH}/+translations-upload" -H "$lp_cookie" -H "Referer: https://translations.launchpad.net/navit/${CIRCLE_BRANCH}/+translations-upload" -F file=@po/navit.pot | grep title
else
- mkdir ~/linux-bin && cd ~/linux-bin
- cmake ~/${CIRCLE_PROJECT_REPONAME}/ ${cmake_opts} || exit -1
+ mkdir ${CIRCLE_WORKING_DIRECTORY}/linux-bin && cd ${CIRCLE_WORKING_DIRECTORY}/linux-bin
+ cmake ${CIRCLE_WORKING_DIRECTORY}/ ${cmake_opts} || exit -1
make -j $(nproc --all) || exit -1
fi
if [[ "$CIRCLE_ARTIFACTS" != "" ]]; then
cp -r navit/icons $CIRCLE_ARTIFACTS
fi
-
-
-# Done with the builds tests. Running some app tests
-bash ~/navit/ci/run_linux_tests.sh
diff --git a/ci/build_tomtom_minimal.sh b/ci/build_tomtom_minimal.sh
index 845224e05..6af14fe5d 100644
--- a/ci/build_tomtom_minimal.sh
+++ b/ci/build_tomtom_minimal.sh
@@ -8,11 +8,8 @@
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
+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"
@@ -28,184 +25,44 @@ export STRIP=$ARCH-strip
export OBJCOPY=$ARCH-objcopy
export LN_S="ln -s"
export PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig
-JOBS=$(nproc --all)
-
-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 -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/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.29.tar.gz"
-then
- wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/libpng-1.6.29.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 -nv -c http://zlib.net/zlib-1.2.11.tar.gz
-tar xzf zlib-1.2.11.tar.gz
-cd zlib-1.2.11
-./configure --prefix=$PREFIX
-make -j$JOBS
-make install
-
-# libxml
-cd /tmp/
-wget -nv -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.29.tar.gz
-cd libpng-1.6.29/
-./configure --prefix=$PREFIX --host=$ARCH
-make -j$JOBS
-make install
-
-
-cd /tmp
-wget -nv -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 -nv -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
-
+JOBS=$(nproc --all)
-cd /tmp
-wget -nv -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 -nv -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 -nv -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
+pushd 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 \
+-DHAVE_API_TOMTOM=TRUE -DXSLTS=tomtom -DAVOID_FLOAT=TRUE -Dmap/mg=FALSE -DUSE_PLUGINS=0 -DCMAKE_TOOLCHAIN_FILE=../Toolchain/$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 ..
-
+[ -d $OUT_PATH ] && rm -rf $OUT_PATH
+mkdir -p $OUT_PATH/navit/bin
+mkdir -p $OUT_PATH/navit/share/fonts
+mkdir -p $OUT_PATH/navit/share/icons
+mkdir -p $OUT_PATH/navit/share/maps
+mkdir -p $OUT_PATH/navit/share/locale
# navit executable
-cp $PREFIX/bin/navit bin/
-
+cp navit/navit $OUT_PATH/navit/bin
# fonts
-cp -r ~/navit/navit/fonts/*.ttf $OUT_PATH/navit/share/fonts
+cp -r ../navit/fonts/*.ttf $OUT_PATH/navit/share/fonts
# images and xml
-cd share
-mkdir icons
-cd icons
-cp $PREFIX/share/navit/icons/*16.png ./
-cp $PREFIX/share/navit/icons/*32.png ./
-cp $PREFIX/share/navit/icons/*48.png ./
-cp $PREFIX/share/navit/icons/*64.png ./
-cp $PREFIX/share/navit/icons/nav*.* ./
-cp $PREFIX/share/navit/icons/country*.png ./
+cp $PREFIX/share/navit/icons/*16.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/*32.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/*48.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/*64.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/nav*.* $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/country*.png $OUT_PATH/navit/share/icons
cd ..
cp $PREFIX/share/navit/navit.xml ./tomtom480.xml
-mkdir -p maps
-
# locale
-cp -r $PREFIX/share/locale ./
+cp -r $PREFIX/share/locale $OUT_PATH/navit/share/locale
cd $OUT_PATH
-zip -r $CIRCLE_ARTIFACTS/navitom_minimal.zip navit
+zip -r navitom_minimal.zip navit
diff --git a/ci/build_tomtom_plugin.sh b/ci/build_tomtom_plugin.sh
index 08966ddb7..98346e903 100644
--- a/ci/build_tomtom_plugin.sh
+++ b/ci/build_tomtom_plugin.sh
@@ -32,467 +32,108 @@ JOBS=$(nproc --all)
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 -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/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.29.tar.gz"
-then
- wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/libpng-1.6.29.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
+pushd /tmp
# this one includes the precompiled voices
wget -nv -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
+pushd 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 -nv -c http://zlib.net/zlib-1.2.11.tar.gz
-tar xzf zlib-1.2.11.tar.gz
-cd zlib-1.2.11
-./configure --prefix=$PREFIX
-make -j$JOBS
-make install
-
-# libxml
-cd /tmp/
-wget -nv -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.29.tar.gz
-cd libpng-1.6.29/
-./configure --prefix=$PREFIX --host=$ARCH
-make -j$JOBS
-make install
-
-
-cd /tmp
-wget -nv -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 -nv -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
+pushd src
make install
-
-
-cd /tmp
-wget -nv -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 -nv -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 -nv -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/icons/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/icons/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
+popd # src
+popd # espeak-*
+popd # /tmp
# 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
+pushd 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
+[ -d $OUT_PATH ] && rm -rf $OUT_PATH
+mkdir -p $OUT_PATH/navit/bin
+mkdir -p $OUT_PATH/navit/lib
+mkdir -p $OUT_PATH/navit/sdl
+mkdir -p $OUT_PATH/navit/ts
+mkdir -p $OUT_PATH/navit/share/fonts
+mkdir -p $OUT_PATH/navit/share/icons
+mkdir -p $OUT_PATH/navit/share/maps
+mkdir -p $OUT_PATH/navit/share/locale
+
+cp $PREFIX/lib/libfreetype.so.6 $OUT_PATH/navit/lib
+cp $PREFIX/lib/libSDL-1.2.so.0 $OUT_PATH/navit/lib
+cp $PREFIX/lib/libSDL_image-1.2.so.0 $OUT_PATH/navit/lib
+cp $PREFIX/lib/libfreetype.so.6 $OUT_PATH/navit/lib
+cp $PREFIX/lib/libgio-2.0.so $OUT_PATH/navit/lib
+cp $PREFIX/lib/libglib-2.0.so $OUT_PATH/navit/lib/libglib-2.0.so.0
+cp $PREFIX/lib/libgmodule-2.0.so $OUT_PATH/navit/lib/libgmodule-2.0.so.0
+cp $PREFIX/lib/libgobject-2.0.so $OUT_PATH/navit/lib/libgobject-2.0.so.0
+cp $PREFIX/lib/libgthread-2.0.so $OUT_PATH/navit/lib/libgthread-2.0.so.0
+cp $PREFIX/lib/libpng16.so.16 $OUT_PATH/navit/lib
+cp $PREFIX/lib/libts-1.0.so.0 $OUT_PATH/navit/lib
+cp $PREFIX/lib/libxml2.so.2 $OUT_PATH/navit/lib
+cp $PREFIX/lib/libz.so.1 $OUT_PATH/navit/lib
+cp $TOMTOM_SDK_DIR/gcc-3.3.4_glibc-2.3.2/$ARCH/lib/libstdc++.so.5 $OUT_PATH/navit/lib
+cp $PREFIX/etc/ts.conf $OUT_PATH/navit/ts
# flite
# cp $PREFIX/bin/flite* bin/
+# http://forum.navit-project.org/viewtopic.php?f=17&t=568
+arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include ../contrib/tomtom/espeakdsp.c -o $OUT_PATH/navit/bin/espeakdsp
+
# SDL testvidinfo
-cp $PREFIX/usr/bin/testvidinfo sdl/
+cp $PREFIX/usr/bin/testvidinfo $OUT_PATH/navit/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
+cp $PREFIX/bin/navit $OUT_PATH/navit/bin
+cp ../contrib/tomtom/navit-wrapper $OUT_PATH/navit/bin/navit-wrapper
# fonts
-cp -r ~/navit/navit/fonts/*.ttf $OUT_PATH/navit/share/fonts
+cp -r ../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 icons
-cd icons
-cp $PREFIX/share/navit/icons/*16.png ./
-cp $PREFIX/share/navit/icons/*32.png ./
-cp $PREFIX/share/navit/icons/*48.png ./
-cp $PREFIX/share/navit/icons/*64.png ./
-cp $PREFIX/share/navit/icons/nav*.* ./
-cp $PREFIX/share/navit/icons/country*.png ./
-cd ..
+cp $PREFIX/share/navit/icons/*16.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/*32.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/*48.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/*64.png $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/nav*.* $OUT_PATH/navit/share/icons
+cp $PREFIX/share/navit/icons/country*.png $OUT_PATH/navit/share/icons
cp $PREFIX/share/navit/navit.xml ./tomtom480.xml
-mkdir -p maps
# locale
-cp -r $PREFIX/share/locale ./
+cp -r $PREFIX/share/locale $OUT_PATH/navit/share/locale
# espeak
-cp -r ~/share/espeak-data ./
+cp -r ~/share/espeak-data $OUT_PATH/navit/share/
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
-
+cp -r ../contrib/tomtom/SDKRegistry/ $OUT_PATH/
+cp -r ../contrib/tomtom/ts $OUT_PATH/
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/icons/tomtom_plus.svg -resize 80x80 $OUT_PATH/navit/share/icons/tomtom_plus_80_80.png
-convert -background none ~/navit/navit/icons/tomtom_minus.svg -resize 80x80 $OUT_PATH/navit/share/icons/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
+convert -background none ../navit/icons/tomtom_plus.svg -resize 80x80 $OUT_PATH/navit/share/icons/tomtom_plus_80_80.png
+convert -background none ../navit/icons/tomtom_minus.svg -resize 80x80 $OUT_PATH/navit/share/icons/tomtom_minus_80_80.png
-/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/ci/build_win32.sh b/ci/build_win32.sh
index a96653f33..47b05b9d2 100644
--- a/ci/build_win32.sh
+++ b/ci/build_win32.sh
@@ -1,4 +1,4 @@
-sudo apt-get install mingw32 mingw32-binutils mingw32-runtime default-jdk nsis
+apt-get update && apt-get install -y mingw32 mingw32-binutils mingw32-runtime default-jdk nsis
mkdir win32
pushd win32
diff --git a/ci/setup_android.sh b/ci/setup_android.sh
new file mode 100644
index 000000000..64e250635
--- /dev/null
+++ b/ci/setup_android.sh
@@ -0,0 +1,34 @@
+apt-get update && apt-get install -y software-properties-common
+add-apt-repository -y ppa:openjdk-r/ppa
+apt-get update && apt-get install -y openjdk-8-jdk wget expect git curl libsaxonb-java ant
+apt-get remove -y openjdk-7-jre-headless
+
+export ANDROID_SDK_HOME=/opt/android-sdk-linux
+export ANDROID_HOME=/opt/android-sdk-linux
+
+cd /opt && wget -q https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz -O android-sdk.tgz
+cd /opt && tar -xvzf android-sdk.tgz
+cd /opt && rm -f android-sdk.tgz
+
+export PATH=${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools:/opt/tools
+
+echo y | android update sdk --no-ui --all --filter platform-tools | grep 'package installed'
+#RUN echo y | android update sdk --no-ui --all --filter extra-android-support | grep 'package installed'
+
+echo y | android update sdk --no-ui --all --filter android-25 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter android-24 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter android-23 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter android-18 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter android-16 | grep 'package installed'
+
+echo y | android update sdk --no-ui --all --filter build-tools-25.0.3 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-25.0.2 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-25.0.1 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-25.0.0 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-24.0.3 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-24.0.2 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-24.0.1 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-23.0.3 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-23.0.2 | grep 'package installed'
+echo y | android update sdk --no-ui --all --filter build-tools-23.0.1 | grep 'package installed'
+
diff --git a/ci/setup_common_requirements.sh b/ci/setup_common_requirements.sh
new file mode 100644
index 000000000..f5fa73cef
--- /dev/null
+++ b/ci/setup_common_requirements.sh
@@ -0,0 +1 @@
+apt-get update && apt-get install -y wget unzip cmake build-essential gettext
diff --git a/ci/setup_tomtom_requirements.sh b/ci/setup_tomtom_requirements.sh
index 8ed1c158f..00bd33c44 100644
--- a/ci/setup_tomtom_requirements.sh
+++ b/ci/setup_tomtom_requirements.sh
@@ -1,12 +1,17 @@
#!/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
+# install additional packages to build TT evitonment and navit
+apt-get install -y libglib2.0-dev git autogen autoconf libtool imagemagick zip
+dpkg --add-architecture i386
+apt-get update
+apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386
+
+#remove disturbing build artefact for second run
+rm -f /opt/tomtom-sdk/gcc-3.3.4_glibc-2.3.2/arm-linux/sys-root/bin//glib-genmarshal
+
export ARCH=arm-linux
cp Toolchain/$ARCH.cmake /tmp
@@ -28,33 +33,34 @@ export STRIP=$ARCH-strip
export OBJCOPY=$ARCH-objcopy
export LN_S="ln -s"
export PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig
-JOBS=`getconf _NPROCESSORS_ONLN`
+JOBS=$(nproc --all)
echo "Jobs"
echo $JOBS
-mkdir -p ~/assets/tomtom/
+mkdir -p ~/tomtom_assets
-if ! [ -e "~/assets/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ]
+if ! [ -e "~/tomtom_assets/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz" ]
then
- wget -nv -c http://www.tomtom.com/gpl/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/assets/tomtom
+ wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -P ~/tomtom_assets
fi
-if ! test -f "~/assets/tomtom/libpng-1.6.29.tar.gz"
+if ! test -f "~/tomtom_assets/libpng-1.6.29.tar.gz"
then
- wget -nv -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.29.tar.gz -P ~/assets/tomtom
+ wget -nv -c https://github.com/navit-gps/dependencies/raw/master/tomtom/libpng-1.6.29.tar.gz -P ~/tomtom_assets
fi
# toolchain
cd /tmp
mkdir -p $TOMTOM_SDK_DIR
-tar xzf ~/assets/tomtom/toolchain_redhat_gcc-3.3.4_glibc-2.3.2-20060131a.tar.gz -C $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 -nv -c http://zlib.net/zlib-1.2.9.tar.gz
-tar xzf zlib-1.2.9.tar.gz
-cd zlib-1.2.9
+wget -nv -c http://zlib.net/zlib-1.2.11.tar.gz
+tar xzf zlib-1.2.11.tar.gz
+cd zlib-1.2.11
./configure --prefix=$PREFIX
make -j$JOBS
make install
@@ -70,7 +76,7 @@ make install
# libpng
cd /tmp/
-tar xzf ~/assets/tomtom/libpng-1.6.29.tar.gz
+tar xzf ~/tomtom_assets/libpng-1.6.29.tar.gz
cd libpng-1.6.29/
./configure --prefix=$PREFIX --host=$ARCH
make -j$JOBS
@@ -156,53 +162,6 @@ make -j$JOBS
make install
-
-# espeak
-cd /tmp
-# this one includes the precompiled voices
-wget -nv -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
-sudo make install
-
-# http://forum.navit-project.org/viewtopic.php?f=17&t=568
-cd /tmp
-arm-linux-gcc -O2 -I$PREFIX/include -I$PREFIX/usr/include ~/navit/contrib/tomtom/espeakdsp.c -o espeakdsp
-
-
-
# 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 SDKRegistry
-cd navit
-mkdir -p bin lib share sdl ts
-cd share
-mkdir -p fonts
-cd ..
-
diff --git a/circle.yml b/circle.yml
deleted file mode 100644
index 0002cc7f5..000000000
--- a/circle.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-machine:
- environment:
- CMAKE_FILE: ../Toolchain/arm-eabi.cmake
-dependencies:
- cache_directories:
- - ~/.android
- - ~/android
- - "~/assets/"
- pre:
- - "[ -d ~/assets ] || mkdir ~/assets"
- - "[ -d ~/android ] || mkdir ~/android"
- - sudo apt-get update
-# Android build
- - sudo apt-get install gettext
- - sudo apt-get install libsaxonb-java
-# for aapt
- - sudo apt-get install lib32stdc++6
- - sudo apt-get install lib32z1
-# For python testing with junit reporting
- - sudo apt-get install python-gobject libdbus-glib-1-dev python-dev
- - pip install junit-xml dbus-python
- - ln -s /usr/lib/python2.7/dist-packages/gobject /opt/circleci/python/2.7.11/lib/python2.7/site-packages/
- - ln -s /usr/lib/python2.7/dist-packages/glib /opt/circleci/python/2.7.11/lib/python2.7/site-packages/
-test:
-
- override:
- - bash ci/build.sh:
- parallel: true
- files:
- - ci/build_*.sh
-deployment:
- publish_to_playstore:
- branch: master
- owner: navit-gps
- commands:
- - bash ci/publish.sh
- merge_into_master:
- branch: trunk
- owner: navit-gps
- commands:
- - git push origin $CIRCLE_SHA1:refs/heads/master
- merge_translations:
- branch: /i18n.*/
- owner: navit-gps
- commands:
- - bash ci/merge_i18n_update.sh
diff --git a/contrib/tomtom/SDKRegistry/navit.cap b/contrib/tomtom/SDKRegistry/navit.cap
new file mode 100644
index 000000000..d9bae49b7
--- /dev/null
+++ b/contrib/tomtom/SDKRegistry/navit.cap
@@ -0,0 +1,7 @@
+Version|100|
+AppName|navit-wrapper|
+AppPath|/mnt/sdcard/navit/bin/|
+AppIconFile|navit.bmp|
+AppMainTitle|Navit|
+AppPort|2001|
+COMMAND|CMD|hallo|navit.bmp|Navit|
diff --git a/contrib/tomtom/SDKRegistry/ts.cap b/contrib/tomtom/SDKRegistry/ts.cap
new file mode 100644
index 000000000..c10c831a4
--- /dev/null
+++ b/contrib/tomtom/SDKRegistry/ts.cap
@@ -0,0 +1,8 @@
+Version|100|
+AppName|ts-wrapper|
+AppPath|/mnt/sdcard/navit/ts/|
+AppIconFile||
+AppMainTitle|Touchscreen|
+AppPort||
+COMMAND|CMD|hallo||Touchscreen|
+
diff --git a/contrib/tomtom/navit-wrapper b/contrib/tomtom/navit-wrapper
new file mode 100755
index 000000000..f4eadb9e0
--- /dev/null
+++ b/contrib/tomtom/navit-wrapper
@@ -0,0 +1,59 @@
+#!/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
diff --git a/contrib/tomtom/ts/ts-wrapper b/contrib/tomtom/ts/ts-wrapper
new file mode 100644
index 000000000..6f8f8e2d5
--- /dev/null
+++ b/contrib/tomtom/ts/ts-wrapper
@@ -0,0 +1,15 @@
+#!/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
diff --git a/navit/icons/tomtom_minus.svg b/navit/icons/tomtom_minus.svg
new file mode 100644
index 000000000..9453d687d
--- /dev/null
+++ b/navit/icons/tomtom_minus.svg
@@ -0,0 +1,6 @@
+<?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>
diff --git a/navit/icons/tomtom_plus.svg b/navit/icons/tomtom_plus.svg
new file mode 100644
index 000000000..bdf74c4f4
--- /dev/null
+++ b/navit/icons/tomtom_plus.svg
@@ -0,0 +1,6 @@
+<?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>