xref: /linux/tools/testing/selftests/bpf/Makefile (revision 1c2dd16add7ebd7fc6a47f21a42f502cfed5ec2f)
1d498f871SMickaël SalaünLIBDIR := ../../../lib
2e8f1f34aSZi Shen LimBPFDIR := $(LIBDIR)/bpf
302ea80b1SDaniel BorkmannAPIDIR := ../../../include/uapi
402ea80b1SDaniel BorkmannGENDIR := ../../../../include/generated
502ea80b1SDaniel BorkmannGENHDR := $(GENDIR)/autoconf.h
6d498f871SMickaël Salaün
702ea80b1SDaniel Borkmannifneq ($(wildcard $(GENHDR)),)
802ea80b1SDaniel Borkmann  GENFLAGS := -DHAVE_GENHDR
902ea80b1SDaniel Borkmannendif
1002ea80b1SDaniel Borkmann
116f14f443SDavid S. MillerCFLAGS += -Wall -O2 -I$(APIDIR) -I$(LIBDIR) -I$(GENDIR) $(GENFLAGS) -I../../../include
126882804cSAlexei StarovoitovLDLIBS += -lcap -lelf
135aa5bd14SDaniel Borkmann
146882804cSAlexei StarovoitovTEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs
156882804cSAlexei Starovoitov
166ead18fbSYonghong SongTEST_GEN_FILES = test_pkt_access.o test_xdp.o test_l4lb.o test_tcp_estats.o
175aa5bd14SDaniel Borkmann
1888baa78dSbamvor.zhangjian@huawei.comTEST_PROGS := test_kmod.sh
195aa5bd14SDaniel Borkmann
20e8f1f34aSZi Shen Liminclude ../lib.mk
211da8ac7cSAlexei Starovoitov
226882804cSAlexei StarovoitovBPFOBJ := $(OUTPUT)/libbpf.a
23e8f1f34aSZi Shen Lim
24e8f1f34aSZi Shen Lim$(TEST_GEN_PROGS): $(BPFOBJ)
25e8f1f34aSZi Shen Lim
26e8f1f34aSZi Shen Lim.PHONY: force
27d498f871SMickaël Salaün
28d498f871SMickaël Salaün# force a rebuild of BPFOBJ when its dependencies are updated
29d498f871SMickaël Salaünforce:
30d498f871SMickaël Salaün
31d498f871SMickaël Salaün$(BPFOBJ): force
32e8f1f34aSZi Shen Lim	$(MAKE) -C $(BPFDIR) OUTPUT=$(OUTPUT)/
336882804cSAlexei Starovoitov
346882804cSAlexei StarovoitovCLANG ?= clang
356882804cSAlexei Starovoitov
366882804cSAlexei Starovoitov%.o: %.c
37*1c2dd16aSAlexei Starovoitov	$(CLANG) -I. -I../../../include/uapi -I../../../../samples/bpf/ \
38*1c2dd16aSAlexei Starovoitov		-Wno-compare-distinct-pointer-types \
396882804cSAlexei Starovoitov		-O2 -target bpf -c $< -o $@
40