Fix timestamp-related Decider() examples by using Object() instead of
[scons.git] / doc / python10 / install.xml
1 <para>
2
3   Initial installation of a new utility provides the first, lasting
4   impression of how well the software is likely to perform. From the
5   start, &SCons; has made clean installation a priority.
6
7 </para>
8
9 <section>
10   <title>Version Control</title>
11
12   <para>
13
14     Distributing an application like &SCons; that depends
15     on a package normally found in a library poses a
16     problem. If the &scons; script and the &SCons; Build Engine
17     are installed separately, it could be easy
18     to introduce a version mismatch between the Build Engine
19     installed in
20     <filename>/usr/lib/python*/site-packages</filename>
21     and the &scons; script installed in
22     <filename>/usr/bin</filename>.
23     Such a mismatch
24     could possible mean exceptions that prevent builds, or even worse,
25     silently unreliable builds.
26
27   </para>
28
29   <para>
30
31     To reduce the possibility of a version mismatch,
32     the &scons; script looks first for its
33     imported modules in <filename>/usr/lib/scons-{version}/</filename>,
34     then in <filename>/usr/lib/scons/</filename>,
35     and then in the normal &PYTHONPATH; locations,
36     including <filename>/usr/lib/python*/site-packages</filename>).
37     Searching in a version-specific library directory first
38     makes it convenient to install and use multiple
39     side-by-side versions of &SCons;,
40     which is sometimes important
41     when verifying that a new version does not introduce any
42     errors into the local build process.
43     Searching next in an &SCons;-specific library directory
44     makes it convenient for other software to find
45     the &SCons; Build Engine without having to worry about
46     installing separate copies for
47     multiple versions of Python.
48
49   </para>
50
51 </section>
52
53 <section>
54   <title>Packages</title>
55
56   <para>
57
58     &SCons; is currently distributed in the following packages:
59
60   </para>
61
62   <table>
63   <title></title>
64   <tgroup cols="2">
65     <tbody>
66
67     <row valign="top">
68       <entry>
69         <literal>scons-</literal><emphasis>version</emphasis><literal>.tar.gz</literal>
70       </entry>
71       <entry><para>
72
73         The traditional <literal>.tar.gz</literal> file,
74         installable by running <filename>setup.py</filename>.
75
76       </para></entry>
77     </row>
78
79     <row valign="top">
80       <entry>
81         <literal>scons-</literal><emphasis>version</emphasis><literal>.noarch.rpm</literal>
82       </entry>
83       <entry><para>
84
85         An RPM file for typical installation.
86
87       </para></entry>
88     </row>
89
90     <row valign="top">
91       <entry>
92         <literal>scons-</literal><emphasis>version</emphasis><literal>_all.deb</literal>
93       </entry>
94       <entry><para>
95
96         A Debian package.
97
98       </para></entry>
99     </row>
100
101     <row valign="top">
102       <entry>
103         <literal>scons-</literal><emphasis>version</emphasis><literal>.win32.exe</literal>
104       </entry>
105       <entry><para>
106
107         A Windows installer.
108
109       </para></entry>
110     </row>
111
112     <row valign="top">
113       <entry>
114         <literal>scons-</literal><emphasis>version</emphasis><literal>.src.rpm</literal>
115       </entry>
116       <entry><para>
117
118         A source RPM file.
119
120       </para></entry>
121     </row>
122
123     <row valign="top">
124       <entry>
125         <literal>scons-src-</literal><emphasis>version</emphasis><literal>.tar.gz</literal>
126       </entry>
127       <entry><para>
128
129         A tarball of the &SCons; source tree,
130         including the full set of regression tests.
131
132       </para></entry>
133     </row>
134
135     </tbody>
136   </tgroup>
137   </table>
138
139   <para>
140
141     Like other software written in Python, &SCons; benefits greatly from
142     the tremendous effort put into the <literal>distutils</literal> by
143     Greg Ward and others. These take care of 90% of the work by making
144     it almost trivial to generate the appropriate RPM files, Debian
145     packages, and Windows installer.
146
147   </para>
148
149 </section>
150
151 <section>
152   <title>Default Builder Objects</title>
153
154   <para>
155
156     As part of the installation process, &SCons; runs a set of scripts
157     that look for popular compilers and other tools and set up
158     appropriate default &Builder; objects for the tools found. These
159     &Builder; objects are then used to initialize the default &consenv;
160     values.
161
162   </para>
163
164 </section>
165
166 <section>
167   <title>Default Scanner Objects</title>
168
169   <para>
170
171     Additionally, &SCons; comes with a stock set of &Scanner; objects
172     for the various file types that it supports out of the box. Any
173     unusal &Scanner; objects required for a specific tool will be
174     detected at installation time and associated with the appropriate
175     &Builder; object for the tool.
176
177   </para>
178
179 </section>