#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BINDINGS_DIR="$ROOT_DIR/src/LibNftables.Bindings" WRAP_FILE="$BINDINGS_DIR/Generated/libnftables_wrap.c" OUT_DIR="$BINDINGS_DIR/runtimes/linux-x64/native" OUT_FILE="$OUT_DIR/libLibNftablesBindings.so" if [[ ! -f "$WRAP_FILE" ]]; then echo "Missing SWIG wrapper: $WRAP_FILE" >&2 echo "Run ./eng/regen-bindings.sh first." >&2 exit 1 fi mkdir -p "$OUT_DIR" CFLAGS="$(pkg-config --cflags libnftables 2>/dev/null || true)" LIBS="$(pkg-config --libs libnftables 2>/dev/null || echo '-lnftables')" gcc -fPIC -shared -O2 \ $CFLAGS \ -I/usr/include \ "$WRAP_FILE" \ -o "$OUT_FILE" \ $LIBS echo "Built native wrapper: $OUT_FILE"