build.sh raw
1 #!/bin/sh
2 set -e
3
4 LLVM_PREFIX=""
5 for p in /usr/lib/llvm-19 /usr/lib/llvm19 /usr/lib/llvm/19; do
6 if [ -d "$p" ]; then
7 LLVM_PREFIX="$p"
8 break
9 fi
10 done
11
12 if [ -z "$LLVM_PREFIX" ]; then
13 echo "error: LLVM 19 not found" >&2
14 exit 1
15 fi
16
17 VENDOR="$(cd "$(dirname "$0")/../../vendor/tinygo.org/x/go-llvm" && pwd)"
18 OUT="$(dirname "$0")/libmoxie-llvm-glue.so"
19
20 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
21
22 clang++ -shared -fPIC \
23 -o "$OUT" \
24 "$VENDOR/IRBindings.cpp" \
25 "$VENDOR/backports.cpp" \
26 "$SCRIPT_DIR/shims.c" \
27 -I"$LLVM_PREFIX/include" \
28 -L/usr/lib -lLLVM-19 \
29 -std=c++17
30
31 echo "built: $OUT"
32 nm -D "$OUT" | grep " T " | head -20
33