.. index:: LLVM .. _LLVM: LLVM ==== Description ----------- The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. It includes compilers, debuggers, libraries and much more. User instructions ----------------- llvm (including the clang and clang++ compilers) is available via the modules system. To add it to your environment run: .. code-block:: bash $ module load llvm/4.0.1 Note that the llvm module includes the clang and clang++ compilers and the lldb debugger. Source ------ www.llvm.org License ------- UIUC (BSD-style) Admin notes ----------- The complete build takes a while and including everything in the right place is a little complicated. So I wrote a script to do everything necessary based on the guide at http://clang.llvm.org. Note swig and libxml2-dev must be installed. Note also the build requires several tens of GB of space. .. code-block:: bash #!/bin/bash llvm_release=4.0.1 install_dir="/common/debian/9.1/Core/llvm/llvm-${llvm_release}" tools="cfe lld lldb polly clang-tools-extra" projects="compiler-rt libcxx libcxxabi libunwind openmp test-suite" packages="llvm ${tools} ${projects}" # Download source files for package in ${packages}; do if [ ! -f "${package}-${llvm_release}.src.tar.xz" ]; then wget http://releases.llvm.org/${llvm_release}/${package}-${llvm_release}.src.tar.xz if [ ! -f "${package}-${llvm_release}.src.tar.xz" ]; then echo Error downloading. exit 1 fi fi done # unpack base tar -xf llvm-${llvm_release}.src.tar.xz # upack tools cd llvm-${llvm_release}.src/tools for tool in ${tools}; do tar --transform "s/-${llvm_release}.src//" -xf ../../${tool}-${llvm_release}.src.tar.xz done mv cfe clang mv clang-tools-extra clang/tools/extra # unpack projects cd ../projects for project in ${projects}; do tar --transform "s/-${llvm_release}.src//" -xf ../../${project}-${llvm_release}.src.tar.xz done # cmake in a build-dir cd ../../ mkdir "build-${llvm_release}" cd "build-${llvm_release}" cmake -DCMAKE_INSTALL_PREFIX=${install_dir} ../llvm-${llvm_release}.src make make install