qemu-devel
[Top][All Lists]
Advanced

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

Re: "make clean" after "git pull" runs configure before cleaning.


From: Rob Landley
Subject: Re: "make clean" after "git pull" runs configure before cleaning.
Date: Fri, 15 Nov 2024 15:15:20 -0600
User-agent: Mozilla Thunderbird

On 11/14/24 17:33, Paolo Bonzini wrote:
On 11/15/24 00:10, Rob Landley wrote:
Seems a _bit_ awkward to do that (and potentially fail on a random new dependency) just to delete it all again?

That's just how Make works.

Linux and busybox and so on use make, and I've never seen "make clean" trigger a "make defconfig" there.

(Or do you mean "Make" is different from "gmake" the way "kbuild" is different from "make" and you distinguish your build system from the make command by capitalizing it? Alas the last time I understood everything qemu was doing was probably 2008, pace of change got too fast sometime after dyngen was replaced by tcg...)

If it finds that Makefile is old, it first regenerates Makefile and only then looks at the target.

I'm pretty sure the make command doesn't internally know how to run the configure script, the Makefile would have to include plumbing to make that decision, and it at least LOOKS like it's trying not to in the top level Makefile line 336:

  # Don't try to regenerate Makefile or configure
  # We don't generate any of them
  Makefile: ;
  configure: ;

I note that if you run "make clean" twice in a row, it doesn't re-run configure in between. It's only when a stale target exists, which seems to involve dependencies making a decision. (The file NOT existing doesn't trigger action, but the file being "old" does.)

  See "How Makefiles Are Remade" in GNU Make's manual:

I've read it, albeit not recently. (I have a probably post-1.0 todo item to write a gmake compatible make for toybox, long story.)

"After reading in all makefiles 'make' will consider each as a goal target, in the order in which they were processed, and attempt to update it. [...] After all makefiles have been checked, if any have actually been changed, 'make' starts with a clean slate and reads all the makefiles over again".

So it's an artifact of the way you're using make, and hard to fix then?

*shrug* I'd use 'git clean -fdx' instead but I'm not sure how that interacts with multiple submodules.

And I dunno what it's saying about the meson version

QEMU bundles a copy of Meson because it needs a very new one.

Ok.

Paolo

Rob



reply via email to

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