What is a makefile and how do I use it?
A make file describes the compilation process. It describes which flags, compiler tools, linkers, etc. to use with which source code files and objects
More info http://www.sis.pitt.edu/~mbsclass/tutorial/advanced/makefile/