Skip to content

Commit 32fa0ef

Browse files
committed
Merge branch 'fixes for bpftool's Makefile'
Quentin Monnet says: ==================== This set contains one fix for bpftool's Makefile, to make sure that the headers internal to libbpf are installed properly even if we add more headers to the relevant Makefile variable in the future (although we'd like to avoid that if possible). The other patches aim at cleaning up the output from the Makefile, in particular when running the command "make" another time after bpftool is built. ==================== Signed-off-by: Andrii Nakryiko <[email protected]>
2 parents d51b6b2 + 062e1fc commit 32fa0ef

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

tools/bpf/bpftool/Makefile

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ else
1414
Q = @
1515
endif
1616

17-
BPF_DIR = $(srctree)/tools/lib/bpf/
17+
BPF_DIR = $(srctree)/tools/lib/bpf
1818

1919
ifneq ($(OUTPUT),)
2020
_OUTPUT := $(OUTPUT)
@@ -25,14 +25,15 @@ BOOTSTRAP_OUTPUT := $(_OUTPUT)/bootstrap/
2525
LIBBPF_OUTPUT := $(_OUTPUT)/libbpf/
2626
LIBBPF_DESTDIR := $(LIBBPF_OUTPUT)
2727
LIBBPF_INCLUDE := $(LIBBPF_DESTDIR)/include
28+
LIBBPF_HDRS_DIR := $(LIBBPF_INCLUDE)/bpf
2829

2930
LIBBPF = $(LIBBPF_OUTPUT)libbpf.a
3031
LIBBPF_BOOTSTRAP_OUTPUT = $(BOOTSTRAP_OUTPUT)libbpf/
3132
LIBBPF_BOOTSTRAP = $(LIBBPF_BOOTSTRAP_OUTPUT)libbpf.a
3233

3334
# We need to copy nlattr.h which is not otherwise exported by libbpf, but still
3435
# required by bpftool.
35-
LIBBPF_INTERNAL_HDRS := nlattr.h
36+
LIBBPF_INTERNAL_HDRS := $(addprefix $(LIBBPF_HDRS_DIR)/,nlattr.h)
3637

3738
ifeq ($(BPFTOOL_VERSION),)
3839
BPFTOOL_VERSION := $(shell make -rR --no-print-directory -sC ../../.. kernelversion)
@@ -41,16 +42,15 @@ endif
4142
$(LIBBPF_OUTPUT) $(BOOTSTRAP_OUTPUT) $(LIBBPF_BOOTSTRAP_OUTPUT):
4243
$(QUIET_MKDIR)mkdir -p $@
4344

44-
$(LIBBPF): FORCE | $(LIBBPF_OUTPUT)
45+
$(LIBBPF): $(wildcard $(BPF_DIR)/*.[ch] $(BPF_DIR)/Makefile) | $(LIBBPF_OUTPUT)
4546
$(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(LIBBPF_OUTPUT) \
4647
DESTDIR=$(LIBBPF_DESTDIR) prefix= $(LIBBPF) install_headers
4748

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) $<
5252

53-
$(LIBBPF_BOOTSTRAP): FORCE | $(LIBBPF_BOOTSTRAP_OUTPUT)
53+
$(LIBBPF_BOOTSTRAP): $(wildcard $(BPF_DIR)/*.[ch] $(BPF_DIR)/Makefile) | $(LIBBPF_BOOTSTRAP_OUTPUT)
5454
$(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(LIBBPF_BOOTSTRAP_OUTPUT) \
5555
ARCH= CC=$(HOSTCC) LD=$(HOSTLD) $@
5656

@@ -150,7 +150,7 @@ BOOTSTRAP_OBJS = $(addprefix $(BOOTSTRAP_OUTPUT),main.o common.o json_writer.o g
150150
$(BOOTSTRAP_OBJS): $(LIBBPF_BOOTSTRAP)
151151

152152
OBJS = $(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $(OUTPUT)disasm.o
153-
$(OBJS): $(LIBBPF) $(LIBBPF_INCLUDE)/bpf/$(LIBBPF_INTERNAL_HDRS)
153+
$(OBJS): $(LIBBPF) $(LIBBPF_INTERNAL_HDRS)
154154

155155
VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux) \
156156
$(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux) \
@@ -198,7 +198,10 @@ $(BOOTSTRAP_OUTPUT)disasm.o: $(srctree)/kernel/bpf/disasm.c
198198
$(OUTPUT)disasm.o: $(srctree)/kernel/bpf/disasm.c
199199
$(QUIET_CC)$(CC) $(CFLAGS) -c -MMD -o $@ $<
200200

201-
$(OUTPUT)feature.o: | zdep
201+
$(OUTPUT)feature.o:
202+
ifneq ($(feature-zlib), 1)
203+
$(error "No zlib found")
204+
endif
202205

203206
$(BPFTOOL_BOOTSTRAP): $(BOOTSTRAP_OBJS) $(LIBBPF_BOOTSTRAP)
204207
$(QUIET_LINK)$(HOSTCC) $(CFLAGS) $(LDFLAGS) -o $@ $(BOOTSTRAP_OBJS) \
@@ -254,10 +257,7 @@ doc-uninstall:
254257

255258
FORCE:
256259

257-
zdep:
258-
@if [ "$(feature-zlib)" != "1" ]; then echo "No zlib found"; exit 1 ; fi
259-
260260
.SECONDARY:
261-
.PHONY: all FORCE clean install-bin install uninstall zdep
261+
.PHONY: all FORCE clean install-bin install uninstall
262262
.PHONY: doc doc-clean doc-install doc-uninstall
263263
.DEFAULT_GOAL := all

0 commit comments

Comments
 (0)