blob: 17c7e5475bce5436f4e550b74d01c8e974736ab2 [file] [log] [blame]
Sean Callanan93a82e32011-12-17 02:00:57 +00001#!/bin/sh -x
2
3# Usage:
Greg Clayton2757c342011-12-28 22:34:32 +00004# build-lldb-llvm-clang <revision> [Debug|Release|BuildAndIntegration]
5# build-lldb-llvm-clang <llvm-revision> <clang-revision> [Debug|Release|BuildAndIntegration]
Sean Callanan93a82e32011-12-17 02:00:57 +00006
7LLVM_REVISION=$1
8CLANG_REVISION=$2
9LLVM_CONFIGURATION=$3
10
11if [ "$LLVM_REVISION" = "" ]; then
Greg Clayton2757c342011-12-28 22:34:32 +000012 echo "Usage:\n build-lldb-llvm-clang <llvm-revision> [<clang-revision> Debug|Release||BuildAndIntegration]"
Sean Callanan93a82e32011-12-17 02:00:57 +000013 exit 1
14fi
15
16if [ "$CLANG_REVISION" = "" ]; then
17 $CLANG_REVISION = $LLVM_REVISION
18fi
19
20# Checkout LLVM
21svn co -q -r $LLVM_REVISION http://llvm.org/svn/llvm-project/llvm/trunk llvm
22
23# change directory to "./llvm"
24cd llvm
25rm -rf test
26
27# Checkout Clang
28# change directory to "./llvm/tools"
29cd tools
30svn co -q -r $CLANG_REVISION http://llvm.org/svn/llvm-project/cfe/trunk clang
31rm -rf clang/test
32
33# change directory to "./llvm"
34cd ..
35for patch_file in ../scripts/llvm.*.diff
36do
37 echo "Applying patch from '$patch_file'"
38 patch -p0 < "$patch_file"
39done
40
41# change directory to "./llvm/tools/clang"
42cd tools/clang
43for patch_file in ../../../scripts/clang.*.diff
44do
45 echo "Applying patch from '$patch_file'"
46 patch -p0 < "$patch_file"
47done
48
49# change directory to "./"
50cd ../../..
51pwd
52
53if [ "$LLVM_CONFIGURATION" = "Debug" ]; then
54 # Configure "Debug+Asserts" build
55 mkdir llvm-debug
56 cd llvm-debug
57 ../llvm/configure --enable-targets=x86_64,arm
58 make -j8 clang-only VERBOSE=1 PROJECT_NAME='llvm'
59 make -j8 tools-only VERBOSE=1 PROJECT_NAME='llvm' EDIS_VERSION=1
60elif [ "$LLVM_CONFIGURATION" = "Release" ]; then
61 # Configure "Release" build
62 mkdir llvm-release
63 cd llvm-release
64 ../llvm/configure --enable-targets=x86_64,arm --enable-optimized --disable-assertions
65 make -j8 clang-only VERBOSE=1 PROJECT_NAME='llvm'
66 make -j8 tools-only VERBOSE=1 PROJECT_NAME='llvm' EDIS_VERSION=1
67elif [ "$LLVM_CONFIGURATION" = "BuildAndIntegration" ]; then
68 # Configure "BuildAndIntegration" build
69 rm -rf ./scripts/*.diff
70else
71 echo "checked out llvm (revision $LLVM_REVISION) and clang (revision $CLANG_REVISION)."
72 exit 0
73fi