TARGET := CVE-2025-39913

KERNEL_PATH := /usr/src/linux-headers-$(shell uname -r)

BPF_OBJ := bpf_injection.o

USER_SRCS := main.c load_bpf.c check_bpfELf.c pingCheck.c com_c.c exit_asm.c sockmap_link.c check_elf.c result.c argparse.c

USER_OBJS := $(USER_SRCS:.c=.o)
ALL_OBJS := $(USER_OBJS) $(BPF_OBJ)

LIBS := -l:libbpf.a -lrt -lelf -lz 

$(TARGET): $(ALL_OBJS)
        gcc $(USER_OBJS) -o $@ $(LIBS) 
%.o: %.c
        gcc -c $< -o $@

$(BPF_OBJ): bpf_injection.c
        clang -O2 -target bpf -c $< -o $@ \
                -nostdinc \
                -I/usr/lib/clang/19/include \
                -I$(KERNEL_PATH)/arch/x86/include \
                -I$(KERNEL_PATH)/arch/x86/include/generated \
                -I$(KERNEL_PATH)/include \
                -I$(KERNEL_PATH)/include/uapi \
                -I$(KERNEL_PATH)/include/generated/uapi \
                -I$(KERNEL_PATH)/include/asm-generic \
                -I/usr/include

clean:
        rm -f $(TARGET) $(ALL_OBJS)