Commit 2cc51d34 authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Alexei Starovoitov
Browse files

selftests/bpf: Conform selftests/bpf Makefile output to libbpf and bpftool



Bring selftest/bpf's Makefile output to the same format used by libbpf and
bpftool: 2 spaces of padding on the left + 8-character left-aligned build step
identifier.

Also, hide feature detection output by default. Can be enabled back by setting
V=1.

Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200113073143.1779940-4-andriin@fb.com
parent 292e1d73
Loading
Loading
Loading
Loading
+25 −22
Original line number Diff line number Diff line
@@ -87,8 +87,9 @@ Q =
msg =
else
Q = @
msg = @$(info $(1)$(if $(2), [$(2)]) $(notdir $(3)))$(if $(4), $(4))
msg = @printf '  %-8s%s %s%s\n' "$(1)" "$(if $(2), [$(2)])" "$(notdir $(3))" "$(if $(4), $(4))";
MAKEFLAGS += --no-print-directory
submake_extras := feature_display=0
endif

# override lib.mk's default rules
@@ -146,18 +147,20 @@ $(OUTPUT)/test_sysctl: cgroup_helpers.c
# force a rebuild of BPFOBJ when its dependencies are updated
force:

DEFAULT_BPFTOOL := $(OUTPUT)/tools/usr/local/sbin/bpftool
DEFAULT_BPFTOOL := $(OUTPUT)/tools/sbin/bpftool
BPFTOOL ?= $(DEFAULT_BPFTOOL)

$(DEFAULT_BPFTOOL): force
	$(Q)$(MAKE) -C $(BPFTOOLDIR) DESTDIR=$(OUTPUT)/tools install
	$(Q)$(MAKE) $(submake_extras)  -C $(BPFTOOLDIR)			      \
		    prefix= DESTDIR=$(OUTPUT)/tools/ install

$(BPFOBJ): force
	$(Q)$(MAKE) -C $(BPFDIR) OUTPUT=$(OUTPUT)/
	$(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(OUTPUT)/

BPF_HELPERS := $(OUTPUT)/bpf_helper_defs.h $(wildcard $(BPFDIR)/bpf_*.h)
$(OUTPUT)/bpf_helper_defs.h: $(BPFOBJ)
	$(Q)$(MAKE) -C $(BPFDIR) OUTPUT=$(OUTPUT)/ $(OUTPUT)/bpf_helper_defs.h
	$(Q)$(MAKE) $(submake_extras) -C $(BPFDIR)			      \
		    OUTPUT=$(OUTPUT)/ $(OUTPUT)/bpf_helper_defs.h

# Get Clang's default includes on this system, as opposed to those seen by
# '-target bpf'. This fixes "missing" files on some architectures/distros,
@@ -194,21 +197,21 @@ $(OUTPUT)/flow_dissector_load.o: flow_dissector_load.h
# $3 - CFLAGS
# $4 - LDFLAGS
define CLANG_BPF_BUILD_RULE
	$(call msg,  CLANG-LLC,$(TRUNNER_BINARY),$2)
	$(call msg,CLNG-LLC,$(TRUNNER_BINARY),$2)
	($(CLANG) $3 -O2 -target bpf -emit-llvm				\
		-c $1 -o - || echo "BPF obj compilation failed") | 	\
	$(LLC) -mattr=dwarfris -march=bpf -mcpu=probe $4 -filetype=obj -o $2
endef
# Similar to CLANG_BPF_BUILD_RULE, but with disabled alu32
define CLANG_NOALU32_BPF_BUILD_RULE
	$(call msg,  CLANG-LLC,$(TRUNNER_BINARY),$2)
	$(call msg,CLNG-LLC,$(TRUNNER_BINARY),$2)
	($(CLANG) $3 -O2 -target bpf -emit-llvm				\
		-c $1 -o - || echo "BPF obj compilation failed") | 	\
	$(LLC) -march=bpf -mcpu=v2 $4 -filetype=obj -o $2
endef
# Similar to CLANG_BPF_BUILD_RULE, but using native Clang and bpf LLC
define CLANG_NATIVE_BPF_BUILD_RULE
	$(call msg,  CLANG-BPF,$(TRUNNER_BINARY),$2)
	$(call msg,CLNG-BPF,$(TRUNNER_BINARY),$2)
	($(CLANG) $3 -O2 -emit-llvm					\
		-c $1 -o - || echo "BPF obj compilation failed") | 	\
	$(LLC) -march=bpf -mcpu=probe $4 -filetype=obj -o $2
@@ -307,13 +310,13 @@ $(TRUNNER_EXTRA_OBJS): $(TRUNNER_OUTPUT)/%.o: \
		       $(TRUNNER_EXTRA_HDRS)				\
		       $(TRUNNER_TESTS_HDR)				\
		       $$(BPFOBJ) | $(TRUNNER_OUTPUT)
	$$(call msg,  EXTRA-OBJ,$(TRUNNER_BINARY),$$@)
	$$(call msg,EXT-OBJ,$(TRUNNER_BINARY),$$@)
	$$(CC) $$(CFLAGS) -c $$< $$(LDLIBS) -o $$@

# only copy extra resources if in flavored build
$(TRUNNER_BINARY)-extras: $(TRUNNER_EXTRA_FILES) | $(TRUNNER_OUTPUT)
ifneq ($2,)
	$$(call msg,  EXTRAS-CP,$(TRUNNER_BINARY),$(TRUNNER_EXTRA_FILES))
	$$(call msg,EXT-COPY,$(TRUNNER_BINARY),$(TRUNNER_EXTRA_FILES))
	cp -a $$^ $(TRUNNER_OUTPUT)/
endif