Message ID | 1452687442-6186-10-git-send-email-wangnan0@huawei.com |
---|---|
State | New |
Headers | show |
On 2016/1/14 18:19, Jiri Olsa wrote: > On Wed, Jan 13, 2016 at 12:17:22PM +0000, Wang Nan wrote: > > SNIP > >> +$(FEATURES_DUMP_FILE_STATIC): >> + $(call clean) >> + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \ >> + echo "- $@: $$cmd" && echo $$cmd && \ >> + ( eval $$cmd ) 2>&1 >> + >> +$(foreach t,$(run) $(run_O),$(eval \ >> + $(t): $(if $(findstring make_static,$(t)),\ >> + $(FEATURES_DUMP_FILE_STATIC),\ >> + $(FEATURES_DUMP_FILE)))) >> + >> +$(foreach t,$(run),$(if $(findstring make_static,$(t)),\ >> + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\ >> + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE)))) >> + > the BUILD_TEST_FEATURE_DUMP rebuild is not silent: > > [jolsa@krava perf]$ rm BUILD_TEST_FEATURE_DUMP > [jolsa@krava perf]$ make -f tests/make > Testing Makefile > - /home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP: cd . && make FEATURE_DUMP_COPY=/home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump > cd . && make FEATURE_DUMP_COPY=/home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump > BUILD: Doing 'make -j4' parallel build > > Auto-detecting system features: > ... dwarf: [ on ] > ... glibc: [ on ] > ... gtk2: [ on ] > ... libaudit: [ on ] > ... libbfd: [ on ] > ... libelf: [ on ] > ... libnuma: [ on ] > ... numa_num_possible_cpus: [ on ] > ... libperl: [ on ] > ... libpython: [ on ] > ... libslang: [ on ] > ... libunwind: [ on ] > ... libdw-dwarf-unwind: [ on ] > ... zlib: [ on ] > ... lzma: [ on ] > ... get_cpuid: [ on ] > ... bpf: [ on ] > > ... > > > also should 'make clean' remove BUILD_TEST_FEATURE_DUMP? If a simple 'make clean' removes these two feature dump file then they are unable to reused by multiple test cases. During build-test 'make clean' is called many times. What about force removing these two files here: ifeq ($(MAKECMDGOALS),) # no target specified, trigger the whole suite all: @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) <--- *HERE* @echo "Testing Makefile"; $(MAKE) -sf tests/make MK=Makefile @echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf SET_PARALLEL=1 SET_O=1 else # run only specific test over 'Makefile' %: @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) <--- *and HERE* @echo "Testing Makefile"; $(MAKE) -sf tests/make MK=Makefile $@ endif > thanks, > jirka
diff --git a/tools/perf/tests/make b/tools/perf/tests/make index 336a6a6..10493ab 100644 --- a/tools/perf/tests/make +++ b/tools/perf/tests/make @@ -15,6 +15,7 @@ else PERF := . PERF_OUT := $(PERF) O_OPT := +FULL_O := $(shell readlink -f $(PERF_OUT) || echo $(PERF_OUT)) ifneq ($(O),) FULL_O := $(shell readlink -f $(O) || echo $(O)) @@ -319,5 +320,29 @@ all: $(run) $(run_O) tarpkg make_kernelsrc make_kernelsrc_tools out: $(run_O) @echo OK +FEATURES_DUMP_FILE := $(FULL_O)/BUILD_TEST_FEATURE_DUMP +FEATURES_DUMP_FILE_STATIC := $(FULL_O)/BUILD_TEST_FEATURE_DUMP_STATIC + +$(FEATURES_DUMP_FILE): + $(call clean) + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) feature-dump"; \ + echo "- $@: $$cmd" && echo $$cmd && \ + ( eval $$cmd ) 2>&1 + +$(FEATURES_DUMP_FILE_STATIC): + $(call clean) + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \ + echo "- $@: $$cmd" && echo $$cmd && \ + ( eval $$cmd ) 2>&1 + +$(foreach t,$(run) $(run_O),$(eval \ + $(t): $(if $(findstring make_static,$(t)),\ + $(FEATURES_DUMP_FILE_STATIC),\ + $(FEATURES_DUMP_FILE)))) + +$(foreach t,$(run),$(if $(findstring make_static,$(t)),\ + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\ + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE)))) + .PHONY: all $(run) $(run_O) tarpkg clean make_kernelsrc make_kernelsrc_tools endif # ifndef MK
To prevent feature check run too many times, this patch utilizes previous introduced feature-dump make target and FEATURES_DUMP variable, makes sure the feature checkers run only once when doing build-test for normal test cases. Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> --- tools/perf/tests/make | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) -- 1.8.3.4