1 # SPDX-License-Identifier: GPL-2.0
3 BPFDIR
:= $(LIBDIR
)/bpf
4 APIDIR
:= ..
/..
/..
/include/uapi
5 GENDIR
:= ..
/..
/..
/..
/include/generated
6 GENHDR
:= $(GENDIR
)/autoconf.h
8 ifneq ($(wildcard $(GENHDR
)),)
9 GENFLAGS
:= -DHAVE_GENHDR
12 CFLAGS
+= -Wall
-O2
-I
$(APIDIR
) -I
$(LIBDIR
) -I
$(GENDIR
) $(GENFLAGS
) -I..
/..
/..
/include
15 TEST_GEN_PROGS
= test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \
16 test_align test_verifier_log test_dev_cgroup
18 TEST_GEN_FILES
= test_pkt_access.o test_xdp.o test_l4lb.o test_tcp_estats.o test_obj_id.o \
19 test_pkt_md_access.o test_xdp_redirect.o test_xdp_meta.o sockmap_parse_prog.o \
20 sockmap_verdict_prog.o dev_cgroup.o
22 TEST_PROGS
:= test_kmod.sh test_xdp_redirect.sh test_xdp_meta.sh
26 BPFOBJ
:= $(OUTPUT
)/libbpf.a
$(OUTPUT
)/cgroup_helpers.c
28 $(TEST_GEN_PROGS
): $(BPFOBJ
)
32 # force a rebuild of BPFOBJ when its dependencies are updated
36 $(MAKE
) -C
$(BPFDIR
) OUTPUT
=$(OUTPUT
)/
41 PROBE
:= $(shell llc
-march
=bpf
-mcpu
=probe
-filetype
=null
/dev
/null
2>&1)
43 # Let newer LLVM versions transparently probe the kernel for availability
44 # of full BPF instruction set.
52 $(CLANG
) -I.
-I.
/include/uapi
-I..
/..
/..
/include/uapi \
53 -Wno-compare-distinct-pointer-types \
54 -O2
-target bpf
-emit-llvm
-c
$< -o
- | \
55 $(LLC
) -march
=bpf
-mcpu
=$(CPU
) -filetype
=obj
-o
$@