We’re making some changes to how the offline compilation works, ie compiling with OwlProgram.
Compilation is now split into two parts: libs and patch. Patch is where your code goes. Libs is everything else.
All you have to do is run this command once:
make libs
If you don’t do make libs you will see this error:
arm-none-eabi-gcc: error: Libraries/libowlprg.a: No such file or directory
make libs compiles all the code that is not patch specific, and places the results in two archive files with .a suffix in Libraries. Run this again if you update the project source code, e.g. with a git pull.
To recompile the libs from scratch you can:
make realclean libs
If you don’t have emscripten installed (for building Javascript patches) then make libs will fail with:
/bin/sh: 1: emcc: not found
If you are not using the web target (i.e. not producing Javascript output) then this can be safely ignored, as the main archive will have been produced (in Libraries/libowlprg.a).
Patch compilation works just as before, only it doesn’t build the libs, and make clean only removes the patch specific code. And it’s faster, especially if you use emscripten.
These changes now speed up online compilation by about 10 seconds.
I am not alien to programming, but this is a new deployment chain for me.