projekt

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

Makefile (1289B)


      1 ARCH=$(shell uname -m | sed 's/x86_64/x86/' | sed 's/aarch64/arm64/')
      2 
      3 # set this variable (e.g. to 1) if you have older libbpf version (<0.6.0)
      4 SET_OLD_LIBBPF?=0
      5 
      6 ifdef SET_OLD_LIBBPF
      7 OLD_LIBBPF=-DOLD_LIBBPF
      8 endif
      9 
     10 main: main.c process_exit.skel.h
     11 	gcc $(OLD_LIBBPF) -Wall -o main main.c -lbpf -lelf -lz
     12 
     13 run: main
     14 	sudo ./main
     15 
     16 KERNEL ?= /lib/modules/$(shell uname -r)/build/
     17 LINUXINCLUDE += -I$(KERNEL)/arch/$(ARCH)/include/generated/uapi
     18 LINUXINCLUDE += -I$(KERNEL)/arch/$(ARCH)/include/generated
     19 LINUXINCLUDE += -I$(KERNEL)/arch/$(ARCH)/include
     20 LINUXINCLUDE += -I$(KERNEL)/arch/$(ARCH)/include/uapi
     21 LINUXINCLUDE += -I$(KERNEL)/include
     22 LINUXINCLUDE += -I$(KERNEL)/include/uapi
     23 LINUXINCLUDE += -include $(KERNEL)/include/linux/kconfig.h
     24 LINUXINCLUDE += -I$(KERNEL)/include/generated/uapi
     25 
     26 process_exit.bpf.o: process_exit.bpf.c vmlinux.h
     27 	clang $(LINUXINCLUDE) \
     28 		-target bpf \
     29 		-D __TARGET_ARCH_$(ARCH) \
     30 		-I/usr/include/$(shell uname -m)-linux-gnu \
     31 		-Wall -O2 -g -c process_exit.bpf.c -o process_exit.bpf.o
     32 
     33 process_exit.skel.h: process_exit.bpf.o
     34 	bpftool gen skeleton process_exit.bpf.o > process_exit.skel.h
     35 
     36 vmlinux.h:
     37 	bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h
     38 
     39 clean:
     40 	rm -f process_exit.bpf.o main vmlinux.h process_exit.skel.h
     41 
     42 .PHONY: run clean