Refactored Makefile

Let's try doing automatic dependency checking for a change.  If the depend
file doesn't exist, create it.  This will generate the dependencies.  Yes,
it includes system headers, but I'm not worried about that right now.