Instructor Notes

Andrew Fraser derived this tutorial from the Software Carpentry make-novice lesson. Most of the material has been modified a lot. This document has only been pruned.

Make is a popular tool for automating the building of software - compiling source code into executable programs.

Though Make is nearly 40 years old, and there are many other build tools available, its fundamental concepts are common across build tools.

Researchers are finding Make of use in implementing reproducible research workflows, automating data analysis and visualization (using Python or R) and combining tables and plots with text to produce reports and papers for publication.

Beware of Spaces!


The single most commonly occurring problem will be students using spaces instead of TABs when indenting actions.

Makefile Dependency Images


Some of these pages use images of Makefile dependencies, in the fig directory.

These are created using [makefile2graph], which is assumed to be in the PATH. This tool, in turn, needs the dot tool, part of [GraphViz][graphviz].

Beware of different Make implementations!


The lesson is based on GNU Make. Although it is very rare, on some systems (e.g. AIX) you might find make not pointing to GNU Make and gmake needs to be used instead.

Command Line


First Makefile


No Hands


Testing


Coding Standards


Documentation