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 SConseasier
for non-programmers to learn
than the cryptic languages of other build tools,
which are usually invented by programmers for other programmers.
This is in no small part due to the
consistency and readability that are hallmarks of 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.

There are a few overriding principles
we try to live up to in designing and implementing SCons:

Correctness

First and foremost,
by default, SCons guarantees a correct build
even if it means sacrificing performance a little.
We strive to guarantee the build is correct
regardless of how the software being built is structured,
how it may have been written,
or how unusual the tools are that build it.

Performance

Given that the build is correct,
we try to make SCons build software
as quickly as possible.
In particular, wherever we may have needed to slow
down the default SCons behavior to guarantee a correct build,
we also try to make it easy to speed up SCons
through optimization options that let you trade off
guaranteed correctness in all end cases for
a speedier build in the usual cases.

Convenience

SCons tries to do as much for you out of the box as reasonable,
including detecting the right tools on your system
and using them correctly to build the software.

In a nutshell, we try hard to make SCons just
"do the right thing" and build software correctly,
with a minimum of hassles.