The answer is "if you can compile it, it will work *".
The * denotes that if the if the external is doing something strange (e.g.: threads, locking, mutexes in the audio thread etc etc) then it may require additional linker flags and possibly code edits to make it run in real-time safe mode.
I just compiled iemlib
with
make PDSOURCE=/usr/local/include/libpd/ -C iemlib1/src
make PDSOURCE=/usr/local/include/libpd/ -C iemlib2/src
and it worked fine after I removed
../../iemlib2/src/dollarg.c
../../iemlib2/src/parentdollarzero.c
../../iemlib2/src/protect_against_open.c
because they were requiring some extra headers we do not have on the board (g_canvas.h
), but I guess we could just add that in if needed.
A longer discussion is here: https://forum.bela.io/d/101-compiling-puredata-externals/40