Add warnings, fix syntax errors and 'clean' target.

Some of the warnings may be too much for you. Disable those you don't
like.