Hi flashrom community,
we've just merged a big overhaul to the meson build system, especially the programmer selection. Now it is easy to select a singe or a group of programmers, which was really painful before. Besides that, the meson file now works on non Linux systems, too.
To use meson you need to install meson (>=0.53.0) and ninja beside the other flashrom dependencies from your package distributor.
Create a buildconfiguration in <builddir> with `meson <builddir>` Compile the configuration with `ninja -C <builddir>`
Newer versions of meson may offer a nicer set of commands. Have a look at https://mesonbuild.com/Quick-guide.html
To create to build a configuration with custom flags, use `meson -Doption=value <builddir>` A single programmer can for example be selected by `-Dprogrammer=ch341a_spi` or multiple by `-Dprogrammer=ch341a_spi,dediprog`. All pci based programmers can be selected by `-Dprogrammer=group_pci`. The default for the programmer is `auto`, which selects all proper working programmers. The option `all` selects also those programmers. For all options, please have a look at meson_options.txt in the flashrom repository.
For aditional documentation look at Documentation/building.md in the flashrom repository.
Beside all efforts to get things working, there are still some limits: - On MacOS only external programmers are supported. The old solution for internal programmer with DirectHW is in an unknown state. - Crosscompiling to libpayload is not working. - Crosscompiling to dos with djgpp is likely to fail - Windows should be working with MinGW (MSYS2) but is not tested well - The unit tests might be failing to compile or run on non Linux platforms, use `meson -Dtests=disabled <builddir>` to exclude them from getting build. - Platforms with libusb < 1.0.16 or older FreeBSD / DragonFly BSDs might fail to compile. https://review.coreboot.org/c/flashrom/+67073 will drop this down to >=1.0.9.
I hope you will all enjoy these improvements and have fun testing it. If you find bugs or have problems, please respond to this mail.
-- Thomas