You may come across a Makefile today or you may be writing one yourself. The Makefile will have some targets such as build, test, and install. When invoked, these tasks run a bunch of commands. Sadly, such Makefiles are no better than a task runner. Makefiles are much, much more capable.