Advertisement
Guest User

Untitled

a guest
Aug 16th, 2014
611
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.00 KB | None | 0 0
  1. #! /bin/sh
  2.  
  3. # Clang 3.4.2 Recipe
  4. #  run from a scratch directory
  5.  
  6. # LLDB does not compile on OS X (how ironic). On Linux, be
  7. #   sure to have swig, python-dev and libedit-dev installed.
  8.  
  9. # For LLDB and the missing makefile, see
  10. #   http://stackoverflow.com/questions/24923650/undefined-symbols-systemruntimemacosxinitialize-and-systemruntimemacosxtermi
  11.  
  12. # Fetch
  13.  
  14. if [ ! -e llvm-3.4.2.src.tar.gz ]; then
  15.   wget http://llvm.org/releases/3.4.2/llvm-3.4.2.src.tar.gz
  16. fi
  17.  
  18. if [ ! -e cfe-3.4.2.src.tar.gz ]; then
  19.   wget http://llvm.org/releases/3.4.2/cfe-3.4.2.src.tar.gz
  20. fi
  21.  
  22. if [ ! -e compiler-rt-3.4.src.tar.gz ]; then
  23.   wget http://llvm.org/releases/3.4/compiler-rt-3.4.src.tar.gz
  24. fi
  25.  
  26. if [ ! -e lldb-3.4.src.tar.gz ]; then
  27.   wget http://llvm.org/releases/3.4/lldb-3.4.src.tar.gz
  28. fi
  29.  
  30. if [ ! -e clang-tools-extra-3.4.src.tar.gz ]; then
  31.   wget http://llvm.org/releases/3.4/clang-tools-extra-3.4.src.tar.gz
  32. fi
  33.  
  34. # Cleanup
  35.  
  36. rm -rf llvm build
  37.  
  38. # LLVM
  39. tar xvf llvm-3.4.2.src.tar.gz
  40. mv llvm-3.4.2.src/ llvm
  41.  
  42. # Clang Front End
  43. cd llvm/tools
  44. tar xvf ../../cfe-3.4.2.src.tar.gz
  45. mv cfe-3.4.2.src clang
  46. cd ../../
  47.  
  48. # LLDB
  49. cd llvm/tools
  50. tar xvf ../../lldb-3.4.src.tar.gz
  51. mv lldb-3.4/ lldb
  52. cd ../../
  53.  
  54. # Extra Tools
  55. cd llvm/tools/clang/tools/
  56. tar xvf ../../../../clang-tools-extra-3.4.src.tar.gz
  57. mv clang-tools-extra-3.4.src extra
  58. cd ../../../../
  59.  
  60. # Compiler RT
  61. cd llvm/projects
  62. tar xvf ../../compiler-rt-3.4.src.tar.gz
  63. mv compiler-rt-3.4/ compiler-rt
  64. cd ../../
  65.  
  66. # Determine if Apple
  67. IS_DARWIN=`uname -s | egrep -i -c "Darwin"`
  68. if [ $IS_DARWIN -ne 0 ]; then
  69.   OTHER_OPTIONS=" --enable-libcpp"
  70. fi
  71.  
  72. # Fix LLDB on Apple
  73. if [ $IS_DARWIN -ne 0 ]; then
  74.   cp Missing-Makefile llvm/tools/lldb/source/Plugins/SystemRuntime/MacOSX/Makefile
  75.   chmod a+x llvm/tools/lldb/source/Plugins/SystemRuntime/MacOSX/Makefile
  76.  
  77.   COUNT=`cat llvm/tools/lldb/lib/Makefile | egrep -i -c lldbPluginSystemRuntimeMacOSX`
  78.  
  79.   if [ $COUNT -eq 0 ]; then
  80.     echo "Patching makefile with lldbPluginSystemRuntimeMacOSX"
  81.     sed -i '' "s/lldbPluginProcessMachCore.a/lldbPluginProcessMachCore.a lldbPluginSystemRuntimeMacOSX.a/" llvm/tools/lldb/lib/Makefile
  82.     sed -i '' '\|DIRS += Process/mach-core|a\
  83.    DIRS += SystemRuntime/MacOSX\
  84.    ' llvm/tools/lldb/source/Plugins/Makefile
  85.   else
  86.     echo "Makefile has lldbPluginSystemRuntimeMacOSX recipe"
  87.   fi
  88. fi
  89.  
  90. # Build
  91. mkdir -p build
  92. cd build
  93. ../llvm/configure --enable-optimized --enable-cxx11 $OTHER_OPTIONS --prefix=/usr/local
  94. make -j2
  95. sudo make install
  96.  
  97. # ****************************************
  98. # ****************************************
  99.  
  100. # Install does not install scan-build and scan-view
  101. # Perform the copy, and/or put them on-path
  102.  
  103. #sudo cp llvm/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py /usr/local/bin
  104. #sudo 2to3 -w /usr/local/bin/asan_symbolize.py
  105.  
  106. #sudo mkdir /usr/local/bin/scan-build
  107. #sudo cp -r llvm/tools/clang/tools/scan-build /usr/local/bin
  108.  
  109. #sudo mkdir /usr/local/bin/scan-view
  110. #sudo cp -r llvm/tools/clang/tools/scan-view /usr/local/bin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement