I think the build system could stand some cleanup so that external build would not be needed and building many mainboards in one tree would be easy.
LinuxBIOS V1 allowed you to build any number of mainboards in one source tree -- it was initially modeled on the BSD
build system. objects were placed in a tree that followed the mainboard naming conventions.
We might want to think about getting back to multi-mainboard builds in one tree. Requiring people to use external build or overlayfs is kind of a burden.
It might be as simple as rewiring the build/ naming to something like
build/vendor/mainboard
There's also no fundamental reason for using the name .config other than tradition. We could, for example, create
build/vendor/mainboard/config and use that.
Then it's as simple as saying something like
MAINBOARD=vendor/mainboard make
and letting the build system figure out the rest.
You could also
export MAINBOARD=vendor/mainboard
when you are doing lots of builds for one mainboard.
I personally would find this extremely useful. Having to bounce around between the various riscv boards has been
inconvenient at best.
I'm willing to do the work if no one objects.