To make sure I don't miss my targetted audience's needs, what would be your demands for such a Makefile?
- Automatic dependency handling;
- handling various types of input (.c, .cpp, .s, .S, .ll, .yy, ...);
- keeping source directories clean, i.e. building in seperate directories;
- allowing each module to specify what it builds and which flags it uses in addition to the global ones (through Makefile includes akin in syntax to automake "Makefile.am");
- distinguishing between "local" headers (for in-module use only) and "global" headers (external interface of modules);
- capability of building per-translation-unit test drivers, as the current tutorial does;
- no additional dependencies other than a recent version of GNU make (i.e., no $(shell ...) calls, one of the central improvements over the current tutorial);
- ...