Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/sh
- # Clang 3.4.2 Recipe
- # run from a scratch directory
- # LLDB does not compile on OS X (how ironic). On Linux, be
- # sure to have swig, python-dev and libedit-dev installed.
- # For LLDB and the missing makefile, see
- # http://stackoverflow.com/questions/24923650/undefined-symbols-systemruntimemacosxinitialize-and-systemruntimemacosxtermi
- # Fetch
- if [ ! -e llvm-3.4.2.src.tar.gz ]; then
- wget http://llvm.org/releases/3.4.2/llvm-3.4.2.src.tar.gz
- fi
- if [ ! -e cfe-3.4.2.src.tar.gz ]; then
- wget http://llvm.org/releases/3.4.2/cfe-3.4.2.src.tar.gz
- fi
- if [ ! -e compiler-rt-3.4.src.tar.gz ]; then
- wget http://llvm.org/releases/3.4/compiler-rt-3.4.src.tar.gz
- fi
- if [ ! -e lldb-3.4.src.tar.gz ]; then
- wget http://llvm.org/releases/3.4/lldb-3.4.src.tar.gz
- fi
- if [ ! -e clang-tools-extra-3.4.src.tar.gz ]; then
- wget http://llvm.org/releases/3.4/clang-tools-extra-3.4.src.tar.gz
- fi
- # Cleanup
- rm -rf llvm build
- # LLVM
- tar xvf llvm-3.4.2.src.tar.gz
- mv llvm-3.4.2.src/ llvm
- # Clang Front End
- cd llvm/tools
- tar xvf ../../cfe-3.4.2.src.tar.gz
- mv cfe-3.4.2.src clang
- cd ../../
- # LLDB
- cd llvm/tools
- tar xvf ../../lldb-3.4.src.tar.gz
- mv lldb-3.4/ lldb
- cd ../../
- # Extra Tools
- cd llvm/tools/clang/tools/
- tar xvf ../../../../clang-tools-extra-3.4.src.tar.gz
- mv clang-tools-extra-3.4.src extra
- cd ../../../../
- # Compiler RT
- cd llvm/projects
- tar xvf ../../compiler-rt-3.4.src.tar.gz
- mv compiler-rt-3.4/ compiler-rt
- cd ../../
- # Determine if Apple
- IS_DARWIN=`uname -s | egrep -i -c "Darwin"`
- if [ $IS_DARWIN -ne 0 ]; then
- OTHER_OPTIONS=" --enable-libcpp"
- fi
- # Fix LLDB on Apple
- if [ $IS_DARWIN -ne 0 ]; then
- cp Missing-Makefile llvm/tools/lldb/source/Plugins/SystemRuntime/MacOSX/Makefile
- chmod a+x llvm/tools/lldb/source/Plugins/SystemRuntime/MacOSX/Makefile
- COUNT=`cat llvm/tools/lldb/lib/Makefile | egrep -i -c lldbPluginSystemRuntimeMacOSX`
- if [ $COUNT -eq 0 ]; then
- echo "Patching makefile with lldbPluginSystemRuntimeMacOSX"
- sed -i '' "s/lldbPluginProcessMachCore.a/lldbPluginProcessMachCore.a lldbPluginSystemRuntimeMacOSX.a/" llvm/tools/lldb/lib/Makefile
- sed -i '' '\|DIRS += Process/mach-core|a\
- DIRS += SystemRuntime/MacOSX\
- ' llvm/tools/lldb/source/Plugins/Makefile
- else
- echo "Makefile has lldbPluginSystemRuntimeMacOSX recipe"
- fi
- fi
- # Build
- mkdir -p build
- cd build
- ../llvm/configure --enable-optimized --enable-cxx11 $OTHER_OPTIONS --prefix=/usr/local
- make -j2
- sudo make install
- # ****************************************
- # ****************************************
- # Install does not install scan-build and scan-view
- # Perform the copy, and/or put them on-path
- #sudo cp llvm/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py /usr/local/bin
- #sudo 2to3 -w /usr/local/bin/asan_symbolize.py
- #sudo mkdir /usr/local/bin/scan-build
- #sudo cp -r llvm/tools/clang/tools/scan-build /usr/local/bin
- #sudo mkdir /usr/local/bin/scan-view
- #sudo cp -r llvm/tools/clang/tools/scan-view /usr/local/bin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement