build-lldb-llvm-clang [plain text]
#!/bin/sh -x
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
svn co -q -r $LLVM_REVISION http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm
cd tools
svn co -q -r $CLANG_REVISION http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ..
for patch_file in ../scripts/llvm.*.diff
do
echo "Applying patch from '$patch_file'"
patch -p0 < "$patch_file"
done
cd tools/clang
for patch_file in ../../../scripts/clang.*.diff
do
echo "Applying patch from '$patch_file'"
patch -p0 < "$patch_file"
done
cd ../../..
pwd
if [ "$LLVM_CONFIGURATION" = "Debug" ]; then
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
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
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