1*4d6fc14bSjoerg#!/usr/bin/env bash 2*4d6fc14bSjoerg 3*4d6fc14bSjoerg# Install a newer CMake version 4*4d6fc14bSjoergcurl -sSL https://cmake.org/files/v3.6/cmake-3.6.1-Linux-x86_64.sh -o install-cmake.sh 5*4d6fc14bSjoergchmod +x install-cmake.sh 6*4d6fc14bSjoergsudo ./install-cmake.sh --prefix=/usr/local --skip-license 7*4d6fc14bSjoerg 8*4d6fc14bSjoerg# Checkout LLVM sources 9*4d6fc14bSjoerggit clone --depth=1 https://github.com/llvm-mirror/llvm.git llvm-source 10*4d6fc14bSjoerggit clone --depth=1 https://github.com/llvm-mirror/libcxx.git llvm-source/projects/libcxx 11*4d6fc14bSjoerggit clone --depth=1 https://github.com/llvm-mirror/libcxxabi.git llvm-source/projects/libcxxabi 12*4d6fc14bSjoerg 13*4d6fc14bSjoerg# Setup libc++ options 14*4d6fc14bSjoergif [ -z "$BUILD_32_BITS" ]; then 15*4d6fc14bSjoerg export BUILD_32_BITS=OFF && echo disabling 32 bit build 16*4d6fc14bSjoergfi 17*4d6fc14bSjoerg 18*4d6fc14bSjoerg# Build and install libc++ (Use unstable ABI for better sanitizer coverage) 19*4d6fc14bSjoergmkdir llvm-build && cd llvm-build 20*4d6fc14bSjoergcmake -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${COMPILER} \ 21*4d6fc14bSjoerg -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr \ 22*4d6fc14bSjoerg -DLIBCXX_ABI_UNSTABLE=ON \ 23*4d6fc14bSjoerg -DLLVM_USE_SANITIZER=${LIBCXX_SANITIZER} \ 24*4d6fc14bSjoerg -DLLVM_BUILD_32_BITS=${BUILD_32_BITS} \ 25*4d6fc14bSjoerg ../llvm-source 26*4d6fc14bSjoergmake cxx -j2 27*4d6fc14bSjoergsudo make install-cxxabi install-cxx 28*4d6fc14bSjoergcd ../ 29