Software Carpentry: SC Build; or making a better make
Software tools often grow incrementally from small beginnings into elaborate artefacts. Each increment makes sense, but the final edifice is a mess. make is an excellent example: a simple tool that has grown into a complex domain-specific programming language. I look forward to seeing the improvements we will get from designing the tool afresh, as a whole…
— Simon Peyton-Jones, Microsoft Research (quote taken from SC Build page)
Most people who have had to compile an existing software tool
will have come across the venerable make
tool
(which usually these days means GNU Make).
It allows the developer to write a declarative set of rules
specifying how the final software should be built
from its component parts,
mostly source code,
allowing the build itself to be carried out
by simply typing make
at the command line and hitting Enter
.