- Edited
If you update your board AND local copy of Bela to the dev
branch, you should now be able to compile Heavy projects much quicker. A new feature of the Heavy server provides pre-built object files for Bela alongside the source files. So basically, only linking is done on the board.
This gives a huge performance improvement when first building a project (e.g.: 7 seconds vs over 1 minute), but still gives a good advantage when performing repeated builds after changing your Pd patch and recompiling, e.g.: 7 seconds vs 20 seconds for the "techno-world" project.
This is the new default behaviour. You can invoke the old behaviour (download source files, compile them all on the board) by passing the --src-only
command line option to the build_pd_heavy.sh
script.
Three small downsides of this new approach:
- uses more bandwidth (e.g.: 160KB vs 100KB)
- uses gcc 4.8.4
- currently, if you switch from using the pre-compiled version to using --src-only
, you have to manually re-trigger the build of Heavy_bela.o
and HeavyContext.o
, otherwise if only the former gets recompiled (which is not uncommon, given that it is the only file which changes at every build), you would then get a weird linker error (e.g.: /root/Bela/projects/hello-world/build/Heavy_bela.o:(.rodata+0x178): undefined reference to 'typeinfo for HeavyContext'
. If anyone has any good idea as to why this happens, please pitch in