Files
libnftables-dotnet/eng/build-native.sh
2026-03-11 01:40:27 +00:00

29 lines
739 B
Bash
Executable File

#!/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"