#!/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 -p1 < "$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 -p1 < "$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
