1fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregor#!/bin/bash
2fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregor
3fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregorif [ -d "llvm-build" ]; then
4fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregor    echo "Using existing 'llvm-build' directory..."    
5fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregorelse
6fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregor    mkdir llvm-build
7fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregorfi
8fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregor
9fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregorcd llvm-build
10fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregor
11fc8ea23eb6cbaaa5046f2abb4c033e24c8659efdDouglas Gregorif [ -d "llvm" ]; then
12648220ed00711a0fb8ea4a1ab6896a4ee63d8fc5Douglas Gregor    echo "Using existing 'llvm' directory..."
13648220ed00711a0fb8ea4a1ab6896a4ee63d8fc5Douglas Gregorelse
14648220ed00711a0fb8ea4a1ab6896a4ee63d8fc5Douglas Gregor    svn co --revision 176809 http://llvm.org/svn/llvm-project/llvm/trunk llvm
15648220ed00711a0fb8ea4a1ab6896a4ee63d8fc5Douglas Gregor    ( cd llvm/tools ; svn co --revision 176809 http://llvm.org/svn/llvm-project/cfe/trunk clang )
16648220ed00711a0fb8ea4a1ab6896a4ee63d8fc5Douglas Gregorfi
17c7b5ed6da7410849b51ba9a9ea04d2cc7b720f48Douglas Gregor
18c7b5ed6da7410849b51ba9a9ea04d2cc7b720f48Douglas Gregorif [ ! -d "build" ]; then
19c7b5ed6da7410849b51ba9a9ea04d2cc7b720f48Douglas Gregor    mkdir build
20c7b5ed6da7410849b51ba9a9ea04d2cc7b720f48Douglas Gregor    cd build
21c7b5ed6da7410849b51ba9a9ea04d2cc7b720f48Douglas Gregor    ../llvm/configure --enable-targets=x86_64,arm --build=x86_64-apple-darwin10 --disable-optimized --disable-assertions --enable-libcpp
22648220ed00711a0fb8ea4a1ab6896a4ee63d8fc5Douglas Gregor    make -j8 clang-only DEBUG_SYMBOLS=1
23648220ed00711a0fb8ea4a1ab6896a4ee63d8fc5Douglas Gregor    rm -rf lib projects runtime unittests utils config.*
24c7b5ed6da7410849b51ba9a9ea04d2cc7b720f48Douglas Gregor    ( cd ./Debug/bin ; rm -rf ll* clang-check clang-tblgen count diagtool fpcmp macho-dump not opt yaml2obj FileCheck FileUpdate arcmt-test c-arcmt-test c-index-test bugpoint )
258f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar    ( cd ./tools ; rm -rf ll* clang-check clang-tblgen count diagtool fpcmp lto macho-dump not opt yaml2obj FileCheck FileUpdate arcmt-test c-arcmt-test c-index-test bugpoint )
26fbd84caf62a21afa4db5f730e2e2603ead17bb65Ted Kremenek    ( cd ./tools/clang ; rm -rf lib unittests utils )
278f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar    ( cd ./tools/clang/tools ; rm -rf arcmt-test c-arcmt-test c-index-test clang-check diagtool libclang )
28fbd84caf62a21afa4db5f730e2e2603ead17bb65Ted Kremenek    ( cd ../llvm ; rm -rf cmake configure docs examples projects *.txt *.TXT autoconf bindings test unittests utils ; find . -type d -name .svn -print0 | xargs -0 rm -rf )
29fbd84caf62a21afa4db5f730e2e2603ead17bb65Ted Kremenek    ( cd ../llvm/tools ; rm -rf *.txt bugpoint bugpoint-passes ll* lto macho-dump opt gold )
308f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbarfi
31fbd84caf62a21afa4db5f730e2e2603ead17bb65Ted Kremenek
32fbd84caf62a21afa4db5f730e2e2603ead17bb65Ted Kremenek
338f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar
34fbd84caf62a21afa4db5f730e2e2603ead17bb65Ted Kremenek