]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
5a8997f2 JB |
2 | include ../scripts/Makefile.include |
3 | ||
e306e2c1 DB |
4 | prefix = /usr |
5 | ||
6 | CC = gcc | |
3f356385 DB |
7 | LEX = flex |
8 | YACC = bison | |
71bb428f | 9 | MAKE = make |
e306e2c1 | 10 | |
d7475de5 | 11 | CFLAGS += -Wall -O2 |
5a8997f2 | 12 | CFLAGS += -D__EXPORTED_HEADERS__ -I$(srctree)/include/uapi -I$(srctree)/include |
d7475de5 | 13 | |
fb982666 RG |
14 | ifeq ($(srctree),) |
15 | srctree := $(patsubst %/,%,$(dir $(CURDIR))) | |
16 | srctree := $(patsubst %/,%,$(dir $(srctree))) | |
17 | endif | |
18 | ||
19 | FEATURE_USER = .bpf | |
20 | FEATURE_TESTS = libbfd disassembler-four-args | |
21 | FEATURE_DISPLAY = libbfd disassembler-four-args | |
22 | ||
23 | check_feat := 1 | |
24 | NON_CHECK_FEAT_TARGETS := clean bpftool_clean | |
25 | ifdef MAKECMDGOALS | |
26 | ifeq ($(filter-out $(NON_CHECK_FEAT_TARGETS),$(MAKECMDGOALS)),) | |
27 | check_feat := 0 | |
28 | endif | |
29 | endif | |
30 | ||
31 | ifeq ($(check_feat),1) | |
32 | ifeq ($(FEATURES_DUMP),) | |
33 | include $(srctree)/tools/build/Makefile.feature | |
34 | else | |
35 | include $(FEATURES_DUMP) | |
36 | endif | |
37 | endif | |
38 | ||
39 | ifeq ($(feature-disassembler-four-args), 1) | |
40 | CFLAGS += -DDISASM_FOUR_ARGS_SIGNATURE | |
41 | endif | |
42 | ||
5a8997f2 | 43 | $(OUTPUT)%.yacc.c: $(srctree)/tools/bpf/%.y |
3f356385 DB |
44 | $(YACC) -o $@ -d $< |
45 | ||
5a8997f2 | 46 | $(OUTPUT)%.lex.c: $(srctree)/tools/bpf/%.l |
3f356385 DB |
47 | $(LEX) -o $@ $< |
48 | ||
5a8997f2 JB |
49 | $(OUTPUT)%.o: $(srctree)/tools/bpf/%.c |
50 | $(COMPILE.c) -o $@ $< | |
51 | ||
52 | all: $(OUTPUT)bpf_jit_disasm $(OUTPUT)bpf_dbg $(OUTPUT)bpf_asm bpftool | |
e306e2c1 | 53 | |
5a8997f2 JB |
54 | $(OUTPUT)bpf_jit_disasm: CFLAGS += -DPACKAGE='bpf_jit_disasm' |
55 | $(OUTPUT)bpf_jit_disasm: LDLIBS = -lopcodes -lbfd -ldl | |
56 | $(OUTPUT)bpf_jit_disasm: $(OUTPUT)bpf_jit_disasm.o | |
e306e2c1 | 57 | |
5a8997f2 JB |
58 | $(OUTPUT)bpf_dbg: LDLIBS = -lreadline |
59 | $(OUTPUT)bpf_dbg: $(OUTPUT)bpf_dbg.o | |
fd981e3c | 60 | |
5a8997f2 JB |
61 | $(OUTPUT)bpf_asm: LDLIBS = |
62 | $(OUTPUT)bpf_asm: $(OUTPUT)bpf_asm.o $(OUTPUT)bpf_exp.yacc.o $(OUTPUT)bpf_exp.lex.o | |
63 | $(OUTPUT)bpf_exp.lex.o: $(OUTPUT)bpf_exp.yacc.c | |
3f356385 | 64 | |
71bb428f | 65 | clean: bpftool_clean |
5a8997f2 JB |
66 | rm -rf $(OUTPUT)*.o $(OUTPUT)bpf_jit_disasm $(OUTPUT)bpf_dbg \ |
67 | $(OUTPUT)bpf_asm $(OUTPUT)bpf_exp.yacc.* $(OUTPUT)bpf_exp.lex.* | |
e306e2c1 | 68 | |
71bb428f | 69 | install: bpftool_install |
5a8997f2 JB |
70 | install $(OUTPUT)bpf_jit_disasm $(prefix)/bin/bpf_jit_disasm |
71 | install $(OUTPUT)bpf_dbg $(prefix)/bin/bpf_dbg | |
72 | install $(OUTPUT)bpf_asm $(prefix)/bin/bpf_asm | |
71bb428f JK |
73 | |
74 | bpftool: | |
75 | $(MAKE) -C bpftool | |
76 | ||
77 | bpftool_install: | |
78 | $(MAKE) -C bpftool install | |
79 | ||
80 | bpftool_clean: | |
81 | $(MAKE) -C bpftool clean | |
82 | ||
83 | .PHONY: bpftool FORCE |