Last active
December 3, 2022 22:25
-
-
Save sixman9/4141919 to your computer and use it in GitHub Desktop.
Bash script to download and build LLVM and Clang
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment