I was thinking that a true shared library would be good also. Doing so would require a two-pass process. The first pass to generate the header using the C preprocessor only, and the second pass to actually implement the code. (The Allegro sources use preprocessor macros to generate the jump-table on the original MSDOS version.)
@thread
Also of note, I would want to write the AROS version first and port from there. I can use VirtualBox on my Intel Mac Mini to do parallel builds to speed up my compiling. I can make a cross-platform version after that.