osrm-backend/third_party/mason/scripts/setup_cpp11_toolchain.sh

75 lines
2.9 KiB
Bash
Raw Normal View History

function usage() {
echo "Usage:"
echo ""
echo "source ./scripts/setup_cpp11_toolchain.sh"
echo ""
exit 1
}
function main() {
if [[ ${1:-unset} != "unset" ]]; then
if [[ $1 == '-h' ]] || [[ $1 == '--help' ]]; then
usage
fi
fi
if [[ $(uname -s) == 'Linux' ]]; then
set -e
if [[ ! $(lsb_release --id) =~ "Ubuntu" ]]; then
echo "only Ubuntu precise is supported at this time and not '$(lsb_release --id)'"
exit 1
fi
local codename release
codename=$(lsb_release --codename | cut -d : -f 2 | xargs basename)
release=$(lsb_release --release | cut -d : -f 2 | xargs basename)
export CPP11_TOOLCHAIN="$(pwd)/toolchain"
mkdir -p ${CPP11_TOOLCHAIN}
function dpack() {
if [[ ! -f $2 ]]; then
url=$1/$(echo $2 | sed 's/+/%2B/g')
wget $url
dpkg -x $2 ${CPP11_TOOLCHAIN}
fi
}
local PPA LLVM_DIST
PPA="https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+files"
# http://llvm.org/apt/precise/dists/llvm-toolchain-${release}-3.5/main/binary-amd64/Packages
# TODO: cache these for faster downloads
LLVM_DIST="http://llvm.org/apt/${codename}/pool/main/l/llvm-toolchain-3.5"
if [[ $codename == "precise" ]]; then
dpack ${LLVM_DIST} clang-3.5_3.5~svn217304-1~exp1_amd64.deb &
dpack ${LLVM_DIST} libllvm3.5_3.5~svn217304-1~exp1_amd64.deb &
dpack ${LLVM_DIST} libclang-common-3.5-dev_3.5~svn215019-1~exp1_amd64.deb &
dpack ${PPA} libstdc++6_4.8.1-2ubuntu1~${release}_amd64.deb &
dpack ${PPA} libstdc++-4.8-dev_4.8.1-2ubuntu1~${release}_amd64.deb &
dpack ${PPA} libgcc-4.8-dev_4.8.1-2ubuntu1~${release}_amd64.deb &
wait
elif [[ $codename == "trusty" ]]; then
dpack ${LLVM_DIST} clang-3.5_3.5~svn215019-1~exp1_amd64.deb &
dpack ${LLVM_DIST} libllvm3.5_3.5~svn215019-1~exp1_amd64.deb &
dpack ${LLVM_DIST} libclang-common-3.5-dev_3.5.1~svn225255-1~exp1_amd64.deb &
wait
else
echo "unsupported distro: $codename $release"
exit 1
fi
export CPLUS_INCLUDE_PATH="${CPP11_TOOLCHAIN}/usr/include/c++/4.8:${CPP11_TOOLCHAIN}/usr/include/x86_64-linux-gnu/c++/4.8:${CPLUS_INCLUDE_PATH:-}"
export LD_LIBRARY_PATH="${CPP11_TOOLCHAIN}/usr/lib/x86_64-linux-gnu:${CPP11_TOOLCHAIN}/usr/lib/gcc/x86_64-linux-gnu/4.8/:${LD_LIBRARY_PATH:-}"
export LIBRARY_PATH="${LD_LIBRARY_PATH}:${LIBRARY_PATH:-}"
export PATH="${CPP11_TOOLCHAIN}/usr/bin":${PATH}
export CXX="${CPP11_TOOLCHAIN}/usr/bin/clang++-3.5"
export CC="${CPP11_TOOLCHAIN}/usr/bin/clang-3.5"
set +e
else
echo "Nothing to be done: this script only bootstraps a c++11 toolchain for linux"
fi
}
main $@