qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 0/7] build: replace ninjatool with ninja


From: Paolo Bonzini
Subject: [PATCH 0/7] build: replace ninjatool with ninja
Date: Wed, 14 Oct 2020 09:54:09 -0400

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]