LitBuild¶
Literate programming was invented by Donald Knuth. The core principle of literate programming is that the primary users of the source code of a program are the people who are reading the source code to achieve an understanding of the program -- in many cases, because they want to make a change to that program -- and that the transformation of the source code into an executable program that can be run is a secondary use of the code.
Automated build tools -- like make, ant, and jam -- are great, because they allow developers on a project to focus their attention on the project codebase per se, and let the build system worry about how to compile and test it. There are lots of build systems, reflecting a wide disparity of design goals and value systems. Regardless of which build system is used, once a software project reaches a certain level of complexity, figuring out how the automated build actually works becomes a major undertaking independent of learning how the software itself is organized.
Litbuild is an attempt to bring these two ideas together. Our goal is to make it possible to write build scripts in such a way that they tell a story about how to build a project, focusing primarily on describing that build process so that other people can understand it -- while still providing enough structure to that story that the litbuild system can do an automated build of the project when desired.