Skip to content

Instantly share code, notes, and snippets.

@Chaz6
Last active April 14, 2024 15:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Chaz6/7d76bd700e93192b462b000b938477be to your computer and use it in GitHub Desktop.
Save Chaz6/7d76bd700e93192b462b000b938477be to your computer and use it in GitHub Desktop.
build-llvm-on-almalinux.bash
#!/usr/bin/bash
LLVM_VERSION=18.1.3
LLVM_VERSION_BETA=
PREFIX=$HOME
if [ -n "$LLVM_VERSION_BETA" ]; then
FILENAME="llvm-project-${LLVM_VERSION}${LLVM_VERSION_BETA}.src.tar.xz"
INSTALL_PREFIX="$PREFIX/.local/local/llvm-${LLVM_VERSION}${LLVM_VERSION_BETA}"
EXTRACTED_PATH="llvm-project-${LLVM_VERSION}${LLVM_VERSION_BETA}.src"
LLVM_DOWNLOAD_URL=https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}-${LLVM_VERSION_BETA}/${FILENAME}
else
FILENAME="llvm-project-${LLVM_VERSION}.src.tar.xz"
LLVM_DOWNLOAD_URL=https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/${FILENAME}
INSTALL_PREFIX="$PREFIX/.local/local/llvm-${LLVM_VERSION}"
EXTRACTED_PATH="llvm-project-${LLVM_VERSION}.src"
fi
(
cd "$PREFIX" || exit
wget -4 $LLVM_DOWNLOAD_URL &&
tar xvf "${FILENAME}" &&
cd "${EXTRACTED_PATH}" &&
cmake -B build -S llvm \
-DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="$PREFIX/.local/local/llvm/bin/clang" \
-DCMAKE_CXX_COMPILER="$PREFIX/.local/local/llvm/bin/clang++" \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;compiler-rt" \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
-DLLVM_BUILD_EXAMPLES:BOOL=OFF \
-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \
-DLLVM_INCLUDE_TESTS:BOOL=OFF \
-DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF \
-DLLVM_ENABLE_DOXYGEN:BOOL=OFF \
-DLLVM_ENABLE_OCAMLDOC:BOOL=OFF \
-DLLVM_ENABLE_SPHINX:BOOL=OFF \
-DLLVM_ENABLE_RTTI:BOOL=OFF \
-DLLVM_PARALLEL_LINK_JOBS=2 \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DLLVM_BUILD_TOOLS:BOOL=ON \
-DLLVM_ENABLE_ASSERTIONS:BOOL=OFF \
-DLLVM_OPTIMIZED_TABLEGEN:BOOL=ON \
-DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD:BOOL=ON \
-DCLANG_ENABLE_STATIC_ANALYZER:BOOL=ON \
-DCLANG_TOOL_CLANG_CHECK_BUILD:BOOL=ON \
-DCLANG_PLUGIN_SUPPORT:BOOL=ON \
-DCLANG_TOOL_CLANG_FORMAT_BUILD:BOOL=ON \
-DLLVM_ENABLE_DOXYGEN=NO \
-DCLANG_TOOL_CLANG_FUZZER_BUILD:BOOL=ON \
-G Ninja &&
cd build &&
ninja install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment