Appendix A. Documenting Commands and Creating Workflows with make
The make program was created in 1976 to help build executable programs from source code files.
Though it was originally developed to assist with programming in the C language, it is not limited to that language or even to the task of compiling code.
According to the manual, one “can use it to describe any task where some files must be updated automatically from others whenever the others change.”
The make program has evolved far beyond its role as a build tool to become a workflow system.
Makefiles Are Recipes
When you run the make command, it looks for a file called Makefile (or makefile) in the current working directory.
This file contains recipes that describe discrete actions that combine to create some output.
Think of how a recipe for a lemon meringue pie has steps that need to be completed in a particular order and combination.
For instance, I need to separately create the crust, filling, and meringue and then put them together and bake them before I can enjoy a tasty treat.
I can visualize this with something called a string diagram, as illustrated in Figure A-1.
Figure A-1. A string diagram describing how to make a pie, adapted from Brendan Fong and David Spivak, An Invitation to Applied Category Theory (Seven Sketches in Compositionality), Cambridge University Press, 2019
It’s not important if you make ...