summaryrefslogtreecommitdiff
path: root/devel/llvm/MAKEPKG
diff options
context:
space:
mode:
Diffstat (limited to 'devel/llvm/MAKEPKG')
-rw-r--r--devel/llvm/MAKEPKG94
1 files changed, 94 insertions, 0 deletions
diff --git a/devel/llvm/MAKEPKG b/devel/llvm/MAKEPKG
new file mode 100644
index 0000000..528bffd
--- /dev/null
+++ b/devel/llvm/MAKEPKG
@@ -0,0 +1,94 @@
+#!/bin/mkpkg
+# description: Complete LLVM toolchain (clang, lld, compiler-rt, libc++, libunwind, clang-tools-extra)
+# url: https://llvm.org/
+
+name=llvm
+version=23.1.1
+release=1
+provides=(llvm clang compiler-rt libunwind lld libcxx clang-extra-tools)
+depends=(libffi zlib zstd libedit ncurses libxml2)
+makedeps=(cmake ninja python3)
+source=(https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-project-$version.src.tar.xz)
+
+sha256sums=(
+ "ebe9be46fe8756d58c5b198ffad0fa2a766257add81a4dc52179bfacc7888ee6"
+)
+
+build() {
+ mv llvm-project-$version.src llvm-project
+
+ cmake -S llvm-project/llvm -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_C_COMPILER=clang \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DLLVM_ENABLE_LLD=ON \
+ -DLLVM_ENABLE_PROJECTS="clang;lld;clang-tools-extra" \
+ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxxabi;libcxx" \
+ -DLLVM_TARGETS_TO_BUILD="X86;AMDGPU" \
+ -DLLVM_HOST_TRIPLE=x86_64-unknown-linux-musl \
+ -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-unknown-linux-musl \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_FFI=ON \
+ -DLLVM_ENABLE_ZLIB=ON \
+ -DLLVM_ENABLE_ZSTD=ON \
+ -DLLVM_ENABLE_LIBEDIT=ON \
+ -DLLVM_BUILD_LLVM_DYLIB=ON \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_INSTALL_UTILS=ON \
+ -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_INCLUDE_BENCHMARKS=OFF \
+ -DLLVM_BUILD_EXAMPLES=OFF \
+ -DCLANG_BUILD_EXAMPLES=OFF \
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \
+ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \
+ -DCLANG_DEFAULT_RTLIB=compiler-rt \
+ -DCLANG_DEFAULT_UNWINDLIB=libunwind \
+ -DCLANG_DEFAULT_LINKER=lld \
+ -DCLANG_LINK_CLANG_DYLIB=ON \
+ -DLIBCLANG_BUILD_STATIC=ON \
+ -DCLANG_TIDY_ENABLE_STATIC_ANALYZER=OFF \
+ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
+ -DCOMPILER_RT_BUILD_BUILTINS=ON \
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF \
+ -DCOMPILER_RT_BUILD_XRAY=OFF \
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
+ -DCOMPILER_RT_BUILD_PROFILE=OFF \
+ -DCOMPILER_RT_BUILD_MEMPROF=OFF \
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \
+ -DCOMPILER_RT_BUILD_ORC=OFF \
+ -DLIBCXX_HAS_MUSL_LIBC=ON \
+ -DLIBCXX_HAS_ATOMIC_LIB=OFF \
+ -DLIBCXX_USE_COMPILER_RT=ON \
+ -DLIBCXX_CXX_ABI=libcxxabi \
+ -DLIBCXX_ENABLE_STATIC=ON \
+ -DLIBCXX_ENABLE_SHARED=ON \
+ -DLIBCXXABI_USE_COMPILER_RT=ON \
+ -DLIBCXXABI_USE_LLVM_UNWINDER=ON \
+ -DLIBCXXABI_ENABLE_SHARED=ON \
+ -DLIBUNWIND_USE_COMPILER_RT=ON \
+ -DLIBUNWIND_ENABLE_SHARED=ON
+
+ ninja -C build
+ DESTDIR=$PKG ninja -C build install
+
+ printf '%s\n' 'INPUT(libclang_rt.builtins.a)' > $PKG/usr/lib/libatomic.a
+ printf '%s\n' 'INPUT(-lclang_rt.builtins)' > $PKG/usr/lib/libatomic.so
+
+ ln -sf clang $PKG/usr/bin/cc
+ ln -sf clang++ $PKG/usr/bin/c++
+ ln -sf lld $PKG/usr/bin/ld
+ ln -sf clang $PKG/usr/bin/ccp
+ ln -sf clang/${version%%.*}/lib/linux/libclang_rt.builtins-x86_64.a \
+ $PKG/usr/lib/libclang_rt.builtins.a
+}
+
+signify() {
+ untrusted comment: public key
+ RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3
+}
+
+# vim: filetype=sh
+