Simpler clean rule
Make the `all` rule PHONY
Include <sys/queue.h> in the source code

The BSD's queue.h header file is not available everywhere. For example,
Emscripten cannot find it, I double MingW can either.
Break findToneTarget() into non-nested functions

Function nesting is a GNU compiler-specific feature. Clang doesn't
support it.
Remove an unnecessary comment in Makefile
Add a Javascript target built with Emscripten in engine.mk

To build the Javascript library, make sure Emscripten is installed and
available in your PATH. Then run:

$ emmake make js

The js target is only available for the static library build.