6 <p>SCons is a next-generation,
7 cross-platform, build tool.
8 Think of SCons as an improved
9 substitute for the classic
11 with integrated functionality
12 similar to <tt>autoconf</tt>/<tt>automake</tt>
13 and compiler caches such as <tt>ccache</tt>.
17 Unlike build tools that invent their own mini-language
18 or wedge a scripting language onto some other
19 configuration file syntax,
20 SCons configuration files
21 are actually Python scripts.
22 The ability to script your build
23 gives you a tremendous amount of flexibility
24 to solve complicated build problems
25 in surprisingly small amounts of maintainable code.
29 In short, SCons is an easier, more flexible
30 and more reliable way to build software.
37 <p>The goal of The SCons Project
38 is to become the premiere enterprise-quality tool for
39 building cross-platform, multi-language software projects
40 by offering unparalleled <b>reliability</b> and <b>flexibility</b>
41 to software buildmasters and developers.
45 Yeah, every project has similar lofty mom-and-apple-pie goals,
47 So why is SCons any different?
49 If you go to our public home page at
50 <a href="http://www.scons.org/">http://www.scons.org</a>
51 you'll get the usual lists of
52 supported features and platforms, testimonials, etc.
53 But you're presumably at <emphasis>this</emphasis>
54 project page because you're interested in digging a little deeper.
55 So here are the <emphasis>philosophical viewpoints</emphasis>
56 that we think contribute to SCons being
57 a really distinctive software build tool:
62 <b>Software builds are getting more complicated, not less</b>
68 <b>Making software build reliably is not a language design issue</b>
74 <b>You want to encapsulate software build complexity
75 so most developers don't even have to think about it</b>
81 <b>Overall, a reliable build that takes a little longer is
82 cheaper than a fast build that you can't rely on</b>
88 <b>Building software in multiple side-by-side variants is crucial
89 in a multi-platform world</b>
96 <p>What is the scope of this project?
102 <li>Develop just enough functionality to scratch a particular itch</li>
103 <li>Build a tool just like XYZ, but less broken</li>
104 <li>Build the best XYZ-tool ever!</li>
108 <p>What are high-level features you are sure to build?
112 <li>What would you write on a billboard about your project? Users
113 might only look for a few seconds.</li>
115 <li>Use the issue tracker to track features and enhancement
116 requests. It is not just for bugs, pre-populate it with feature
117 descriptions so that potential contributors know what you would like them
121 <p>What are the high-level assumptions or ground rules for the project?
128 <li> we will use programming language X on operating system Y for now.
130 <li>We will, or will not, consider certain functional areas like
131 internationalization, high security, concurrency, etc. The list of
132 functional areas will depend on what you are trying to do.
134 <li>Try to keep this part short.
138 <h3>Related resources</h3>
141 <li>Link to other stuff that you know about. It will help you
142 research requirements and provide a useful resource to potential
145 <li>Why reinvent the wheel? What is better about this wheel? Is there
146 any existing project that you can partner with or reuse?</li>
148 <li>Where would you go to try to find potential contibutors?</li>