Some minor build system improvements in trunk 1898-1899 and 1902-1904
1) batch-print-missing-dumps. This checks that each firmware in the camera list has a non-zero sized primary.bin, so you don't have to wait for a whole batch build to find out.
2) batch builds clean and make tools once each for vxworks and dryos, instead of once per firmware. See SKIP_TOOLS variable.
3) camera_list.csv can now be overridden by setting CAMERA_LIST on the command line or your buildconf.inc. You can make these by hand, cutting/pasting out of the default list. This might be useful if you own several cameras, or want to produce zips for all the subs of a given model. Or...
4) os-camera-lists target, generates camera_list_dryos.csv and camera_list_vxworks.csv, which you can then use in with #3. This is useful if you want to regenerate stubs for one platform only. Note that the generated list will not include cameras with skip_autobuild set in the input CAMERA_LIST.
#3 and #4 could probably be automated further, but I'm not sure it's worth the trouble.
The same approach used in SKIP_TOOLS could theoretically be applied to modules, but the modules sources would need a careful audit to make sure they are 100% platform independent. There are currently some things that will differ (sodoku for example references CAM_HAS_ERASE_BUTTON).
It would be good to ensure that platform specific #defines are not available in module code. Adding a define that is set when building a module and using that to exclude camera.h and the propcase.h files from platform.h would be a start, but #ifdefs will just see undefined rather than generating an error. There are also some other #ifdefs floating around in platform.h, and probably some other includes.