Files
RuView/wifi-veil/firmware/openwrt/Makefile
Claude 5114ed183f feat(wifi-veil): add self-contained standalone repository tree
Assemble `wifi-veil/` as an extraction-ready standalone repository for the WiFi
Veil privacy shield, decoupled from the RuView monorepo. The RuView copies under
v2/, harness/, firmware/, and docs/ are left untouched; this is an additive,
self-contained tree that can be split out to its own repo (e.g. ruvnet/wifi-veil).

Optimized for a standalone identity, with all monorepo coupling removed:

- Rust crate at the repo root: renamed `wifi-veil` (lib `wifi_veil`, bin `veil`),
  workspace-metadata inheritance inlined, own `[workspace]` root, release profile.
  Dependency-free and WASM-ready — it builds and tests OFFLINE, unlike the
  monorepo copy (which needs sibling submodules). Code is byte-identical, so the
  deterministic proof witness is unchanged.
- Portable C shield core + per-provider firmware scaffolds (openwifi/openwrt/
  nexmon/esp32) under firmware/; host C-core test passes.
- npm harness renamed `wifi-veil-harness`; its guidance paths/commands repointed
  to the standalone layout; manifest SHA-256 digests regenerated and verified.
- Docs: ADR-288/289/290 and the privacy-shield research bundle; research build
  commands/links normalized to the standalone crate.
- Root scaffolding: product README, dual LICENSE-MIT / LICENSE-APACHE,
  .gitignore, CHANGELOG, CONTRIBUTING, and a GitHub Actions CI workflow
  (Rust test/clippy/fmt + wasm build, C-core host test, harness smoke).

Validated locally: cargo fmt --check, cargo clippy --all-targets -D warnings,
cargo test (43 tests + witness), cargo build --lib --target wasm32-unknown-unknown,
make -C firmware/core test, and `node harness/bin/cli.js guidance` — all green.
No telemetry, build artifacts, or lockfile committed. All defense figures remain
SYNTHETIC / L0; compliant waveform controls only, never jamming.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01WEXNqzs7UsfNFBcP5yW21p
2026-08-09 17:06:48 +00:00

45 lines
1.6 KiB
Makefile

# SPDX-License-Identifier: MIT OR Apache-2.0
#
# Host build-CHECK for the OpenWRT/mac80211 VEIL adapter.
# STATUS: SYNTHETIC / L0 — build-only, UNTESTED ON HARDWARE.
#
# Two targets:
# make core - compile+link the portable core only (always works,
# no libnl needed) — proves the rotation math builds.
# make daemon - build veil_shieldd against libnl-genl-3 (needs the
# dev headers: `pkg-config libnl-genl-3.0`). On OpenWRT
# the package build uses libnl-tiny instead (see openwrt.mk).
#
# This Makefile does NOT flash, run on, or validate any radio.
CC ?= cc
COREDIR := ../core
CFLAGS ?= -std=c99 -Wall -Wextra -O2 -I$(COREDIR)
LDLIBS ?= -lm
NL_CFLAGS := $(shell pkg-config --cflags libnl-genl-3.0 2>/dev/null)
NL_LIBS := $(shell pkg-config --libs libnl-genl-3.0 2>/dev/null)
.PHONY: all core daemon clean
all: core
# Always-buildable: the core object, no netlink dependency.
core: $(COREDIR)/veil_shield.c $(COREDIR)/veil_shield.h
$(CC) $(CFLAGS) -c $(COREDIR)/veil_shield.c -o veil_shield.o
@echo "core built (rotation math OK). Nothing was run on hardware."
# Full daemon: requires libnl-genl-3 dev headers on the host.
daemon: veil_shieldd.c core
ifeq ($(strip $(NL_LIBS)),)
@echo "SKIP daemon: libnl-genl-3.0 not found (pkg-config)."
@echo " Install libnl-3-dev + libnl-genl-3-dev, or build via openwrt.mk."
@exit 0
else
$(CC) $(CFLAGS) $(NL_CFLAGS) -o veil_shieldd \
veil_shieldd.c veil_shield.o $(NL_LIBS) $(LDLIBS)
@echo "veil_shieldd linked (BUILD-ONLY; untested on silicon)."
endif
clean:
rm -f veil_shield.o veil_shieldd