RequestForComments: script for build breaks prevention
Created originally on Bitbucket by frantony (Antony Pavlov)
The ML is not trivial software. Adding a new feature for one platform can break build for another camera.
To prevent the problems like this some techniques are developed.
E.g. here is a quote from U-Boot's General Patch Submission Rules http://www.denx.de/wiki/U-Boot/Patches
<< Before sending the patch, you must run the MAKEALL script on your patched source tree and make sure that no errors or warnings are reported for any of the boards. Well, at least not any more warnings than without your patch. >>
The script make-all.sh introduced in this commit is relatively small and simple. It just builds ML for all platforms. Also it quickly builds documentation. At the final the script prints out the statistics so it's easy to find a broken platforms (if any): see the 'target failed to compile' field.
$ cd magic-lantern $ make allsupported ... make: *** [shoot.o] Error 1 make: *** Waiting for unfinished jobs.... make: *** [100D] Error 2 FAILED Compiled in 2s Building docq OK Compiled in 7s ===================== SUMMARY ============================ compiled in 50s targets with warnings or errors: 18 ( 40D 50D 5D2 5DC 60D 7D 1100D 500D 550D 5D3 600D 650D 6D 7D_MASTER EOSM 700D 100D docq) target failed to compile: 4 ( 40D 5DC 700D 100D) make: *** [allsupported] Error 4