--- misc/osrm-scripts/start-osrm.sh 2016/12/14 13:26:40 3166 +++ misc/osrm-scripts/start-osrm.sh 2016/12/15 19:19:31 3170 @@ -1,23 +1,45 @@ #!/bin/bash +# Note +# 3 GB memory (ram+swap) MUST be available when compiling +# This amount is plenty for working with denmark - but more may be required on larger areas +# +# DATADIR should have 6 GB free space for denmark -DATADIR=/mnt/qnap/openstreetmap -if [ ! -f /usr/local/bin/osrm-extract ] ; then - apt-get install build-essential git cmake pkg-config libprotoc-dev protobuf-compiler libprotobuf-dev libosmpbf-dev libpng12-dev libbz2-dev libstxxl-dev libstxxl-doc libstxxl1 - apt-get install libxml2-dev libzip-dev libboost-all-dev lua5.1 liblua5.1-0-dev libluabind-dev libtbb-dev +TAG="v5.5.0" +DATADIR=/mnt/qnap/openstreetmap +if [ ! -d "$DATADIR" ] ; then + echo DATADIR not found + exit +fi - cd /root +if [ ! -f /usr/local/bin/osrm-extract ] ; then + apt-get install build-essential git cmake pkg-config libprotoc-dev protobuf-compiler libprotobuf-dev libosmpbf-dev libpng12-dev libbz2-dev libstxxl-dev libstxxl-doc libstxxl1 || exit + apt-get install libxml2-dev libzip-dev libboost-all-dev lua5.1 liblua5.1-0-dev libluabind-dev libtbb-dev ||exit - git clone https://github.com/Project-OSRM/osrm-backend.git - cd osrm-backend - mkdir -p build - cd build - cmake .. - make -j 2 - make install + cd /root || exit + + if [ ! -d osrm-backend ] ; then + git clone https://github.com/Project-OSRM/osrm-backend.git || exit + cd osrm-backend || exit + git checkout tags/$TAG || exit + else + cd osrm-backend + fi + + if [ ! -d build ] ; then + mkdir -p build || exit + fi + + cd build ||exit + + #If building on Debian8/jessie LTO is apparently broken + cmake -DENABLE_LTO=OFF .. || exit + make -j 2 || exit + make install ||exit fi @@ -27,19 +49,19 @@ cd $DATADIR if [ ! -f denmark-latest.osm ] ; then - wget http://download.geofabrik.de/europe/denmark-latest.osm.bz2 - bunzip2 denmark-latest.osm.bz2 + wget http://download.geofabrik.de/europe/denmark-latest.osm.bz2 || exit + bunzip2 denmark-latest.osm.bz2 ||exit fi cd /root/osrm-backend if [ ! -f $DATADIR/denmark-latest.osrm ] ; then - osrm-extract $DATADIR/denmark-latest.osm + osrm-extract $DATADIR/denmark-latest.osm || exit fi -if [ ! -f $DATADIR/denmark-latest.osrm.edges ] ; then - osrm-prepare $DATADIR/denmark-latest.osrm +if [ ! -f $DATADIR/denmark-latest.osrm.hsgr ] ; then + osrm-contract $DATADIR/denmark-latest.osrm || exit fi cd $DATADIR