<div dir="ltr"><div dir="ltr">[Cross-posted on GitHub]<br><br>Hello everyone,<br><br>Following a more-or-less recent trend, I wrote some time ago a Meson<br>build file for babeld.<br><br>From [Meson][1] website:<br>> Meson is an open source build system meant to be both extremely<br>> fast, and, even more importantly, as user friendly as possible.<br><br>If you're familiar with CMake, Meson achieves the same end result, but<br>with ease and simplicity. Meson outputs a [Ninja][2] build file; a<br>"small build system with a focus on speed". Notable projects using<br>Meson+Ninja are Xorg, Mesa, GNOME. Ninja is also used by LLVM and<br>Chromium.<br><br><br>I believe this would help compiling babeld with optimizations in mind<br>(such as LTO), releasing source tarballs, binaries, and distro<br>packages, and also help managing upcoming crypto dependencies.<br>On my laptop, a clean build takes 5s with Meson+Ninja, from 10s with<br>make.<br><br>I think (and hope) it will help distro packagers, especially when<br>cross-compiling. The release process is eased, and the compilation<br>time is fastened.<br><br><br>Meson is an out-of-source build process, and boils down to:<br><br>    $ meson build && cd build && ninja<br><br>A single `ninja` is needed to (incrementally) rebuild.<br><br>Releasing a source tarball of babeld is easy; simply edit<br>`meson.build` to specify the version tag, then:<br><br>    meson release && ninja -C release dist<br><br>…and the tarball will be found in the `release/meson-dist` directory.<br><br><br>Both build systems can still be used. The required changes are:<br>- renaming of `babeld.man` to `babeld.8`;<br>- use of a ` <a href="http://version.h.in">version.h.in</a>` configure file;<br>- `version.h` file is regenerated at each build.<br><br><br>The pull-request lives on GitHub [3]. I think the whole thing can<br>prove useful, in any case please let me know your thoughts. I'd<br>appreciate insights from distro packagers.<br><br>-- Antonin Décimo<br><br>[1]: <a href="http://mesonbuild.com/">http://mesonbuild.com/</a><br>[2]: <a href="https://ninja-build.org/">https://ninja-build.org/</a><br>[3]: <a href="https://github.com/jech/babeld/pull/21">https://github.com/jech/babeld/pull/21</a><br><br></div></div>