On 18/04/19 10:21, Markus Armbruster wrote: > Paolo Bonzini <pbonz...@redhat.com> writes: > >> Hi all, >> >> lately I have been thinking of converting the QEMU build system to >> Meson. Meson is a relatively new build system that can replace >> Autotools or hand-written Makefiles such as QEMU; as a die-hard >> Autotools fan, I must say that Meson is by far better than anything else >> that has ever tried to replace Autotools, and actually has the potential >> to do so. >> >> Advantages of Meson that directly matter for QEMU include: >> >> - build definitions in a very readable and user friendly DSL, which >> supports looping and conditions. >> >> - ability to introspect the build definitions so that you can find out >> what is built without building it (the DSL is not Turing complete and >> most objects in it are immutable, so it cannot be abused that much :)) >> >> - support for a non-recursive build from per-subdirectory input (similar >> to Makefile.objs) > > Could Meson build the $(TARGET_DIRS) non-recursively?
Yes. It doesn't support recursive builds at all, in fact. If you can stand the C++, you can find a "testcase slash example with obvious QEMU inspiration" at https://github.com/mesonbuild/meson/pull/5028/commits/9495ea241aaca5c2242dac1654ef3168bee1657a. In fact, that pull request is basically the last obvious missing piece before one could seriously try Meson for QEMU. Then of course there are the non-obvious missing pieces, but those are more bugfixes than anything else. Paolo > > I'm asking because I find the make recursion there annoying. As usual > with recursion, we have to dumb down dependencies: if anything made by > the recursion needs X, then everything does. If making X fails, we > don't recurse. Defeats -k. > >> - ease of distributing a full copy of Meson to support distros that ship >> an older version (no dependencies apart from Python 3.5). At 40000 >> lines of Python, Meson is relatively small. > > [...] >