track dependencies automatically in makefile
squash most of the default g++ warnings