What is SCons?
SCons is a next-generation,
cross-platform, build tool.
Think of SCons as an improved
substitute for the classic
with integrated functionality
similar to autoconf/automake
and compiler caches such as ccache.
Unlike build tools that invent their own mini-language
or wedge a scripting language onto some other
configuration file syntax,
SCons configuration files
are actually Python scripts.
The ability to script your build
gives you a tremendous amount of flexibility
to solve complicated build problems
in surprisingly small amounts of maintainable code.
In short, SCons is an easier, more reliable
and more flexible way to build software.
Configuration files are Python scripts
This provides much more flexibility for solving
difficult build problems
than traditional build tools.
Reliable, automatic dependency analysis
C, C++ and Fortran are scanned for dependencies,
eliminating the need for a separate make depend step
or a make clean to get all of the dependencies.
Avoids the time waste from debugging phantom problems
that mysteriously disappear after you
make clean; make.
Easily extended to scan for other languages or file types.
Built-in support for multiple languages
C, C++, D, Java, Fortran, Yacc, Lex, Qt and SWIG.
Can also build TeX and LaTeX documents.
Easily extended for other languages or file types.
Known to work on Linux,
other POSIX systems (AIX, *BSD, HP/UX, IRIX, Solaris),
Windows (NT, 2000, XP),
Mac OS X,
Fetch files from SCM systems or central directory trees
Built-in support for SCCS, RCS, CVS, BitKeeper and Perforce.
On-disk directory trees can be searched for source files
or pre-built target files.
Support for Microsoft Visual Studio .NET and 2005
Generates .dsp and .dsw files,
or .sln and .vcproj files,
from the same build configuration used to build on all platforms.
Allows Windows developers to do all the productive
point-and-click debugging they're used to
without having to maintain a separate build configuration
just for Windows.
Reliable detection of file changes using MD5 signatures
Use of traditional file timestamps instead of MD5 can be configured.
Keeps up to N jobs running simultaneously regardless
of directory hierarchy.
Global view of dependencies
Simplifies builds by eliminating multiple passes
or reording targets to build everything correctly.
Multi-platform configuration (like Autoconf)
Support for finding #include files,
libraries, functions and typedef declarations.
Shared built-file cache
Speeds up multiple builds by allowing developers
to share pre-built targets
(like ccache, but for any type of target file,
not just C/C++ compilation).
See the Roadmap