From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/7] configure: integrate Meson in the build system
Date: Thu, 27 Jun 2019 13:55:05 +0100 [thread overview]
Message-ID: <20190627125505.GH12358@redhat.com> (raw)
In-Reply-To: <b8ae5bd6-2b52-99e0-993c-fe8f65d40da3@redhat.com>
On Thu, Jun 27, 2019 at 12:16:05PM +0200, Paolo Bonzini wrote:
> On 27/06/19 11:03, Daniel P. Berrangé wrote:
> > On Mon, Jun 10, 2019 at 01:14:57PM +0200, Paolo Bonzini wrote:
> >> The Meson build system is integrated in the existing configure/make steps
> >> by invoking Meson from the configure script and converting Meson's build.ninja
> >> rules to an included Makefile.
> >
> > Why did you take the route of converting ninja rules into makefile
> > rules, as opposed to just having some stub makefile rules which
> > directly invoke ninja where needed ?
>
> There are two parts of this. One is practical and has to do with
> supporting a step-by-step transition. Using ninja2make makes it trivial
> to have make build products that depend on meson build products, and
> this way bottom up is a natural direction to do the conversion, which is
> bottom up. You'd start from libqemuutil.a and code generators (tracing
> + QAPI), then go to the tools and the emulators.
Ok, I can understand that. I've been thinking about how we can switch
libvirt to use meson too, and trying to decide between meson being the
owner, calling out to make vs keeping make as the owner and calling
out to meson. Ultimately to entirely banish make, autoconf, automake,
libtool, m4 & shell from our build system :-)
Despite thinking about an incremental conversion though, I was still
hoping libvirt would just have a single (largish) patch series to
do a complete conversion at a specific point in time.
> > Obviously this series is just some initial integration, but eventually
> > when we get a complete conversion, I think it will look pretty wierd
> > if we're still converting ninja to make.
>
> I agree; once all the build rules are converted the Makefile could be as
> simple as
>
> all:
> include config.mak
> include tests/docker/Makefile.include
> include tests/vm/Makefile.include
> .NOTPARALLEL:
> %:
> ninja $@
>
> subdir-%-softmmu:
> ninja qemu-system-$*
>
> subdir-%-linux-user:
> ninja qemu-$*
>
> check:
> $(MESON) test
>
> check-%:
> $(MESON) test --suite $*
>
> etc. (and likewise the configure script could just translate the command
> line options before invoking meson). But for now, since rules are
> written half in meson and half in make, ninja2make seems the most
> transparent way to integrate the two.
Ok, I think it understand the motiviation better now that its obviously
just a short term expedient step to convert ninja to make.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2019-06-27 12:56 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-10 11:14 [Qemu-devel] [RFC PATCH 0/7] Proof of concept for Meson integration Paolo Bonzini
2019-06-10 11:14 ` [Qemu-devel] [PATCH 1/7] configure: do not include $(...) variables in config-host.mak Paolo Bonzini
2019-06-10 11:14 ` [Qemu-devel] [PATCH 2/7] configure: set $PYTHON to a full path Paolo Bonzini
2019-06-10 11:14 ` [Qemu-devel] [PATCH 3/7] configure: integrate Meson in the build system Paolo Bonzini
2019-06-26 17:34 ` Markus Armbruster
2019-06-27 8:52 ` Paolo Bonzini
2019-06-27 9:46 ` Christophe de Dinechin
2019-06-27 9:03 ` Daniel P. Berrangé
2019-06-27 10:16 ` Paolo Bonzini
2019-06-27 12:23 ` Markus Armbruster
2019-06-27 12:50 ` Daniel P. Berrangé
2019-06-27 12:57 ` Paolo Bonzini
2019-06-27 12:55 ` Daniel P. Berrangé [this message]
2019-06-27 13:16 ` Gerd Hoffmann
2019-06-27 13:20 ` Paolo Bonzini
2019-06-27 13:27 ` Daniel P. Berrangé
2019-06-10 11:14 ` [Qemu-devel] [PATCH 4/7] libvhost-user: convert to Meson Paolo Bonzini
2019-06-27 9:03 ` Markus Armbruster
2019-06-10 11:14 ` [Qemu-devel] [PATCH 5/7] vhost-user-blk: " Paolo Bonzini
2019-06-10 11:15 ` [Qemu-devel] [PATCH 6/7] vhost-user-scsi: " Paolo Bonzini
2019-06-27 11:23 ` Markus Armbruster
2019-06-27 12:31 ` Paolo Bonzini
2019-06-10 11:15 ` [Qemu-devel] [PATCH 7/7] rdmacm-mux: " Paolo Bonzini
2019-06-27 11:38 ` Markus Armbruster
2019-06-27 12:21 ` Paolo Bonzini
2019-06-10 12:33 ` [Qemu-devel] [RFC PATCH 0/7] Proof of concept for Meson integration no-reply
2019-06-10 12:36 ` no-reply
2019-06-10 12:40 ` no-reply
2019-06-27 12:39 ` Markus Armbruster
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=20190627125505.GH12358@redhat.com \
--to=berrange@redhat.com \
--cc=pbonzini@redhat.com \
--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).