summaryrefslogtreecommitdiff
path: root/devel/llvm/MAKEPKG
blob: 528bffd31cf7383cd4f19f42e919673176106b51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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