[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 14/33] build: add a more generic way to specify make->ninja depend
From: |
Alex Bennée |
Subject: |
[PULL 14/33] build: add a more generic way to specify make->ninja dependencies |
Date: |
Wed, 1 Jun 2022 19:05:18 +0100 |
From: Paolo Bonzini <pbonzini@redhat.com>
Let any make target specify ninja goals that needs to be built for it
(though selecting the goals is _not_ recursive on depending targets)
instead of having a custom mechanism only for "make check" and "make
bench".
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20220517092616.1272238-4-pbonzini@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20220527153603.887929-15-alex.bennee@linaro.org>
diff --git a/Makefile b/Makefile
index fad312040f..3c0d89057e 100644
--- a/Makefile
+++ b/Makefile
@@ -145,8 +145,7 @@ NINJAFLAGS = $(if $V,-v) $(if $(MAKE.n), -n) $(if
$(MAKE.k), -k0) \
$(filter-out -j, $(lastword -j1 $(filter -l% -j%, $(MAKEFLAGS)))) \
-d keepdepfile
ninja-cmd-goals = $(or $(MAKECMDGOALS), all)
-ninja-cmd-goals += $(foreach t, $(.check.build-suites), $(.check-$t.deps))
-ninja-cmd-goals += $(foreach t, $(.bench.build-suites), $(.bench-$t.deps))
+ninja-cmd-goals += $(foreach g, $(MAKECMDGOALS), $(.ninja-goals.$g))))
makefile-targets := build.ninja ctags TAGS cscope dist clean uninstall
# "ninja -t targets" also lists all prerequisites. If build system
diff --git a/scripts/mtest2make.py b/scripts/mtest2make.py
index 304634b71e..0fe81efbbc 100644
--- a/scripts/mtest2make.py
+++ b/scripts/mtest2make.py
@@ -81,12 +81,12 @@ def emit_prolog(suites, prefix):
def emit_suite_deps(name, suite, prefix):
deps = ' '.join(suite.deps)
- targets = f'{prefix}-{name} {prefix}-report-{name}.junit.xml {prefix}
{prefix}-report.junit.xml'
+ targets = [f'{prefix}-{name}', f'{prefix}-report-{name}.junit.xml',
f'{prefix}', f'{prefix}-report.junit.xml',
+ f'{prefix}-build']
print()
print(f'.{prefix}-{name}.deps = {deps}')
- print(f'ifneq ($(filter {prefix}-build {targets}, $(MAKECMDGOALS)),)')
- print(f'.{prefix}.build-suites += {name}')
- print(f'endif')
+ for t in targets:
+ print(f'.ninja-goals.{t} += $(.{prefix}-{name}.deps)')
def emit_suite(name, suite, prefix):
emit_suite_deps(name, suite, prefix)
--
2.30.2
- [PULL 07/33] tests/docker: update debian-armel-cross with lcitool, (continued)
- [PULL 07/33] tests/docker: update debian-armel-cross with lcitool, Alex Bennée, 2022/06/01
- [PULL 05/33] tests/lcitool: fix up indentation to correct style, Alex Bennée, 2022/06/01
- [PULL 09/33] tests/docker: update debian-mips64el-cross with lcitool, Alex Bennée, 2022/06/01
- [PULL 13/33] build: clean up ninja invocation, Alex Bennée, 2022/06/01
- [PULL 08/33] tests/docker: update debian-mipsel-cross with lcitool, Alex Bennée, 2022/06/01
- [PULL 12/33] configure: do not define or use the CPP variable, Alex Bennée, 2022/06/01
- [PULL 16/33] configure, meson: move symlinking of ROMs to meson, Alex Bennée, 2022/06/01
- [PULL 21/33] configure: introduce --cross-prefix-*=, Alex Bennée, 2022/06/01
- [PULL 11/33] tests/docker: update debian-amd64 with lcitool, Alex Bennée, 2022/06/01
- [PULL 25/33] configure: enable cross-compilation of optionrom, Alex Bennée, 2022/06/01
- [PULL 14/33] build: add a more generic way to specify make->ninja dependencies,
Alex Bennée <=
- [PULL 28/33] gitlab: introduce a common base job template, Alex Bennée, 2022/06/01
- [PULL 24/33] configure: enable cross-compilation of s390-ccw, Alex Bennée, 2022/06/01
- [PULL 18/33] tests/tcg: merge configure.sh back into main configure script, Alex Bennée, 2022/06/01
- [PULL 32/33] gitlab: don't run CI jobs in forks by default, Alex Bennée, 2022/06/01
- [PULL 31/33] gitlab: convert build/container jobs to .base_job_template, Alex Bennée, 2022/06/01
- [PULL 17/33] tests/tcg: correct target CPU for sparc32, Alex Bennée, 2022/06/01
- [PULL 33/33] docs/devel: clean-up the CI links in the docs, Alex Bennée, 2022/06/01
- [PULL 29/33] gitlab: convert Cirrus jobs to .base_job_template, Alex Bennée, 2022/06/01