summaryrefslogtreecommitdiff
path: root/scripts/build-lldb-llvm-clang
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build-lldb-llvm-clang')
-rwxr-xr-xscripts/build-lldb-llvm-clang74
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