|
15 | 15 | PERF := .
|
16 | 16 | PERF_O := $(PERF)
|
17 | 17 | O_OPT :=
|
| 18 | +FULL_O := $(shell readlink -f $(PERF_O) || echo $(PERF_O)) |
18 | 19 |
|
19 | 20 | ifneq ($(O),)
|
20 | 21 | FULL_O := $(shell readlink -f $(O) || echo $(O))
|
@@ -313,11 +314,43 @@ make_kernelsrc_tools:
|
313 | 314 | (make -C ../../tools $(PARALLEL_OPT) $(K_O_OPT) perf) > $@ 2>&1 && \
|
314 | 315 | test -x $(KERNEL_O)/tools/perf/perf && rm -f $@ || (cat $@ ; false)
|
315 | 316 |
|
| 317 | +FEATURES_DUMP_FILE := $(FULL_O)/BUILD_TEST_FEATURE_DUMP |
| 318 | +FEATURES_DUMP_FILE_STATIC := $(FULL_O)/BUILD_TEST_FEATURE_DUMP_STATIC |
| 319 | + |
316 | 320 | all: $(run) $(run_O) tarpkg make_kernelsrc make_kernelsrc_tools
|
317 | 321 | @echo OK
|
| 322 | + @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) |
318 | 323 |
|
319 | 324 | out: $(run_O)
|
320 | 325 | @echo OK
|
| 326 | + @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) |
| 327 | + |
| 328 | +ifeq ($(REUSE_FEATURES_DUMP),1) |
| 329 | +$(FEATURES_DUMP_FILE): |
| 330 | + $(call clean) |
| 331 | + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) feature-dump"; \ |
| 332 | + echo "- $@: $$cmd" && echo $$cmd && \ |
| 333 | + ( eval $$cmd ) > /dev/null 2>&1 |
| 334 | + |
| 335 | +$(FEATURES_DUMP_FILE_STATIC): |
| 336 | + $(call clean) |
| 337 | + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \ |
| 338 | + echo "- $@: $$cmd" && echo $$cmd && \ |
| 339 | + ( eval $$cmd ) > /dev/null 2>&1 |
| 340 | + |
| 341 | +# Add feature dump dependency for run/run_O targets |
| 342 | +$(foreach t,$(run) $(run_O),$(eval \ |
| 343 | + $(t): $(if $(findstring make_static,$(t)),\ |
| 344 | + $(FEATURES_DUMP_FILE_STATIC),\ |
| 345 | + $(FEATURES_DUMP_FILE)))) |
| 346 | + |
| 347 | +# Append 'FEATURES_DUMP=' option to all test cases. For example: |
| 348 | +# make_no_libbpf: NO_LIBBPF=1 --> NO_LIBBPF=1 FEATURES_DUMP=/a/b/BUILD_TEST_FEATURE_DUMP |
| 349 | +# make_static: LDFLAGS=-static --> LDFLAGS=-static FEATURES_DUMP=/a/b/BUILD_TEST_FEATURE_DUMP_STATIC |
| 350 | +$(foreach t,$(run),$(if $(findstring make_static,$(t)),\ |
| 351 | + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\ |
| 352 | + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE)))) |
| 353 | +endif |
321 | 354 |
|
322 | 355 | .PHONY: all $(run) $(run_O) tarpkg clean make_kernelsrc make_kernelsrc_tools
|
323 | 356 | endif # ifndef MK
|
0 commit comments