From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: alex.bennee@linaro.org, richard.henderson@linaro.org
Subject: [PATCH 03/16] build: add a more generic way to specify make->ninja dependencies
Date: Tue, 17 May 2022 11:26:03 +0200 [thread overview]
Message-ID: <20220517092616.1272238-4-pbonzini@redhat.com> (raw)
In-Reply-To: <20220517092616.1272238-1-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>
---
Makefile | 3 +--
scripts/mtest2make.py | 8 ++++----
2 files changed, 5 insertions(+), 6 deletions(-)
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.36.0
next prev parent reply other threads:[~2022-05-17 9:29 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-17 9:26 [PATCH 00/16] Cross compilation of embedded firmware Paolo Bonzini
2022-05-17 9:26 ` [PATCH 01/16] configure: do not define or use the CPP variable Paolo Bonzini
2022-05-17 18:07 ` Richard Henderson
2022-05-17 18:47 ` Paolo Bonzini
2022-05-17 9:26 ` [PATCH 02/16] build: clean up ninja invocation Paolo Bonzini
2022-05-17 18:08 ` Richard Henderson
2022-05-17 9:26 ` Paolo Bonzini [this message]
2022-05-17 9:26 ` [PATCH 04/16] build: do a full build before running TCG tests Paolo Bonzini
2022-05-17 18:10 ` Richard Henderson
2022-05-17 9:26 ` [PATCH 05/16] configure, meson: move symlinking of ROMs to meson Paolo Bonzini
2022-05-17 9:26 ` [PATCH 06/16] tests/tcg: correct target CPU for sparc32 Paolo Bonzini
2022-05-17 18:11 ` Richard Henderson
2022-05-17 9:26 ` [PATCH 07/16] tests/tcg: merge configure.sh back into main configure script Paolo Bonzini
2022-05-17 18:15 ` Richard Henderson
2022-05-17 9:26 ` [PATCH 08/16] configure: add missing cross compiler fallbacks Paolo Bonzini
2022-05-17 18:15 ` Richard Henderson
2022-05-17 9:26 ` [PATCH 09/16] configure: handle host compiler in probe_target_compiler Paolo Bonzini
2022-05-17 18:16 ` Richard Henderson
2022-05-17 9:26 ` [PATCH 10/16] configure: introduce --cross-prefix-*= Paolo Bonzini
2022-05-17 9:26 ` [PATCH 11/16] configure: include more binutils in tests/tcg makefile Paolo Bonzini
2022-05-17 9:26 ` [PATCH 12/16] configure: move symlink configuration earlier Paolo Bonzini
2022-05-17 9:26 ` [PATCH 13/16] configure: enable cross-compilation of s390-ccw Paolo Bonzini
2022-05-17 9:26 ` [PATCH 14/16] configure: enable cross-compilation of optionrom Paolo Bonzini
2022-05-17 9:26 ` [PATCH 15/16] configure: enable cross compilation of vof Paolo Bonzini
2022-05-17 9:26 ` [PATCH 16/16] configure: remove unused variables from config-host.mak Paolo Bonzini
2022-05-24 15:53 ` [PATCH 00/16] Cross compilation of embedded firmware Alex Bennée
2022-05-25 13:16 ` Paolo Bonzini
2022-05-26 9:48 ` Paolo Bonzini
2022-05-26 16:49 ` Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220517092616.1272238-4-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).