WIP: Switch the buildsystem to Meson
The current autotools build system is generally working, it is sort of old, it comes with different languages, and adds a lot of autogenerated files for releases; it also has portability issues (see #28).
Since libspectre does not have a complex build need, it is possible to replace it with Meson. This solves a number of issues:
- only a simple language for the build system, no need for m4 + make
- easier to modify than autotools
- no more libtool
- no more generated files on releases; the release tarball is way smaller now: ~53K xz-compressed vs. ~287K xz-compressed from autotools (recompressed from the original gz-compressed which is ~424K)
- pkg-config file generated automatically
- less than half the lines of meson files vs the autotools-related files
- faster to configure and build than autotools
Checklist:
-
builds fine -
works fine - I will do more checks
-
ninja dist
/meson dist
works -
CI works - sadly Trusty is too old for Meson+ninja, switched to Xenial
-
release stuff in Makefile.am
ported- is it still needed/used?
-
tested outside Linux (e.g. macOS or Windows) - cannot do on my own
-
adapt the fuzz stuff in test
, i.e.test/README
andtest/ossfuzz.sh
; possibly also the Dockerfile hosted on the oss-fuzz repository
libspectre 0.2.9 was released few months ago, and there are many months between releases: so this seems a good moment to switch the build system, as there is plenty of time to test it and fix it.