.PHONY: all build push

KERNEL_VERSION=$(shell uname -r)

all: build

build: TMPFILE := $(shell mktemp /tmp/gideon-bpf.XXXXXX)
build:
	clang \
	-DBPF_DEBUG \
	-D__KERNEL__ \
	-D__ASM_SYSREG_H \
	-DKBUILD_MODNAME='"gideon"' \
	-g -O2 -Wall -emit-llvm \
	-Wno-address-of-packed-member \
	-fno-stack-protector \
	-isystem /usr/lib/modules/$(KERNEL_VERSION)/build/include \
	-isystem /usr/lib/modules/$(KERNEL_VERSION)/build/include/uapi \
	-isystem /usr/lib/modules/$(KERNEL_VERSION)/build/arch/x86/include \
	-isystem /usr/lib/modules/$(KERNEL_VERSION)/build/arch/x86/include/generated \
	-isystem /usr/lib/modules/$(KERNEL_VERSION)/build/arch/x86/include/uapi \
	-isystem /usr/src/linux-headers-$(KERNEL_VERSION)/include \
	-isystem /usr/src/linux-headers-$(KERNEL_VERSION)/include/uapi \
	-isystem /usr/src/linux-headers-$(KERNEL_VERSION)/arch/x86/include \
	-isystem /usr/src/linux-headers-$(KERNEL_VERSION)/arch/x86/include/generated \
	-isystem /usr/src/linux-headers-$(KERNEL_VERSION)/arch/x86/include/uapi \
	-c gideon.c \
	-o $(TMPFILE)
	llc -march=bpf -filetype=obj -o gideon_bpf.elf $(TMPFILE)
	rm -f $(TMPFILE)
