diff options
author | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-09-14 14:23:15 +0100 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-09-15 00:17:10 +0100 |
commit | 44d0d9bc1f93da603b8e14c9499e086e220f4694 (patch) | |
tree | dc268e235a0642aeb3a3a4c5776abb87e4c4a136 | |
parent | 9dc94bf1f28eb64b2c02172c47b175c75757699f (diff) | |
download | klee-44d0d9bc1f93da603b8e14c9499e086e220f4694.tar.gz |
Clean up travis build scripts a little.
-rw-r--r-- | .travis.yml | 42 | ||||
-rwxr-xr-x | .travis/install-llvm-and-runtime-compiler.sh | 13 | ||||
-rwxr-xr-x | .travis/klee.sh | 11 |
3 files changed, 43 insertions, 23 deletions
diff --git a/.travis.yml b/.travis.yml index 2675e3a8..0a1b4269 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,9 @@ env: ########################################################################### # Configurations # - # Each line in the "env" section represents a set of environmental variables - # pass to a build. Thus each line represents a different build + # Each line in the "env" section represents a set of environment variables + # passed to a build. Thus each line represents a different build + # configuration. ########################################################################### # Check the matrix of: @@ -17,8 +18,8 @@ env: # with Asserts enabled. # FIXME: Enable when we want to test LLVM3.5 - #- LLVM_VERSION=3.5 STP_VERSION=UPSTREAM KLEE_UCLIBC=0 DISABLE_ASSERTIONS=1 ENABLE_OPTIMIZED=1 - #- LLVM_VERSION=3.5 STP_VERSION=UPSTREAM KLEE_UCLIBC=1 DISABLE_ASSERTIONS=1 ENABLE_OPTIMIZED=1 + #- LLVM_VERSION=3.5 STP_VERSION=UPSTREAM KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 + #- LLVM_VERSION=3.5 STP_VERSION=UPSTREAM KLEE_UCLIBC=1 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=3.4 STP_VERSION=UPSTREAM KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=3.4 STP_VERSION=UPSTREAM KLEE_UCLIBC=1 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=2.9 STP_VERSION=UPSTREAM KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 @@ -34,40 +35,51 @@ env: # FIXME: Do Debug+Asserts builds cache: apt before_install: - # Assume Travis image uses Ubuntu 12.04 LTS + ########################################################################### + # Set up the locations to get various packages from + # We assume the Travis image uses Ubuntu 12.04 LTS + ########################################################################### - sudo sh -c 'echo "deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main" >> /etc/apt/sources.list.d/llvm.list' - sudo sh -c 'echo "deb-src http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main" >> /etc/apt/sources.list.d/llvm.list' - sudo sh -c 'echo "deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.5 main" >> /etc/apt/sources.list.d/llvm.list' - sudo sh -c 'echo "deb-src http://llvm.org/apt/precise/ llvm-toolchain-precise-3.5 main" >> /etc/apt/sources.list.d/llvm.list' + # Needed for CMake - sudo add-apt-repository -y ppa:ubuntu-sdk-team/ppa + # Needed for new libstdc++ and gcc4.8 - sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test/ - wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add - - # Needed for new libstdc++ and gcc4.8 - sudo apt-get update + ########################################################################### + # Set up out of source build directory + ########################################################################### + - export KLEE_SRC=`pwd` + - cd ../ + - mkdir build + - cd build/ + - export BUILD_DIR=`pwd` + ########################################################################### + # Install stuff + ########################################################################### # FIXME: STP doesn't need everything from Boost! - sudo apt-get install gcc-4.8 g++-4.8 libcap-dev cmake libboost-all-dev # Make gcc4.8 the default gcc version - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20 - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20 - - sudo apt-get install llvm-${LLVM_VERSION} llvm-${LLVM_VERSION}-dev clang-3.4 - # Make Clang3.4 the default clang version (for building KLEE) + # Make Clang3.4 the default clang version + - sudo apt-get install clang-3.4 - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.4 20 - sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.4 20 + # Install LLVM and the LLVM bitcode compiler we require to build KLEE + - ${KLEE_SRC}/.travis/install-llvm-and-runtime-compiler.sh # Install lit (llvm-lit is not available) - sudo pip install lit - # Setup out of source build - - export KLEE_SRC=`pwd` - - cd ../ - - mkdir build - - cd build/ - - export BUILD_DIR=`pwd` # Build STP - mkdir stp - cd stp - ${KLEE_SRC}/.travis/stp.sh - cd ../ script: - # Get need utlities/libraries for testing KLEE + # Get needed utlities/libraries for testing KLEE - mkdir test-utils/ - cd test-utils/ - ${KLEE_SRC}/.travis/testing-utils.sh diff --git a/.travis/install-llvm-and-runtime-compiler.sh b/.travis/install-llvm-and-runtime-compiler.sh new file mode 100755 index 00000000..e1a17f6b --- /dev/null +++ b/.travis/install-llvm-and-runtime-compiler.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -ev + +sudo apt-get install llvm-${LLVM_VERSION} llvm-${LLVM_VERSION}-dev + +if [ "${LLVM_VERSION}" != "2.9" ]; then + sudo apt-get install llvm-${LLVM_VERSION}-tools clang-${LLVM_VERSION} +else + # Get llvm-gcc. We don't bother installing it + wget http://llvm.org/releases/2.9/llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 + tar -xjf llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 + mv llvm-gcc4.2-2.9-x86_64-linux llvm-gcc +fi diff --git a/.travis/klee.sh b/.travis/klee.sh index 9d96f6a2..faf3f5f5 100755 --- a/.travis/klee.sh +++ b/.travis/klee.sh @@ -2,9 +2,6 @@ # Make sure we exit if there is a failure set -e -# Travis doesn't seem to like this in the yaml file so put it here instead -[ "${LLVM_VERSION}" != "2.9" ] && sudo apt-get install llvm-${LLVM_VERSION}-tools clang-${LLVM_VERSION} - # Calculate LLVM branch name to retrieve missing files from SVN_BRANCH="release_$( echo ${LLVM_VERSION} | sed 's/\.//g')" @@ -15,11 +12,9 @@ if [ "${LLVM_VERSION}" != "2.9" ]; then KLEE_CC=/usr/bin/clang-${LLVM_VERSION} KLEE_CXX=/usr/bin/clang++-${LLVM_VERSION} else - # Just use pre-built llvm-gcc. - wget http://llvm.org/releases/2.9/llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 || exit - tar -xjf llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 - KLEE_CC=$(pwd)/llvm-gcc4.2-2.9-x86_64-linux/bin/llvm-gcc - KLEE_CXX=$(pwd)/llvm-gcc4.2-2.9-x86_64-linux/bin/llvm-g++ + # Just use pre-built llvm-gcc downloaded earlier + KLEE_CC=${BUILD_DIR}/llvm-gcc/bin/llvm-gcc + KLEE_CXX=${BUILD_DIR}/llvm-gcc/bin/llvm-g++ export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu |