5 Copyright (c) 2001, 2002, 2003 Steven Knight
7 Permission is hereby granted, free of charge, to any person obtaining
8 a copy of this software and associated documentation files (the
9 "Software"), to deal in the Software without restriction, including
10 without limitation the rights to use, copy, modify, merge, publish,
11 distribute, sublicense, and/or sell copies of the Software, and to
12 permit persons to whom the Software is furnished to do so, subject to
13 the following conditions:
15 The above copyright notice and this permission notice shall be included
16 in all copies or substantial portions of the Software.
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
19 KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
20 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
29 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
32 <!ENTITY % scons SYSTEM "scons.mod">
35 <!ENTITY abstract SYSTEM "abstract.xml">
36 <!ENTITY acks SYSTEM "acks.xml">
37 <!ENTITY copyright SYSTEM "copyright.xml">
38 <!ENTITY design SYSTEM "design.xml">
39 <!ENTITY future SYSTEM "future.xml">
40 <!ENTITY install SYSTEM "install.xml">
41 <!ENTITY intro SYSTEM "intro.xml">
42 <!ENTITY process SYSTEM "process.xml">
48 <title>SCons Design and Implementation</title>
51 <firstname>Steven</firstname>
52 <surname>Knight</surname>
58 <holder>Steven Knight</holder>
61 <pubdate>2002</pubdate>
64 <confdates>4-7 February 2002</confdates>
65 <conftitle>The Tenth International Python Conference</conftitle>
66 <address>Alexandria, Virginia</address>
71 <revnumber>0.2</revnumber>
72 <date>16 December 2001</date>
73 <revremark>Internal re-review.</revremark>
76 <revnumber>0.1</revnumber>
77 <date>8 October 2001</date>
78 <revremark>Submitted for Python10 conference.</revremark>
88 <section id="sect-intro">
89 <title>Introduction</title>
93 <section id="sect-design">
94 <title>Architecture</title>
98 <section id="sect-install">
99 <title>Installation</title>
103 <section id="sect-process">
104 <title>Development Process</title>
108 <section id="sect-future">
109 <title>Future Directions</title>
113 <section id="sect-summary">
114 <title>Summary</title>
117 This paper has introduced &SCons;, a next-generation build tool
118 with a modular, embeddable architecture and a direct Python
119 interface. &SCons; has a global view of the dependencies in a source
120 tree, uses MD5 signatures to decide if derived files are out of date,
121 and automatically scans files for dependencies, all of which make &SCons;
122 builds exceptionally reliable. The &SCons; development methodology has
123 been described, notable for its emphasis on automated regression
124 testing to ensure a robust and reliable tool from day one. Several
125 future directions for &SCons; have also been discussed.
130 <section id="sect-acks">
131 <title>Acknowledgements</title>
136 <section id="sect-refs">
137 <title>References</title>
143 <bibliography id="sect-refs">
144 <title>References</title>
149 <author><firstname>Stuart I.</firstname><surname>Feldman</surname></author>
152 <year>Aug 1978</year>
155 <publishername>Bell Laboratories</publishername>
157 <title>Make - A Program for Maintaining Computer Programs</title>
163 <author><firstname>Peter</firstname><surname>Miller</surname></author>
167 <holder>Peter Miller</holder>
169 <title>Recursive Make Considered Harmful</title>
170 <!--http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html-->
176 <author><firstname>Andrew</firstname><surname>Oram</surname></author>
177 <author><firstname>Steve</firstname><surname>Talbott</surname></author>
182 <holder>O'Reilly & Associates, Inc.</holder>
185 <publishername>O'Reilly & Associates, Inc.</publishername>
187 <title>Managing Projects with Make, 2nd Ed.</title>
193 <author><firstname>Richard M.</firstname><surname>Stallman</surname></author>
194 <author><firstname>Roland</firstname><surname>McGrath</surname></author>
210 <holder>Free Software Foundation, Inc.</holder>
213 <publishername>Free Software Foundation, Inc.</publishername>
215 <title>GNU Make</title>
216 <subtitle>A Program for Directing Recompilation</subtitle>