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