Adds the pure/core probe logic for the standalone C client (hbc_mini.c): gateway text parsers for /proc/net/route, /proc/net/ipv6_route and BSD `route -n get`, a ping-output RTT parser, and the probe_step state machine (probe_t/probe_fam_t/probe_ops_t) plus probe_flags and probe_metric_json. config_t gains probe_enabled/probe_interval/probe_v4/probe_v6. Temporary stub functions (sys_local_address, sys_ping, sys_gateway, mono_ts) stand in for real syscalls until Task 4 wires them into main(). New scripts/c/test_probe.c test harness (#include's hbc_mini.c with main renamed out of the way) plus a `make test` target; scripts/c/.gitignore now ignores the test_probe binary. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uc9V1v7iXruubpoLiSE24M
28 lines
595 B
Makefile
28 lines
595 B
Makefile
CC ?= cc
|
|
CFLAGS = -O2 -Wall -Wextra -std=c11
|
|
LDFLAGS = -lz -lpthread -lm
|
|
TARGET = hbc_mini
|
|
SRC = hbc_mini.c
|
|
|
|
# FreeBSD/NetBSD keep zlib in base; no extra flags needed.
|
|
# On some NetBSD installs pthreads may need -lpthread from pkgsrc.
|
|
|
|
.PHONY: all clean debug test
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(SRC)
|
|
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
|
|
|
|
debug: $(SRC)
|
|
$(CC) -g -fsanitize=address,undefined -o $(TARGET)_dbg $< $(LDFLAGS)
|
|
|
|
test: test_probe
|
|
./test_probe
|
|
|
|
test_probe: test_probe.c $(SRC)
|
|
$(CC) $(CFLAGS) -o $@ test_probe.c $(LDFLAGS)
|
|
|
|
clean:
|
|
rm -f $(TARGET) $(TARGET)_dbg test_probe
|