<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qemu/Makefile, branch master</title>
<subtitle>QEMU development tree</subtitle>
<id>https://git.zx2c4.com/qemu/atom/Makefile?h=master</id>
<link rel='self' href='https://git.zx2c4.com/qemu/atom/Makefile?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/'/>
<updated>2024-08-16T13:04:19Z</updated>
<entry>
<title>Makefile: trigger re-configure on updated pythondeps</title>
<updated>2024-08-16T13:04:19Z</updated>
<author>
<name>Alex Bennée</name>
<email>alex.bennee@linaro.org</email>
</author>
<published>2024-08-13T20:23:10Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=6fe12bc6593638932d195dd71517dc8048cdb2e6'/>
<id>urn:sha1:6fe12bc6593638932d195dd71517dc8048cdb2e6</id>
<content type='text'>
If we add additional deps for meson we need to ensure we trigger a
reconfigure to make sure everything is set up.

Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Signed-off-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20240813202329.1237572-3-alex.bennee@linaro.org&gt;
</content>
</entry>
<entry>
<title>Makefile: fix use of -j without an argument</title>
<updated>2024-04-12T10:02:12Z</updated>
<author>
<name>Matheus Tavares Bernardino</name>
<email>quic_mathbern@quicinc.com</email>
</author>
<published>2024-04-12T07:58:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=f9a7c4478c0dd64dc5eb00b6e8247c7d44d78540'/>
<id>urn:sha1:f9a7c4478c0dd64dc5eb00b6e8247c7d44d78540</id>
<content type='text'>
Our Makefile massages the given make arguments to invoke ninja
accordingly. One key difference is that ninja will parallelize by
default, whereas make only does so with -j&lt;n&gt; or -j. The make man page
says that "if the -j option is given without an argument, make will not
limit the number of jobs that can run simultaneously". We use to support
that by replacing -j with "" (empty string) when calling ninja, so that
it would do its auto-parallelization based on the number of CPU cores.

This was accidentally broken at d1ce2cc95b (Makefile: preserve
--jobserver-auth argument when calling ninja, 2024-04-02),
causing `make -j` to fail:

$ make -j V=1
  /usr/bin/ninja -v   -j -d keepdepfile all | cat
  make  -C contrib/plugins/ V="1" TARGET_DIR="contrib/plugins/" all
  ninja: fatal: invalid -j parameter
  make: *** [Makefile:161: run-ninja] Error

Let's fix that and indent the touched code for better readability.

Signed-off-by: Matheus Tavares Bernardino &lt;quic_mathbern@quicinc.com&gt;
Fixes: d1ce2cc95b ("Makefile: preserve --jobserver-auth argument when calling ninja", 2024-04-02)
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Makefile: preserve --jobserver-auth argument when calling ninja</title>
<updated>2024-04-08T08:04:44Z</updated>
<author>
<name>Martin Hundebøll</name>
<email>martin@geanix.com</email>
</author>
<published>2024-04-02T08:17:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=d1ce2cc95b71f41860bdff6f81c333cec11eae80'/>
<id>urn:sha1:d1ce2cc95b71f41860bdff6f81c333cec11eae80</id>
<content type='text'>
Qemu wraps its call to ninja in a Makefile. Since ninja, as opposed to
make, utilizes all CPU cores by default, the qemu Makefile translates
the absense of a `-jN` argument into `-j1`. This breaks jobserver
functionality, so update the -jN mangling to take the --jobserver-auth
argument into considerationa too.

Signed-off-by: Martin Hundebøll &lt;martin@geanix.com&gt;
Message-Id: &lt;20240402081738.1051560-1-martin@geanix.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Makefile: clean qemu-iotests output</title>
<updated>2023-12-31T08:11:28Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2023-11-03T09:00:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=c7e618d4d40603584f65a7e251e28e9b9ceac2b6'/>
<id>urn:sha1:c7e618d4d40603584f65a7e251e28e9b9ceac2b6</id>
<content type='text'>
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>build: Add update-linux-vdso makefile rule</title>
<updated>2023-10-30T20:41:56Z</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2023-09-29T20:43:50Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=335b8f700c42a011cf2855c47bf098be3d35bde4'/>
<id>urn:sha1:335b8f700c42a011cf2855c47bf098be3d35bde4</id>
<content type='text'>
This is not ideal, since it requires all cross-compilers
to be present rather than a simple subset.  But since it
is only run manually, should be good enough for now.

Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>configure, meson: remove target OS symbols from config-host.mak</title>
<updated>2023-09-07T11:32:37Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2023-08-30T09:39:45Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=1f2146f7ca0f04afc62c4a170ec78bd030f3e72f'/>
<id>urn:sha1:1f2146f7ca0f04afc62c4a170ec78bd030f3e72f</id>
<content type='text'>
Stop applying config-host.mak to the sourcesets, since it does not
have any more CONFIG_* symbols coming from the command line.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>configure: unify recursion into sub-Makefiles</title>
<updated>2023-09-07T11:32:37Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2023-08-30T10:05:08Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=2a5919ab642a3273698233ef46c83741eec327bf'/>
<id>urn:sha1:2a5919ab642a3273698233ef46c83741eec327bf</id>
<content type='text'>
Treat contrib/plugins the same as the firmware.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>Makefile: add lcitool-refresh to UNCHECKED_GOALS</title>
<updated>2023-07-03T11:51:30Z</updated>
<author>
<name>Alex Bennée</name>
<email>alex.bennee@linaro.org</email>
</author>
<published>2023-06-30T18:03:55Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=369dbbe091e2e1b9e603167cd4d9da5e9edaca8a'/>
<id>urn:sha1:369dbbe091e2e1b9e603167cd4d9da5e9edaca8a</id>
<content type='text'>
This is yet another make target you usually run in the top level of
the source directory.

Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Signed-off-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20230630180423.558337-11-alex.bennee@linaro.org&gt;
</content>
</entry>
<entry>
<title>build: further refine build.ninja rules</title>
<updated>2023-06-26T08:23:01Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2023-05-23T15:56:33Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=6c5f893d1771edc49fe6d3f8580be19a42b3b118'/>
<id>urn:sha1:6c5f893d1771edc49fe6d3f8580be19a42b3b118</id>
<content type='text'>
In commit b0fcc6fc7fc1 ("build: rebuild build.ninja using
"meson setup --reconfigure"", 2023-05-19) I changed the build.ninja
rule in the Makefile to use "meson setup" so that the Makefile would
pick up a changed path to the meson binary.

However, there was a reason why build.ninja was rebuilt using $(NINJA)
itself.  Namely, ninja has its own cache of file modification times,
and if it does not know about the modification that was done outside
its control, it will *also* try to regenerate build.ninja.  This can be
simply by running "make" on a fresh tree immediately after "configure";
that will trigger an unnecessary meson run.

So, apply a refinement to the rule in order to cover both cases:

- track the meson binary that was used (and that is embedded in
  build.ninja's reconfigure rules); to do this, write build.ninja.stamp
  right after executing meson successfully

- if it changed, force usage of "$(MESON) setup --reconfigure" to
  update the path in the reconfigure rule

- if it didn't change, use "$(NINJA) build.ninja" just like before
  commit b0fcc6fc7fc1.

Reported-by: Mark Cave-Ayland &lt;mark.cave-ayland@ilande.co.uk&gt;
Tested-by: Mark Cave-Ayland &lt;mark.cave-ayland@ilande.co.uk&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>build: remove git submodule handling from main makefile</title>
<updated>2023-06-06T14:30:01Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2023-05-19T11:27:10Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=1f468152fb2d461f2a5f8838a3bea9fd6aaa2207'/>
<id>urn:sha1:1f468152fb2d461f2a5f8838a3bea9fd6aaa2207</id>
<content type='text'>
The only remaining user of submodules at build time is roms/SLOF,
which is handled in pc-bios/s390-ccw/Makefile.  Remove the relevant
code from the main makefile.

Reviewed-by: Daniel P. Berrangé &lt;berrange@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
</feed>
