SCons is a software construction tool (build tool, or make tool) implemented in Python, that uses Python scripts as "configuration files" for software builds.
SCons solves a number of problems associated with other build tools, especially including the classic and ubiquitous Make itself.
In its evolution, scons will be more general than a make replacement, it will be a Gnu Build System replacement. The Gnu Build System (GBS) is also known as the set of Autotools (autoconf, automake, autoheader, etc...)
Distinctive features of
SCons include:
- modular design, lending itself to embedding in other applications
- a GlobalView? of all dependencies in the source tree
- an improved model for ParallelBuilds? (-j)
- automatic scanning of files for dependencies
- use of MD5? signatures for deciding whether a file is up-to-date
- use of MD5? signatures instead of traditional file timestamps available as an option
- use of Python functions or objects to build target files
- easy user extensibility.
Where to download Scons and how to install it.
Yo can download it here:
http://www.scons.org/download.php
And here it is the manual to learn how to use it:
http://www.scons.org/doc/HTML/scons-user/book1.html
Prototype SCons based build systems for OpenThreads?, Producer and OpenSceneGraph
Pros
- Based on a full-fledged programming language, Python. This means you can make the build system do pretty much anything you can figure out how to program, if it doesn't do it already.
- Support for many platforms, compilers, and targets built-in.
- Has auto-configuration abilities.
- Can be distributed with the software product so users do not need to install it.
Cons
- Based on a general-purpose programming language, Python. This means writing even a basic build file requires you to know a bit about Python and its syntax.
- If you want to do more complicated builds, you will quickly find yourself having to write a fair amount of Python code to achieve the functionality built into something like Boost Jam.
- Requires users (developers) to have a full Python installation and then to install the SCons scripts on top of that.
- Very centric on the idea of having a build dir. Great pains to avoid this.
The information used to fill this wiki page is publicly available at:
http://www.scons.org/cgi-bin/wiki/