Makefile 1.6 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0
2 3 4
prefix = /usr

CC = gcc
5 6
LEX = flex
YACC = bison
J
Jakub Kicinski 已提交
7
MAKE = make
8

9 10 11
CFLAGS += -Wall -O2
CFLAGS += -D__EXPORTED_HEADERS__ -I../../include/uapi -I../../include

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
ifeq ($(srctree),)
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
srctree := $(patsubst %/,%,$(dir $(srctree)))
endif

FEATURE_USER = .bpf
FEATURE_TESTS = libbfd disassembler-four-args
FEATURE_DISPLAY = libbfd disassembler-four-args

check_feat := 1
NON_CHECK_FEAT_TARGETS := clean bpftool_clean
ifdef MAKECMDGOALS
ifeq ($(filter-out $(NON_CHECK_FEAT_TARGETS),$(MAKECMDGOALS)),)
  check_feat := 0
endif
endif

ifeq ($(check_feat),1)
ifeq ($(FEATURES_DUMP),)
include $(srctree)/tools/build/Makefile.feature
else
include $(FEATURES_DUMP)
endif
endif

ifeq ($(feature-disassembler-four-args), 1)
CFLAGS += -DDISASM_FOUR_ARGS_SIGNATURE
endif

41 42 43 44 45 46
%.yacc.c: %.y
	$(YACC) -o $@ -d $<

%.lex.c: %.l
	$(LEX) -o $@ $<

J
Jakub Kicinski 已提交
47
all: bpf_jit_disasm bpf_dbg bpf_asm bpftool
48

49
bpf_jit_disasm : CFLAGS += -DPACKAGE='bpf_jit_disasm'
50 51 52
bpf_jit_disasm : LDLIBS = -lopcodes -lbfd -ldl
bpf_jit_disasm : bpf_jit_disasm.o

53 54 55
bpf_dbg : LDLIBS = -lreadline
bpf_dbg : bpf_dbg.o

56 57 58 59
bpf_asm : LDLIBS =
bpf_asm : bpf_asm.o bpf_exp.yacc.o bpf_exp.lex.o
bpf_exp.lex.o : bpf_exp.yacc.c

J
Jakub Kicinski 已提交
60
clean: bpftool_clean
61
	rm -rf *.o bpf_jit_disasm bpf_dbg bpf_asm bpf_exp.yacc.* bpf_exp.lex.*
62

J
Jakub Kicinski 已提交
63
install: bpftool_install
64
	install bpf_jit_disasm $(prefix)/bin/bpf_jit_disasm
65
	install bpf_dbg $(prefix)/bin/bpf_dbg
66
	install bpf_asm $(prefix)/bin/bpf_asm
J
Jakub Kicinski 已提交
67 68 69 70 71 72 73 74 75 76 77

bpftool:
	$(MAKE) -C bpftool

bpftool_install:
	$(MAKE) -C bpftool install

bpftool_clean:
	$(MAKE) -C bpftool clean

.PHONY: bpftool FORCE