3 Copyright (c) 2001, 2002, 2003 Steven Knight
5 Permission is hereby granted, free of charge, to any person obtaining
6 a copy of this software and associated documentation files (the
7 "Software"), to deal in the Software without restriction, including
8 without limitation the rights to use, copy, modify, merge, publish,
9 distribute, sublicense, and/or sell copies of the Software, and to
10 permit persons to whom the Software is furnished to do so, subject to
11 the following conditions:
13 The above copyright notice and this permission notice shall be included
14 in all copies or substantial portions of the Software.
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
17 KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
18 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 The &SCons; tool provides an easy-to-use, feature-rich interface
29 for constructing software. Architecturally, &SCons; separates
30 its dependency analysis and external object management into an
31 interface-independent Build Engine that could be embedded in any
32 software system that can run Python.
38 At the command line, &SCons; presents an easily-grasped tool
39 where configuration files are Python scripts, reducing the need
40 to learn new build-tool syntax. Inexperienced users can use
41 intelligent methods that ``do the right thing'' to build software
42 with a minimum of fuss. Sophisticated users can use a rich set
43 of underlying features for finer control of the build process,
44 including mechanisms for easily extending the build process to new
51 Dependencies are tracked using digital signatures,
52 which provide more robust dependency analysis than file time
53 stamps. Implicit dependencies are determined automatically by
54 scanning the contents of source files, avoiding the need for
55 laborious and fragile maintenance of static lists of dependencies in
62 The &SCons; tool supports use of files from one or more central code
63 repositories, a mechanism for caching derived files, and parallel
64 builds. The tool also includes a framework for sharing build
65 environments, which allows system administrators or integrators to
66 define appropriate build parameters for use by other users.
70 <section id="sect-document">
71 <title>About This Document</title>
75 This document is an ongoing work-in-progress to write down the ideas
76 and tradeoffs that have gone, and will go into, the &SCons; design.
77 As such, this is intended primarily for use by developers and others
78 working on &SCons;, although it is also intended to serve as a
79 detailed overview of &SCons; for other interested parties. It will
80 be continually updated and evolve, and will likely overlap with other
81 documentation produced by the project. Sections of this document
82 that deal with syntax, for example, may move or be copied into a user
83 guide or reference manual.
89 So please don't assume that everything mentioned here has been
90 decided and carved in stone. If you have ideas for improvements, or
91 questions about things that don't seem to make any sense, please help
92 improve the design by speaking up about them.
97 Sections marked like this
98 (prefixed with <literal>RATIONALE:</literal> in the HTML,
99 surrounded by <literal>BEGIN RATIONALE:</literal>
100 and <literal>END RATIONALE:</literal>
101 in the printed documentatio)
103 comments about the document
104 rather than actual document.
105 I've used these to mark sections that need work,
106 but also to cite some open design issues.
107 If you have input on any of these marked issues,
108 I'm especially eager to hear it.