Makefile guide

We use Makefiles extensively to help make the developer’s life simpler and more efficient. Here are the key targets for the top-level Makefile.