#!/bin/bash # install-llvm.sh # Copyright (c) 2010 Ben Karel. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE.txt file or at http://eschew.org/txt/bsd.txt # This file was found at http://foster.googlecode.com/hg/scripts and updated by Richard Joseph, Nov 2012 #The current LLVM and CLANG version can be found at http://llvm.org/releases/download.html LLVM_VERSION=3.4 LLVM_ROOT=${HOME}/llvm #Resolve LLVM archive naming convention if [ `echo "$LLVM_VERSION >= 3.0" | bc` ]; then downloadSrcSuffixPart=src tarGzipSuffix="tar.gz" LLVM_VERSION_PLUS_SRC_SUFFIX_PART="${LLVM_VERSION}.${downloadSrcSuffixPart}" else downloadSrcSuffixPart= tarGzipSuffix="targz" LLVM_VERSION_PLUS_SRC_SUFFIX_PART="${LLVM_VERSION}" fi # invoke from LLVM_ROOT download_source() { pushd ${LLVM_ROOT}/src echo "downloading llvm..." wget http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION_PLUS_SRC_SUFFIX_PART}."${tarGzipSuffix}" echo "downloading clang..." wget http://llvm.org/releases/${LLVM_VERSION}/clang-${LLVM_VERSION_PLUS_SRC_SUFFIX_PART}."${tarGzipSuffix}" for tarball in *."${tarGzipSuffix}"; do echo "extracting $tarball..." tar xzf $tarball done rm *."${tarGzipSuffix}" mv clang-${LLVM_VERSION_PLUS_SRC_SUFFIX_PART} llvm-${LLVM_VERSION_PLUS_SRC_SUFFIX_PART}/tools/clang popd } # invoke from LLVM_ROOT build_source () { pushd ${LLVM_ROOT}/src/llvm-${LLVM_VERSION_PLUS_SRC_SUFFIX_PART} ./configure --prefix=${LLVM_ROOT}/${LLVM_VERSION} --enable-targets=host,cpp --enable-debug-symbols --enable-assertions --enable-optimized make make install popd } mkdir -p ${LLVM_ROOT} pushd ${LLVM_ROOT} mkdir -p src mkdir -p ${LLVM_VERSION} download_source build_source popd