Makefile cleanups

- use native make constucts
- Use output flag instead of '>'
- avoid spamming bogus tmp files

This does not address the non-portable constructs in the makefile.