xref: /netbsd-src/external/apache2/llvm/dist/libcxx/utils/google-benchmark/.travis-libcxx-setup.sh (revision 4d6fc14bc9b0c5bf3e30be318c143ee82cadd108)
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