* manually add pygments hatchling DEP and update .cache
[t2sde.git] / package / develop / llvm / llvm.conf
blob83a6ad697c06875545e64fb23edbd5e3acd5c6a2
1 # --- T2-COPYRIGHT-NOTE-BEGIN ---
2 # T2 SDE: package/*/llvm/llvm.conf
3 # Copyright (C) 2009 - 2024 The T2 SDE Project
4
5 # This Copyright note is generated by scripts/Create-CopyPatch,
6 # more information can be found in the files COPYING and README.
7
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License version 2.
10 # --- T2-COPYRIGHT-NOTE-END ---
12 runconf=0
14 cmake_mod() {
15         tar $taropt `match_source_file -p cmake` -C ..
16         mv -vf ../cmake-*src ../../cmake
18 hook_add preconf 5 cmake_mod
20 [ "$SDECFG_SPARC64_32BIT" = 1 ] &&
21         var_append patchfiles " " "$confdir/*sparcv9*.diff"
23 create_llvm_config_x() {
24         # TODO: check -lz -lnucrses deps!
25         local host=x86
26         [[ $arch = x86* ]] && host=NaN # TODO: != native llvm target
27         cat <<-EOT > $root/TOOLCHAIN/$toolsdir/bin/llvm-config-x
28 #!/bin/bash
29 llvm-config "\$@" |
30 sed \
31 -e 's, $host[^ ]*,,g' \\
32 -e 's,-L$root/TOOLCHAIN/cross/lib,-L$root$libdir,g' \\
33 -e 's,-I$root/TOOLCHAIN/cross/include,,g' \\
34 -e 's,-lLLVM,-lz -lncurses &,'
35 EOT
36         chmod +x $root/TOOLCHAIN/$toolsdir/bin/llvm-config-x
39 # TODO: Lanai MSP430 NVPTX VE DirectX
41 # keep in sync w/ rustc! ;-)
42 targets="AMDGPU;BPF;WebAssembly;host" # host for cross compilation
43 xtargets="SPIRV"
44 target="$arch_target"
45 case $arch in
46         arc) var_insert xtargets ';' 'ARC' ;;
47         arm) var_insert targets ';' 'ARM' ;;
48         avr) var_insert targets ';' 'AVR' ;;
49         arm64) var_insert targets ';' 'AArch64' ;;
50         csky) var_insert xtargets ';' 'CSKY' ;;
51         hexagon) var_insert targets ';' 'Hexagon' ;;
52         loongarch*) var_insert targets ';' 'Loongarch' ;;
53         #m68k*) var_insert xtargets ';' 'M68k' ;;
54         mips*) var_insert targets ';' 'Mips' ;;
55         powerpc*) var_insert targets ';' 'PowerPC' ;;
56         riscv*) var_insert targets ';' 'RISCV' ;;
57         s390*) var_insert targets ';' 'SystemZ' ;;
58         sparc*) var_insert targets ';' 'Sparc' ;;
59         x86*) var_insert targets ';' 'X86' ;;
60         xtensa) var_insert xtargets ';' 'Xtensa' ;;
61         *) var_insert targets ';' 'X86'; target=x86-t2-linux-gnu ;;
62 esac
64 # TODO: fix and maybe add a config.in option?
65 #var_append cmakeopt " " "-DLLVM_TARGETS_TO_BUILD='$targets'"
66 var_append cmakeopt " " "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='$xtargets'"
67 var_append cmakeopt " " "-DLLVM_DEFAULT_TARGET_TRIPLE=$target"
69 if atstage toolchain; then
70         var_append cmakeopt " " "-DLLVM_HOST_TRIPLE=$arch_build"
71 elif atstage cross; then
72         var_append cmakeopt " " "-DLLVM_TABLEGEN=$root/TOOLCHAIN/$toolsdir/bin/llvm-tblgen"
73         var_append cmakeopt " " "-DLLVM_CONFIG_PATH=$root/TOOLCHAIN/$toolsdir/bin/llvm-config"
74         var_append GCC_WRAPPER_FILTER '|' "sed 's,^/lib64/libcurses.so,-lcurses,'"
75         var_append GCC_WRAPPER_FILTER '|' "sed 's,$root/lib64/libcurses.so,-lcurses,'"
77         hook_add premake 5 "create_llvm_config_x"
80 [ "${libdir##*/lib}" ] && var_append cmakeopt " " "-DLLVM_LIBDIR_SUFFIX=${libdir##*/lib}"
81 # builds libraries as static and links all of them into an unique shared one
82 var_append cmakeopt " " "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON"
83 #var_append cmakeopt " " "-DBUILD_SHARED_LIBS=ON"
85 var_append cmakeopt " " "-DLLVM_ENABLE_ZLIB=ON"
86 var_append cmakeopt " " "-DLLVM_ENABLE_TERMINFO=OFF"
87 var_append cmakeopt " " "-DLLVM_ENABLE_BACKTRACES=OFF"
89 if pkginstalled binutils; then
90     [ $stagelevel -gt 1 ] &&
91         var_append cmakeopt " " "-DLLVM_BINUTILS_INCDIR=$root/usr/include"
92     atstage toolchain &&
93         var_append cmakeopt " " "-DLLVM_BINUTILS_INCDIR=$root/TOOLCHAIN/cross/usr/$arch_build/$arch_target/include"
96 var_append cmakeopt " " "-DLLVM_ENABLE_RTTI=ON" # for Mesa?
97 var_append cmakeopt " " "-DLLVM_BUILD_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_TESTS=OFF"
98 var_append cmakeopt " " "-DLLVM_ENABLE_BINDINGS=OFF -DLLVM_INCLUDE_GO_TESTS=OFF"
99 var_append cmakeopt " " "-DLLVM_ENABLE_ZSTD=OFF" # TODO: .a's need -lzstd?
101 # required by rustc-1.81.x to link against the "llvm::machineinstr::dump() const" function
102 var_append cmakeopt " " -DLLVM_ENABLE_DUMP=ON