# Compiler and flags CC = gcc CFLAGS = -static -O2 GO_BUILD_FLAGS = -v CGO_ENABLED = 1 # Paths LAUNCHER_SRC = internal/namespace/launcher_src/launcher.c LAUNCHER_BIN = internal/namespace/launcher.bin BINARY = wg-wrap # Fuzzing settings FUZZ_PARALLEL ?= 2 FUZZ_TIME ?= 30s .PHONY: all clean test fuzz # Default target: build the final binary all: $(BINARY) # Build the Go binary $(BINARY): $(LAUNCHER_BIN) CGO_ENABLED=$(CGO_ENABLED) go build $(GO_BUILD_FLAGS) -o $(BINARY) cmd/wg-wrap/main.go # Build the embedded C launcher binary $(LAUNCHER_BIN): $(LAUNCHER_SRC) $(CC) $(CFLAGS) $(LAUNCHER_SRC) -o $(LAUNCHER_BIN) # Run tests test: all go test -v ./... # Clean up all artifacts clean: rm -f $(BINARY) $(LAUNCHER_BIN) find . -name "*.test" -delete # Run fuzzing tests fuzz: all go test -v -fuzz=FuzzArgumentIntegrity -parallel $(FUZZ_PARALLEL) -fuzztime=$(FUZZ_TIME) ./tests/e2e/fuzz_args_test.go