qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"QEMU Developers" <qemu-devel@nongnu.org>
Subject: Re: deprecation of in-tree builds
Date: Tue, 31 Mar 2020 10:08:27 -0500	[thread overview]
Message-ID: <d447cca0-44b2-392b-3be6-32f17c255dea@redhat.com> (raw)
In-Reply-To: <20200331120220.GA7030@linux.fritz.box>

On 3/31/20 7:02 AM, Kevin Wolf wrote:
> Am 31.03.2020 um 09:48 hat Paolo Bonzini geschrieben:
>> On 30/03/20 16:37, Kevin Wolf wrote:
>>> If manually dealing with separate build directories is inconvenient
>>> today, it will still be inconvenient with Meson, so this would mean
>>> introducing the automatic directly creation together with the other
>>> changes to enable Meson. Which is fine by me, as long as it is really
>>> done when the external directory becomes mandatory, so that people won't
>>> have to switch back and forth between directories.
>>
>> Serious question: why is automatic directly creation more convenient for
>> developers?  Even if "./configure" generates a "build" directory for
>> you, you would still have to invoke the QEMU binary as
>> "build/x86_64-softmmu/qemu-system-x86_64".  That is less convenient than
>> doing "mkdir build" in the first place.
> 
> Mainly because it allows me to start everything (most importantly: my
> editor, git and make) from the same directory.
> 
> I guess the automatic directory creation is the less important part
> compared to a Makefile in the source tree that calls the Makefile in the
> build directory, because creation the directory is a one-time thing, but
> I call make all the time.

If we make in-tree ./configure create a GNUmakefile shim that 
auto-forwards to build/, it would also be possible to create symlinks to 
the various targets that will live in build.  I recently switched my 
qemu playground to use VPATH builds, but with symlinks such as qemu-img 
-> build/qemu-img, I can still use my muscle memory of an in-tree build 
for normal development.

> 
> Creating it automatically is nice especially for those who build QEMU
> for the first time and expect that the ./configure; make; make install
> sequence they are used to just works.
> 
> Prefixing build/ when using the binaries is a change, too, but I guess
> tab completion means that it's not much worse than prefixing ./

With symlinks, it is possible to give much more than 'make' the illusion 
of working in-tree.  It then boils down to a question of how many 
symlinks are worth creating.

> 
>> I can see why it's more convenient for packaging, as they just invoke
>> "make" and "make install", but as far as developers are concerned it
>> seems to add complexity for little or no gain.
> 
> I often use the same terminal for building/testing and git, or sometimes
> even a second editor for source code.
> 
> Kevin
> 
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org



  parent reply	other threads:[~2020-03-31 15:13 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-21 20:50 deprecation of in-tree builds Peter Maydell
2020-03-21 22:50 ` BALATON Zoltan
2020-03-23 13:32   ` Stefan Hajnoczi
2020-03-24 13:54     ` Eric Blake
2020-08-18 19:14     ` Peter Maydell
2020-08-20 10:54       ` Kevin Wolf
2020-08-20 11:14         ` Michael Tokarev
2020-08-20 11:56         ` Paolo Bonzini
2020-08-20 12:00           ` Peter Maydell
2020-08-20 13:30           ` Kevin Wolf
2020-08-20 14:10             ` Peter Maydell
2020-08-20 15:50             ` Paolo Bonzini
2020-08-20 16:14               ` Kevin Wolf
2020-08-20 17:39                 ` Paolo Bonzini
2020-08-21  9:55                   ` Gerd Hoffmann
2020-08-20 16:05       ` Daniel P. Berrangé
     [not found] ` <CAL1e-=gKB0qRxGntXrU0im2gjMh1tq_SLGTm+HsmgBRGXQ9+Bg@mail.gmail.com>
2020-03-22 17:20   ` Peter Maydell
2020-03-22 19:51     ` Aleksandar Markovic
2020-03-22 20:14       ` Peter Maydell
2020-03-22 20:45         ` Aleksandar Markovic
2020-03-22 20:46         ` BALATON Zoltan
2020-03-22 21:15           ` Peter Maydell
2020-03-23  0:35             ` BALATON Zoltan
2020-03-23 10:20         ` Daniel P. Berrangé
2020-03-30 13:26 ` Markus Armbruster
2020-03-30 13:31   ` Peter Maydell
2020-03-30 13:42     ` Daniel P. Berrangé
2020-03-30 14:37       ` Kevin Wolf
2020-03-30 17:29         ` Michal Suchánek
2020-03-30 17:36           ` Daniel P. Berrangé
2020-03-30 20:15           ` BALATON Zoltan
2020-03-31  7:48         ` Paolo Bonzini
2020-03-31  9:20           ` Liviu Ionescu
2020-03-31 10:19             ` Peter Maydell
2020-03-31 11:46               ` Liviu Ionescu
2020-03-31 12:07                 ` Kevin Wolf
2020-03-31 15:23                   ` Liviu Ionescu
2020-03-31 12:02           ` Kevin Wolf
2020-03-31 12:05             ` Peter Maydell
2020-03-31 12:24               ` Kevin Wolf
2020-03-31 12:32                 ` Peter Maydell
2020-03-31 15:08             ` Eric Blake [this message]
2020-03-31 15:20               ` BALATON Zoltan
2020-03-31 15:44                 ` Kevin Wolf
2020-03-31 12:54           ` BALATON Zoltan
2020-03-30 16:25     ` Aleksandar Markovic
2020-03-31  7:15     ` Markus Armbruster
2020-03-31 12:33       ` BALATON Zoltan
2020-03-31 12:50         ` Daniel P. Berrangé
2020-03-31 15:04           ` BALATON Zoltan
2020-03-31 15:23             ` Daniel P. Berrangé
2020-03-31 15:55               ` BALATON Zoltan
2020-03-31 10:38 ` Daniel P. Berrangé

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=d447cca0-44b2-392b-3be6-32f17c255dea@redhat.com \
    --to=eblake@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@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).