mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Switch from $? (all the prerequisites that are newer than the target) to $^ (all the prerequisites) as touching jevents.py will mean that empty-pmu-events.c won't be passed to the diff command breaking the build. Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Atish Patra <atishp@rivosinc.com> Cc: Changbin Du <changbin.du@huawei.com> Cc: Charles Ci-Jyun Wu <dminus@andestech.com> Cc: Eric Lin <eric.lin@sifive.com> Cc: Greentime Hu <greentime.hu@sifive.com> Cc: Guilherme Amadio <amadio@gentoo.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Inochi Amaoto <inochiama@outlook.com> Cc: James Clark <james.clark@linaro.org> Cc: Ji Sheng Teoh <jisheng.teoh@starfivetech.com> Cc: Jing Zhang <renyu.zj@linux.alibaba.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.g.garry@oracle.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@linux.dev> Cc: Locus Wei-Han Chen <locus84@andestech.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mike Leach <mike.leach@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Samuel Holland <samuel.holland@sifive.com> Cc: Sandipan Das <sandipan.das@amd.com> Cc: Vincent Chen <vincent.chen@sifive.com> Cc: Will Deacon <will@kernel.org> Cc: Xu Yang <xu.yang_2@nxp.com> Link: https://lore.kernel.org/r/20240805194424.597244-2-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
53 lines
1.9 KiB
Text
53 lines
1.9 KiB
Text
pmu-events-y += pmu-events.o
|
|
JDIR = pmu-events/arch/$(SRCARCH)
|
|
JSON = $(shell [ -d $(JDIR) ] && \
|
|
find $(JDIR) -name '*.json' -o -name 'mapfile.csv')
|
|
JDIR_TEST = pmu-events/arch/test
|
|
JSON_TEST = $(shell [ -d $(JDIR_TEST) ] && \
|
|
find $(JDIR_TEST) -name '*.json')
|
|
JEVENTS_PY = pmu-events/jevents.py
|
|
METRIC_PY = pmu-events/metric.py
|
|
METRIC_TEST_PY = pmu-events/metric_test.py
|
|
EMPTY_PMU_EVENTS_C = pmu-events/empty-pmu-events.c
|
|
PMU_EVENTS_C = $(OUTPUT)pmu-events/pmu-events.c
|
|
METRIC_TEST_LOG = $(OUTPUT)pmu-events/metric_test.log
|
|
TEST_EMPTY_PMU_EVENTS_C = $(OUTPUT)pmu-events/test-empty-pmu-events.c
|
|
EMPTY_PMU_EVENTS_TEST_LOG = $(OUTPUT)pmu-events/empty-pmu-events.log
|
|
|
|
ifeq ($(JEVENTS_ARCH),)
|
|
JEVENTS_ARCH=$(SRCARCH)
|
|
endif
|
|
JEVENTS_MODEL ?= all
|
|
|
|
#
|
|
# Locate/process JSON files in pmu-events/arch/
|
|
# directory and create tables in pmu-events.c.
|
|
#
|
|
|
|
ifeq ($(NO_JEVENTS),1)
|
|
$(PMU_EVENTS_C): $(EMPTY_PMU_EVENTS_C)
|
|
$(call rule_mkdir)
|
|
$(Q)$(call echo-cmd,gen)cp $< $@
|
|
else
|
|
$(METRIC_TEST_LOG): $(METRIC_TEST_PY) $(METRIC_PY)
|
|
$(call rule_mkdir)
|
|
$(Q)$(call echo-cmd,test)$(PYTHON) $< 2> $@ || (cat $@ && false)
|
|
|
|
$(TEST_EMPTY_PMU_EVENTS_C): $(JSON) $(JSON_TEST) $(JEVENTS_PY) $(METRIC_PY) $(METRIC_TEST_LOG)
|
|
$(call rule_mkdir)
|
|
$(Q)$(call echo-cmd,gen)$(PYTHON) $(JEVENTS_PY) none none pmu-events/arch $@
|
|
|
|
$(EMPTY_PMU_EVENTS_TEST_LOG): $(EMPTY_PMU_EVENTS_C) $(TEST_EMPTY_PMU_EVENTS_C)
|
|
$(call rule_mkdir)
|
|
$(Q)$(call echo-cmd,test)diff -u $^ 2> $@ || (cat $@ && false)
|
|
|
|
$(PMU_EVENTS_C): $(JSON) $(JSON_TEST) $(JEVENTS_PY) $(METRIC_PY) $(METRIC_TEST_LOG) $(EMPTY_PMU_EVENTS_TEST_LOG)
|
|
$(call rule_mkdir)
|
|
$(Q)$(call echo-cmd,gen)$(PYTHON) $(JEVENTS_PY) $(JEVENTS_ARCH) $(JEVENTS_MODEL) pmu-events/arch $@
|
|
endif
|
|
|
|
# pmu-events.c file is generated in the OUTPUT directory so it needs a
|
|
# separate rule to depend on it properly
|
|
$(OUTPUT)pmu-events/pmu-events.o: $(PMU_EVENTS_C)
|
|
$(call rule_mkdir)
|
|
$(call if_changed_dep,cc_o_c)
|