ebpf_exporter
33 строки · 1.2 Кб
1.DEFAULT_GOAL := build2
3CC := clang4
5ARCH := $(shell uname -m | sed -e 's/x86_64/x86/' -e 's/aarch64/arm64/')6
7SRC = ${wildcard *.bpf.c}8OBJ = ${patsubst %.bpf.c, %.bpf.o, $(SRC)}9HDR = ${wildcard *.h}10
11# From https://github.com/libbpf/libbpf-bootstrap/blob/a7c0f7e4a28/examples/c/Makefile#L34-L43
12# Get Clang's default includes on this system. We'll explicitly add these dirs
13# to the includes list when compiling with `-target bpf` because otherwise some
14# architecture-specific dirs will be "missing" on some architectures/distros -
15# headers such as asm/types.h, asm/byteorder.h, asm/socket.h, asm/sockios.h,
16# sys/cdefs.h etc. might be missing.
17#
18# Use '-idirafter': Don't interfere with include mechanics except where the
19# build would have failed anyways.
20CLANG_BPF_SYS_INCLUDES = $(shell $(CC) -v -E - </dev/null 2>&1 \21| sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }')22
23include ../Makefile.libbpf24
25$(OBJ): %.bpf.o: %.bpf.c $(HDR) ../include/$(ARCH)/vmlinux.h $(LIBBPF_DEPS)26$(CC) -mcpu=v3 -g -O2 -Wall -Werror -D__TARGET_ARCH_$(ARCH) $(CFLAGS) $(CLANG_BPF_SYS_INCLUDES) -I../include/$(ARCH) $(LIBBPF_CFLAGS) -c -target bpf $< -o $@27
28.PHONY: clean29clean:30rm -f *.o
31
32.PHONY: build33build: $(OBJ)34