14
14
Q = @
15
15
endif
16
16
17
- BPF_DIR = $(srctree ) /tools/lib/bpf/
17
+ BPF_DIR = $(srctree ) /tools/lib/bpf
18
18
19
19
ifneq ($(OUTPUT ) ,)
20
20
_OUTPUT := $(OUTPUT )
@@ -25,14 +25,15 @@ BOOTSTRAP_OUTPUT := $(_OUTPUT)/bootstrap/
25
25
LIBBPF_OUTPUT := $(_OUTPUT ) /libbpf/
26
26
LIBBPF_DESTDIR := $(LIBBPF_OUTPUT )
27
27
LIBBPF_INCLUDE := $(LIBBPF_DESTDIR ) /include
28
+ LIBBPF_HDRS_DIR := $(LIBBPF_INCLUDE ) /bpf
28
29
29
30
LIBBPF = $(LIBBPF_OUTPUT ) libbpf.a
30
31
LIBBPF_BOOTSTRAP_OUTPUT = $(BOOTSTRAP_OUTPUT ) libbpf/
31
32
LIBBPF_BOOTSTRAP = $(LIBBPF_BOOTSTRAP_OUTPUT ) libbpf.a
32
33
33
34
# We need to copy nlattr.h which is not otherwise exported by libbpf, but still
34
35
# required by bpftool.
35
- LIBBPF_INTERNAL_HDRS := nlattr.h
36
+ LIBBPF_INTERNAL_HDRS := $( addprefix $( LIBBPF_HDRS_DIR ) /, nlattr.h)
36
37
37
38
ifeq ($(BPFTOOL_VERSION ) ,)
38
39
BPFTOOL_VERSION := $(shell make -rR --no-print-directory -sC ../../.. kernelversion)
@@ -41,16 +42,15 @@ endif
41
42
$(LIBBPF_OUTPUT ) $(BOOTSTRAP_OUTPUT ) $(LIBBPF_BOOTSTRAP_OUTPUT ) :
42
43
$(QUIET_MKDIR ) mkdir -p $@
43
44
44
- $(LIBBPF ) : FORCE | $(LIBBPF_OUTPUT )
45
+ $(LIBBPF ) : $( wildcard $( BPF_DIR ) / * .[ch] $( BPF_DIR ) /Makefile) | $(LIBBPF_OUTPUT )
45
46
$(Q )$(MAKE ) -C $(BPF_DIR ) OUTPUT=$(LIBBPF_OUTPUT ) \
46
47
DESTDIR=$(LIBBPF_DESTDIR ) prefix= $(LIBBPF ) install_headers
47
48
48
- $(LIBBPF_INCLUDE ) /bpf/$(LIBBPF_INTERNAL_HDRS ) : \
49
- $(addprefix $(BPF_DIR ) ,$(LIBBPF_INTERNAL_HDRS ) ) $(LIBBPF )
50
- $(call QUIET_INSTALL, bpf/$(notdir $@ ) )
51
- $(Q ) install -m 644 -t $(LIBBPF_INCLUDE ) /bpf/ $(BPF_DIR )$(notdir $@ )
49
+ $(LIBBPF_INTERNAL_HDRS ) : $(LIBBPF_HDRS_DIR ) /% .h: $(BPF_DIR ) /% .h $(LIBBPF )
50
+ $(call QUIET_INSTALL, $@ )
51
+ $(Q ) install -m 644 -t $(LIBBPF_HDRS_DIR ) $<
52
52
53
- $(LIBBPF_BOOTSTRAP ) : FORCE | $(LIBBPF_BOOTSTRAP_OUTPUT )
53
+ $(LIBBPF_BOOTSTRAP ) : $( wildcard $( BPF_DIR ) / * .[ch] $( BPF_DIR ) /Makefile) | $(LIBBPF_BOOTSTRAP_OUTPUT )
54
54
$(Q )$(MAKE ) -C $(BPF_DIR ) OUTPUT=$(LIBBPF_BOOTSTRAP_OUTPUT ) \
55
55
ARCH= CC=$(HOSTCC ) LD=$(HOSTLD ) $@
56
56
@@ -150,7 +150,7 @@ BOOTSTRAP_OBJS = $(addprefix $(BOOTSTRAP_OUTPUT),main.o common.o json_writer.o g
150
150
$(BOOTSTRAP_OBJS ) : $(LIBBPF_BOOTSTRAP )
151
151
152
152
OBJS = $(patsubst % .c,$(OUTPUT ) % .o,$(SRCS ) ) $(OUTPUT ) disasm.o
153
- $(OBJS ) : $(LIBBPF ) $(LIBBPF_INCLUDE ) /bpf/ $( LIBBPF_INTERNAL_HDRS )
153
+ $(OBJS ) : $(LIBBPF ) $(LIBBPF_INTERNAL_HDRS )
154
154
155
155
VMLINUX_BTF_PATHS ?= $(if $(O ) ,$(O ) /vmlinux) \
156
156
$(if $(KBUILD_OUTPUT ) ,$(KBUILD_OUTPUT ) /vmlinux) \
@@ -198,7 +198,10 @@ $(BOOTSTRAP_OUTPUT)disasm.o: $(srctree)/kernel/bpf/disasm.c
198
198
$(OUTPUT ) disasm.o : $(srctree ) /kernel/bpf/disasm.c
199
199
$(QUIET_CC )$(CC ) $(CFLAGS ) -c -MMD -o $@ $<
200
200
201
- $(OUTPUT ) feature.o : | zdep
201
+ $(OUTPUT ) feature.o :
202
+ ifneq ($(feature-zlib ) , 1)
203
+ $(error "No zlib found")
204
+ endif
202
205
203
206
$(BPFTOOL_BOOTSTRAP ) : $(BOOTSTRAP_OBJS ) $(LIBBPF_BOOTSTRAP )
204
207
$(QUIET_LINK )$(HOSTCC ) $(CFLAGS ) $(LDFLAGS ) -o $@ $(BOOTSTRAP_OBJS ) \
@@ -254,10 +257,7 @@ doc-uninstall:
254
257
255
258
FORCE :
256
259
257
- zdep :
258
- @if [ " $( feature-zlib) " != " 1" ]; then echo " No zlib found" ; exit 1 ; fi
259
-
260
260
.SECONDARY :
261
- .PHONY : all FORCE clean install-bin install uninstall zdep
261
+ .PHONY : all FORCE clean install-bin install uninstall
262
262
.PHONY : doc doc-clean doc-install doc-uninstall
263
263
.DEFAULT_GOAL := all
0 commit comments