Guest User

Clang 3.4.2 Recipe (Final)

a guest
Aug 17th, 2014
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.27 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|lldbPluginSystemRuntimeMacOSX.a lldbPluginProcessMachCore.a|" llvm/tools/lldb/lib/Makefile
  82.   else
  83.     echo "Makefile has lldbPluginSystemRuntimeMacOSX recipe"
  84.   fi
  85.  
  86.   COUNT=`cat llvm/tools/lldb/source/Plugins/Makefile | egrep -i -c SystemRuntime/MacOSX`
  87.  
  88.   if [ $COUNT -eq 0 ]; then
  89.     echo "Patching makefile with SystemRuntime/MacOSX"
  90.     sed -i '' "s|Process/mach-core|Process/mach-core SystemRuntime/MacOSX|" llvm/tools/lldb/source/Plugins/Makefile
  91.   else
  92.     echo "Makefile has SystemRuntime/MacOSX recipe"
  93.   fi
  94.  
  95. fi
  96.  
  97. # Build
  98. mkdir -p build
  99. cd build
  100. ../llvm/configure --enable-optimized --enable-cxx11 $OTHER_OPTIONS --prefix=/usr/local
  101. make -j2
  102.  
  103. RET=$?
  104. if [ $RET -eq 0 ];then
  105.   sudo make install
  106. fi
  107.  
  108. # ****************************************
  109. # ****************************************
  110.  
  111. # Install does not install scan-build and scan-view
  112. # Perform the copy, and/or put them on-path
  113.  
  114. #sudo cp llvm/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py /usr/local/bin
  115. #sudo 2to3 -w /usr/local/bin/asan_symbolize.py
  116.  
  117. #sudo mkdir /usr/local/bin/scan-build
  118. #sudo cp -r llvm/tools/clang/tools/scan-build /usr/local/bin
  119.  
  120. #sudo mkdir /usr/local/bin/scan-view
  121. #sudo cp -r llvm/tools/clang/tools/scan-view /usr/local/bin
Advertisement
Add Comment
Please, Sign In to add comment