Updates to offline compiler

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.


Hello Mars,

I just got my first OWL device a Witch and am happily diving into it. It’s all very straight forward and well engineered I am ver happy with it. I am using Max/gen~ to port some work to it. Web-compiling and uploading works fine.
The only thing I could not find yet is a documentation of how I could compile and upload patches offline. In my studio I don’t have a well working internet connection, so being able to work offline would be a great help.
Could you point me to some resources (i am on MacOs, but if required i could mount a Linux machine as well).

Ideally there would be a step by step guide for dummies :slight_smile: I am not alien to programming, but this is a new deployment chain for me.


Hi Jan,

You should start here: https://github.com/pingdynasty/OwlProgram/

Using develop branch is recommended. While OWL itself is mostly developed on Linux, there are a few OSX users that build patches offline too. So it should work for you once you setup environment.

One more thing to keep in mind is that Gen~ patches require metadata file to be generated for correct output of CV, I think you would have to write them yourself. @mars probably can share an example of this. When building patches online this gets generated automatically based on parameter widgets configuration.


Thanks a lot Stas,
I will start to check it out these days.

Cheers Jan

1 Like