Preface

Thank you for taking the time to read about SCons. SCons is a next-generation software construction tool, or make tool--that is, a software utility for building software (or other files) and keeping built software up-to-date whenever the underlying input files change.

The most distinctive thing about SCons is that its configuration files are actually scripts, written in the Python programming language. This is in contrast to most alternative build tools, which typically invent a new language to configure the build. SCons still has a learning curve, of course, because you have to know what functions to call to set up your build properly, but the underlying syntax used should be familiar to anyone who has ever looked at a Python script.

Paradoxically, using Python as the configuration file format makes SCons easier for non-programmers to learn than the cryptic languages of other build tools, which are usally invented by programmers for other programmers. This is in no small part to the consistency and readability that are built in to Python. It just so happens that making a real, live scripting language the basis for the configuration files makes it a snap for more accomplished programmers to do more complicated things with builds, as necessary.

Why SCons?

SCons is a response to a perennial problem: building software is harder than it should be. In a nutshell: the old, reliable model of the venerable and ubiquitous Make program has had a hard time keeping up with how complicated building software has become. The fact that Make has kept up as well as it has is impressive, and a testament to how the simplicity. But anyone who has wrestled with Automake and Autoconf to try to guarantee that a bit of software will build correctly on multiple platforms can tell you that it takes a lot of work to get right.