buildman: Incorporate the genboardscfg.py tool
authorSimon Glass <sjg@chromium.org>
Tue, 12 Jul 2022 01:04:04 +0000 (19:04 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 5 Aug 2022 15:47:56 +0000 (11:47 -0400)
commita8a0141bc2c15fafd5afc96a089e9b2c6a0df340
tree8fab37eb6498a12bba67df6aee865a6b9a6ef1cc
parentc52bd22539f3bb009f73cc1608b155813f7e48a0
buildman: Incorporate the genboardscfg.py tool

Bring this tool into buildman, so we don't have to run it separately. The
board.cfg file is still produced as part of the build, to save time when
doing another build in the same working directory. If it is out of date
with respect to the Kconfig, it is updated.

Time to regenerate on a recent single-thread machine is 4.6s (1.3s on a
32-thread machine), so we do need some sort of cache if we want buildman
to be useful on incremental builds. We could use Python's pickle format
but:

- it seems useful to allow boards.cfg to be regenerated, at least for a
  while, in case other tools use it
- it is possible to grep the file easily, e.g. to find boards which use
  a particular SoC (similar to 'buildman -nv <soc>'

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
tools/buildman/README
tools/buildman/boards.py
tools/buildman/cmdline.py
tools/buildman/control.py