#!/bin/sh
# DF-0751 build script.
# Usage:
#   ./build.sh           — build the harness (default; unprivileged)
#   ./build.sh harness   — same
#   ./build.sh module    — build mpls.ko from /usr/src/sys/netproto/mpls (root)
set -e
MODE="${1:-harness}"

case "$MODE" in
harness)
    echo "[DF-0751] building harness (unprivileged)..."
    cc -O2 -o mpls_loop_harness mpls_loop_harness.c
    echo "[DF-0751] built: mpls_loop_harness"
    ;;
module)
    echo "[DF-0751] building mpls.ko module (requires root + /usr/src)..."
    # Makefile must be in the source tree; copy it if missing
    [ -f /usr/src/sys/netproto/mpls/Makefile ] || \
        cp Makefile /usr/src/sys/netproto/mpls/Makefile
    cd /usr/src/sys/netproto/mpls
    make obj
    make
    echo "[DF-0751] built: $(ls -l mpls.ko /usr/obj/usr/src/sys/netproto/mpls/mpls.ko 2>/dev/null)"
    ;;
trigger)
    echo "[DF-0751] building live trigger (requires root for /dev/bpf at runtime)..."
    cc -O2 -o mpls_trigger mpls_trigger.c
    echo "[DF-0751] built: mpls_trigger"
    ;;
*)
    echo "usage: $0 [harness|module|trigger]" >&2
    exit 64
    ;;
esac
