Skip to content

WIP: Switch the buildsystem to Meson

Pino Toscano requested to merge pino/libspectre:meson into master

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 and test/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.

Edited by Pino Toscano

Merge request reports