# TESTS=read
MISC=fail_ctx test_pay_signed test_setting_key
# HOST=$(addprefix simple_,$(TESTS)) \
#      $(addprefix complex_,$(TESTS)) \
# 	 $(MISC)

BPF=bpf_simple.o bpf_schedext.o bpf_bad_access1.o bpf_bad_access2.o bpf_bad_access3.o
TARGETS=$(MISC) $(HOST) $(BPF) simple

LIBBPF=libbpf/src/libbpf.a

# Override local libbpf
CFLAGS=-I libbpf/src -I libbpf/include -I libbpf/include/uapi -O2 -g
LDFLAGS=-lelf -lz

all: $(TARGETS)


simple: main_simple.c common.c $(LIBBPF)
	$(CC) -o main main_simple.c common.c $(LIBBPF) $(LDFLAGS) $(CFLAGS)

# complex_%: do_%.c main_complex.c common.c $(LIBBPF)
# 	$(CC) -o $@ $< main_complex.c common.c $(LIBBPF) $(LDFLAGS) $(CFLAGS)


$(MISC): %: %.c common.c $(LIBBPF)
	cc -o $@ $< common.c $(LIBBPF) $(LDFLAGS) $(CFLAGS)

$(BPF): %.o: %.c
	clang -target bpf -D__KERNEL__ -D__BPF_TRACING__ $(CFLAGS) $< -c

$(LIBBPF):
	$(MAKE) -C libbpf/src

.PHONY: clean $(LIBBPF) $(LIBBPF32)
clean:
	$(MAKE) -C libbpf/src clean
	rm -f $(TARGETS)
