diff options
Diffstat (limited to 'scripts/build-lldb-llvm-clang')
-rwxr-xr-x | scripts/build-lldb-llvm-clang | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/scripts/build-lldb-llvm-clang b/scripts/build-lldb-llvm-clang new file mode 100755 index 0000000000000..822e9944bf6a5 --- /dev/null +++ b/scripts/build-lldb-llvm-clang @@ -0,0 +1,74 @@ +#!/bin/sh -x + +# Usage: +# build-lldb-llvm-clang <revision> [Debug|Release|BuildAndIntegration] +# build-lldb-llvm-clang <llvm-revision> <clang-revision> [Debug|Release|BuildAndIntegration] + +LLVM_REVISION=$1 +CLANG_REVISION=$2 +LLVM_CONFIGURATION=$3 + +if [ "$LLVM_REVISION" = "" ]; then + echo "Usage:\n build-lldb-llvm-clang <llvm-revision> [<clang-revision> Debug|Release||BuildAndIntegration]" + exit 1 +fi + +if [ "$CLANG_REVISION" = "" ]; then + $CLANG_REVISION = $LLVM_REVISION +fi + +# Checkout LLVM +svn co -q -r $LLVM_REVISION http://llvm.org/svn/llvm-project/llvm/trunk llvm + +# change directory to "./llvm" +cd llvm + +# Checkout Clang +# change directory to "./llvm/tools" +cd tools +svn co -q -r $CLANG_REVISION http://llvm.org/svn/llvm-project/cfe/trunk clang + +# change directory to "./llvm" +cd .. +for patch_file in ../scripts/llvm.*.diff +do + echo "Applying patch from '$patch_file'" + patch -p0 < "$patch_file" +done + +# change directory to "./llvm/tools/clang" +cd tools/clang +for patch_file in ../../../scripts/clang.*.diff +do + echo "Applying patch from '$patch_file'" + patch -p0 < "$patch_file" +done + +# change directory to "./" +cd ../../.. +pwd + +if [ "$LLVM_CONFIGURATION" = "Debug" ]; then + # Configure "Debug+Asserts" build + mkdir llvm-debug + cd llvm-debug + ../llvm/configure --enable-targets=x86_64,arm + make -j8 clang-only VERBOSE=1 PROJECT_NAME='llvm' + make -j8 tools-only VERBOSE=1 PROJECT_NAME='llvm' EDIS_VERSION=1 +elif [ "$LLVM_CONFIGURATION" = "Release" ]; then + # Configure "Release" build + mkdir llvm-release + cd llvm-release + ../llvm/configure --enable-targets=x86_64,arm --enable-optimized --disable-assertions + make -j8 clang-only VERBOSE=1 PROJECT_NAME='llvm' + make -j8 tools-only VERBOSE=1 PROJECT_NAME='llvm' EDIS_VERSION=1 +elif [ "$LLVM_CONFIGURATION" = "BuildAndIntegration" ]; then + # Don't configure or build for "BuildAndIntegration", this configuration + # is a preparation step for a build submission + + # Remove all patches, and the llvm and clang "test" directories + rm -rf ./scripts/*.diff ./llvm/test ./llvm/tools/clang/test +else + echo "checked out llvm (revision $LLVM_REVISION) and clang (revision $CLANG_REVISION)." + exit 0 +fi |