]> rtime.felk.cvut.cz Git - zynq/linux.git/blob - tools/testing/selftests/bpf/Makefile
Merge tag 'for-linus-4.16-1' of git://github.com/cminyard/linux-ipmi
[zynq/linux.git] / tools / testing / selftests / bpf / Makefile
1 # SPDX-License-Identifier: GPL-2.0
2
3 LIBDIR := ../../../lib
4 BPFDIR := $(LIBDIR)/bpf
5 APIDIR := ../../../include/uapi
6 GENDIR := ../../../../include/generated
7 GENHDR := $(GENDIR)/autoconf.h
8
9 ifneq ($(wildcard $(GENHDR)),)
10   GENFLAGS := -DHAVE_GENHDR
11 endif
12
13 CFLAGS += -Wall -O2 -I$(APIDIR) -I$(LIBDIR) -I$(GENDIR) $(GENFLAGS) -I../../../include
14 LDLIBS += -lcap -lelf -lrt
15
16 TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \
17         test_align test_verifier_log test_dev_cgroup
18
19 TEST_GEN_FILES = test_pkt_access.o test_xdp.o test_l4lb.o test_tcp_estats.o test_obj_id.o \
20         test_pkt_md_access.o test_xdp_redirect.o test_xdp_meta.o sockmap_parse_prog.o     \
21         sockmap_verdict_prog.o dev_cgroup.o
22
23 TEST_PROGS := test_kmod.sh test_xdp_redirect.sh test_xdp_meta.sh
24
25 include ../lib.mk
26
27 BPFOBJ := $(OUTPUT)/libbpf.a $(OUTPUT)/cgroup_helpers.c
28
29 $(TEST_GEN_PROGS): $(BPFOBJ)
30
31 .PHONY: force
32
33 # force a rebuild of BPFOBJ when its dependencies are updated
34 force:
35
36 $(BPFOBJ): force
37         $(MAKE) -C $(BPFDIR) OUTPUT=$(OUTPUT)/
38
39 CLANG ?= clang
40 LLC   ?= llc
41
42 PROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1)
43
44 # Let newer LLVM versions transparently probe the kernel for availability
45 # of full BPF instruction set.
46 ifeq ($(PROBE),)
47   CPU ?= probe
48 else
49   CPU ?= generic
50 endif
51
52 %.o: %.c
53         $(CLANG) -I. -I./include/uapi -I../../../include/uapi \
54                  -Wno-compare-distinct-pointer-types          \
55                  -O2 -target bpf -emit-llvm -c $< -o - |      \
56         $(LLC) -march=bpf -mcpu=$(CPU) -filetype=obj -o $@