29 lines
739 B
Bash
Executable File
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"
|