Um... I really need a way to fail the build if certain modules are not included. Currently, if some module throws a compile error, the build system assumes it's simply not compatible with the current camera and removes it, with a warning message buried somewhere in the logs (i.e. not visible on the front page).
I don't want to manually "whitelist" modules either, so... here's an idea: fail the build whenever a module that used to work, now fails to compile.
Rough draft of what I think it might work (not tested):
- there should be a platform-specific (!) list of required modules (different wording welcome)
- when running "make zip" from scratch, all modules that happen to build successfully should be marked as "required" (i.e. added to that list)
- "make clean" should not erase that list (that's the whole point - to detect modules that worked in previous builds)
- there should be some way to erase that list (possibly with a short help when the build fails because of some module in that list)
- if some required module would fail to build, fail the entire build
- if some new module is successfully built when running "make zip", auto-add it to the list of required modules
- partial builds (make install ML_MODULES="foo bar baz") should keep working; I use these often, as it compiles much faster that way
- for example: platform/70D.112/Makefile.modules.required (or maybe modules/Makefile.modules.required.70D.112) might contain:
ML_MODULES_REQUIRED ?= \
mlv_lite \
mlv_play \
mlv_rec \
mlv_snd \
... (autogenerated list)
Who's going to help? May require a bit of Makefile hacking (something I'm not good at); otherwise, a Python script might do the job, too. You may come up with a different workflow, too, as long as it does the job.
Build updated. For cameras other than 70D, it's exactly the same as before.