Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
Makefile
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455# BPF trace tools for AC Native OS## Two build modes:# 1. Full BPF (HAS_LIBBPF=1): compiles BPF bytecode with clang, links libbpf# 2. Ftrace fallback (default): ac-trace uses tracefs directly, no BPF deps## The ftrace fallback ships by default and works with the enabled kernel config.# Full BPF mode requires: clang, libbpf-devel, libelf-devel, zlib-devel
CC ?= musl-gccCLANG ?= clangCFLAGS := -O2 -Wall -Wextra -std=gnu11LDFLAGS := -static
BPF_CFLAGS := -target bpf -O2 -g -D__TARGET_ARCH_x86
PROGS := progs/syscall_profile.bpf.o \ progs/frame_jitter.bpf.o \ progs/alsa_xrun.bpf.o \ progs/input_latency.bpf.o \ progs/alloc_profile.bpf.o
SKEL_DIR := loaders/skel
.PHONY: all clean bpf-progs
all: ac-trace
# --- Ftrace-only build (default, no BPF dependencies) ---ac-trace: loaders/ac-trace.c $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< @echo "Built ac-trace (ftrace mode, $$(du -sh $@ | cut -f1))"
# --- Full BPF build (opt-in: make bpf-full HAS_LIBBPF=1) ---.PHONY: bpf-fullbpf-full: bpf-progs ac-trace-bpf
bpf-progs: $(PROGS)
progs/%.bpf.o: progs/%.bpf.c include/vmlinux_defs.h $(CLANG) $(BPF_CFLAGS) -I include -c -o $@ $<
# Generate skeleton headers from compiled BPF objects$(SKEL_DIR)/%.skel.h: progs/%.bpf.o @mkdir -p $(SKEL_DIR) xxd -i $< > $@
ac-trace-bpf: loaders/ac-trace.c $(patsubst progs/%.bpf.o,$(SKEL_DIR)/%.skel.h,$(PROGS)) $(CC) $(CFLAGS) $(LDFLAGS) -DHAS_LIBBPF -I $(SKEL_DIR) -o ac-trace $< -lbpf -lelf -lz @echo "Built ac-trace (BPF mode, $$(du -sh ac-trace | cut -f1))"
clean: rm -f ac-trace progs/*.bpf.o $(SKEL_DIR)/*.skel.h @echo "Cleaned BPF build artifacts"