A small make tool that is largely GNU make compatible and offers some (optional) extra features:
The current code covers the GNU make functionality used by my projects, but not all of GNU make. Patches for missing features welcome.
To enable the optional features in your Makefile add something like the following lines near the beginning of your Makefile:
buildlog^=bin/build.log jobs^=auto verbosity^=summary
It configures cppmake to keep track of compile times and prioritize accordingly (here: using bin/build.log as cache), to automatically start as many jobs as CPUs, and to keep the output minimal until an error occurs.