Chapter 12
Websites that go into great technical detail about using makefiles and compilers
https://www.gnu.org/software/make/manual/html_node/Quick-Reference.html#Quick-Reference
https://www.gnu.org/software/make/manual/html_node/Options-Summary.html#Options-Summary
https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html
This website from the NanYang Technological University in Singapore has a nice walk-through on how a makefile works and a diagram in its section 1.7 that highlights how a software project goes from people writing code in readable text files to software that actually runs on a computer.
https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
Additional Websites about compiling computer programs:
https://www.computerhope.com/unix/ucc.htm
https://stackoverflow.com/questions/1349166/what-is-the-difference-between-gcc-s-and-a-strip-command
https://stackoverflow.com/questions/1484817/how-do-i-make-a-simple-makefile-for-gcc-on-linux
https://stackoverflow.com/questions/11184389/what-does-wildcard-mean-in-makefile
https://www.gnu.org/software/make/manual/html_node/Concept-Index.html#Concept-Index_cp_symbol-4
Much of the makefile in this Chapter is adapted from:
https://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html

