SCons documentation links

Unlike for other build systems, there is no single source of truth for SCons design and architecture, and thus for use.

SCons documentation

Documentation page at scons.org points to the pieces of the SCons documentation.

man page, Steven Knight and Anthony Roach, last updated March 2013. While technically a man page, this is also large and comprehensive, and is probably the single best existing piece of documentation on SCons.

User Guide, 2.3.0. This has useful and complementary information, but is not as complete as the man page.

API, 2.3.0. This is quickly becoming dangerous to use. This is generated automatically from comments in the source, and the comments in the source are often old. This is more useful as a quick-start before working on the SCons source than as a source of information about SCons. And even then, it’s probably more useful to just dive into the source code.

SCons source on bitbucket, and SCons Development practices on scons.org. Sometimes you just have to go to the source.

FAQ, from the SCons Wiki.

Papers

sccons Design Overview, Steven Knight, June 2000 (rescued via the Internet Archive). This was the second round draft of the Software Carpentry competition to create a modern build tool.

SCons Design version 0.91, Steven Knight, 2001. This was the last draft of the original SCons design, but is quickly getting out of date.

SCons Design and Implementation, Steven Knight, 2002 (paper presented at the Python 10 conference in 2002).

Empirical Comparison of SCons and GNU Make, Ludwig Hähne, 2008. This is a re-examination of theory and practice for make and SCons.

Related

Cons – A Software Construction System, FSF, 1996-2000. Cons is the predecessor to SCons, written by Bob Siddenbotham in 1991 in Perl, and first released in 1996.

Popular, Fast, or Usable: Pick One, 2010, an article somewhat unhappy with SCons performance.

Make Alternatives, Adrian Neagu, July 2005. A great overview to what was the state of the art in 2005. SCons comes out favorably by his criteria.

The Quest for the Perfect Build System, Noel Llopsis, 2005. Another great overview from 2005 (what was it about that year?). Here’s a working link to his generate_libs program: https://github.com/greatwolf/generate_libs.

Four Interesting Build Tools, Neil Mitchell, 2012. This is less comprehensive but far more up to date, and covers Redo, Ninja, Tup and Fabricate.

Wikipedia articles on SCons, Waf (an SCons derivative used by KDE for a few years until they switched to CMake), CMake (somewhat different direction than SCons).

waf is a rewrite of SCons by Thomas Nagy, obtained initial purchase from its use by KDE, who has since abandoned it in favor of CMake.

Tup, written by Mike Shal in C, is interesting and its techniques should be merged with SCons. Build System Rules and Algorithms is a 2009 paper describing the techniques used to make Tup. If we graded build systems by the combination of how funny and how analytical their authors are, Mike Shal would win.

ibb, written by Chad Austin in Python, is something similar, and its author even wrote Scalable Build Systems: An Analysis of Tup to compare it to ibb. See Your Version Control and Build Systems Don’t Scale for the main post about ibb.

redo is a new competitor to make, inspired by D.J. Bernstein. Purely top-down software rebuilding is a software thesis written by Alan Grosskurth in 2007 on redo.

Tundra is also something to look at – source is on Github at deplinenoise/tundra.

Shake, written by Neil Mitchell in Haskell, had several papers and videos released in 2012 describing it.

GBS, git-build-system, is a Tizen package build tool that builds from Git repositories.

gyp was written by Google to be Chromium’s build system. It takes an approach similar to CMake in that it generates project files for popular build environments instead of being the build environment as well as the build tool – e.g. it can generate Visual Studio or Xcode projects, as well as SCons or Make build files. The authors are Mark Mentovai and Steven Knight, although Steven Knight is not in the Members list for the project.

According to a Reddit thread on Tup, Steven Knight was hired to Google, the Chromium team used SCons for a bit, then Google switched to gyp (written by Steven Knight?) and subsequently there has been almost no progress on SCons itself.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>