From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: berrange@redhat.com, alex.bennee@linaro.org, peter.maydell@linaro.org
Subject: [PATCH 0/7] build: replace ninjatool with ninja
Date: Wed, 14 Oct 2020 09:54:09 -0400 [thread overview]
Message-ID: <20201014135416.1290679-1-pbonzini@redhat.com> (raw)
This pull request is the last build system change for 5.2 from
me, and it is simple: similar to how we are invoking
ROM or tests/tcg "make" from the main Makefile, we now invoke ninja
to build QEMU. Unlike those cases, however, build.ninja targets are
forwarded transparently.
The advantages cover various areas:
- maintainability: we drop scripts/ninjatool.py, which is
a large and hairy piece of code, and generally remove one
thing that can go wrong and one thing that is unique to QEMU;
- platform support: we remove the requirement for GNU make
3.82, which was annoying on Mac. We also avoid bugs on Windows
due to meson emitting Windows rather than POSIX escapes (as
expected by Ninja) and ninjatool ignoring the difference;
- speed: invoking "configure" does not have to generate
44k lines of rules, while invoking "Make" does not anymore have
to parse 44k lines of rules.
- ease of use: Ninja tracks command lines, hence the problem
of static library changing the objects they hold goes away
Paolo
Paolo Bonzini (7):
tests/Makefile.include: unbreak non-tcg builds
make: run shell with pipefail
tests: add missing generated sources to testqapi
configure: move QEMU_INCLUDES to meson
dockerfiles: enable Centos 8 PowerTools
add ninja to dockerfiles, CI configurations and test VMs
build: replace ninjatool with ninja
.cirrus.yml | 6 +-
.travis.yml | 13 +
Makefile | 42 +-
configure | 29 +-
docs/devel/build-system.rst | 6 +-
meson.build | 34 +-
scripts/mtest2make.py | 4 +-
scripts/ninjatool.py | 1008 --------------------
tests/Makefile.include | 2 +-
tests/docker/dockerfiles/centos7.docker | 1 +
tests/docker/dockerfiles/centos8.docker | 4 +
tests/docker/dockerfiles/debian10.docker | 1 +
tests/docker/dockerfiles/fedora.docker | 1 +
tests/docker/dockerfiles/travis.docker | 2 +-
tests/docker/dockerfiles/ubuntu.docker | 1 +
tests/docker/dockerfiles/ubuntu1804.docker | 1 +
tests/docker/dockerfiles/ubuntu2004.docker | 1 +
tests/include/meson.build | 8 +-
tests/meson.build | 14 +-
tests/vm/centos | 2 +-
tests/vm/centos.aarch64 | 2 +-
tests/vm/fedora | 2 +-
tests/vm/freebsd | 1 +
tests/vm/netbsd | 1 +
tests/vm/openbsd | 1 +
tests/vm/ubuntu.aarch64 | 2 +-
tests/vm/ubuntu.i386 | 2 +-
27 files changed, 121 insertions(+), 1070 deletions(-)
delete mode 100755 scripts/ninjatool.py
--
2.26.2
next reply other threads:[~2020-10-14 13:58 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-14 13:54 Paolo Bonzini [this message]
2020-10-14 13:54 ` [PATCH 1/7] tests/Makefile.include: unbreak non-tcg builds Paolo Bonzini
2020-10-14 16:26 ` Daniel P. Berrangé
2020-10-14 13:54 ` [PATCH 2/7] make: run shell with pipefail Paolo Bonzini
2020-10-14 16:27 ` Daniel P. Berrangé
2020-10-14 13:54 ` [PATCH 3/7] tests: add missing generated sources to testqapi Paolo Bonzini
2020-10-14 16:27 ` Daniel P. Berrangé
2020-10-14 13:54 ` [PATCH 4/7] configure: move QEMU_INCLUDES to meson Paolo Bonzini
2020-10-14 16:28 ` Daniel P. Berrangé
2020-10-14 13:54 ` [PATCH 5/7] dockerfiles: enable Centos 8 PowerTools Paolo Bonzini
2020-10-14 16:33 ` Daniel P. Berrangé
2020-10-14 20:49 ` Cleber Rosa
2020-10-15 6:36 ` Paolo Bonzini
2020-10-14 13:54 ` [PATCH 6/7] add ninja to dockerfiles, CI configurations and test VMs Paolo Bonzini
2020-10-14 16:36 ` Daniel P. Berrangé
2020-10-15 6:50 ` Alex Bennée
2020-10-14 13:54 ` [PATCH 7/7] build: replace ninjatool with ninja Paolo Bonzini
2020-10-14 16:38 ` Daniel P. Berrangé
2020-10-14 13:57 ` [PATCH 0/7] " Peter Maydell
2020-10-15 6:15 ` Howard Spoelstra
2020-10-15 6:34 ` Paolo Bonzini
2020-10-15 7:39 ` Howard Spoelstra
2020-10-15 9:44 ` Paolo Bonzini
2020-10-15 17:39 ` Volker Rümelin
2020-10-15 18:49 ` Mark Cave-Ayland
2020-10-15 21:41 ` Paolo Bonzini
2020-10-16 9:35 ` Mark Cave-Ayland
2020-10-15 23:07 ` Howard Spoelstra
2020-10-15 18:21 ` 罗勇刚(Yonggang Luo)
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=20201014135416.1290679-1-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.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).