adapted from http://stackoverflow.com/questions/14844268/makefile-template-for-large-c-project