1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
# __COPYRIGHT__
# __FILE__ __REVISION__ __DATE__ __DEVELOPER__
SCons - a software construction tool
Release Notes
This is an beta release of SCons, a tool for building software (and
other files). SCons is implemented in Python, and its "configuration
files" are actually Python scripts, allowing you to use the full power
of a real scripting language to solve build problems. You do not,
however, need to know Python to use SCons effectively.
So that everyone using SCons can help each other learn how to use it
more effectively, please sign up for the scons-users mailing list at:
http://lists.sourceforge.net/lists/listinfo/scons-users
RELEASE 0.XX - XXX
This is the second beta release of SCons. Please consult the
CHANGES.txt file for a list of specific changes since last release.
Please note the following important changes since release 0.90:
- The spelling of the 'validater' keyword argument to the
Options.Add() method has been corrected to 'validator'. The old
spelling still works but has been deprecated and generates a
warning.
- The SConscript() function no longer splits its first argument on
white space into a list of SConscript file names. You must now
explicitly enclose the file names in a list:
SConscript(['sub1/SConscript', 'sub2/SConscript'])
Or use the Split() function (or something similar) to create a list:
SConscript(Split('sub1/SConscript sub2/SConscript'))
This makes the SConscript() function's handling of file names
consistent with the rest of SCons.
Please note the following important changes since release 0.14:
- SCons now tries to verify that Microsoft Visual Studio (including
Visual C++) is actually installed before using it, by checking
that the program directory exists. If SCons cannot find your copy
of Visual Studio, it is probably because it installed itself in a
default directory that we have not seen before. If this is the
case, please let us know so that we can update future versions.
SCons is developed with an extensive regression test suite, and a
rigorous development methodology for continually improving that suite.
Because of this, SCons is of sufficient quality that you can use it
for real work. The "beta" status of the release reflects that we
still may change interfaces in future releases, which may require
modifications to your SConscript files. We strive to hold these
changes to a minimum.
Nevertheless, please heed the following disclaimers:
- Please report any bugs or other problems that you find to our bug
tracker at our SourceForge project page:
http://sourceforge.net/tracker/?func=add&group_id=30337&atid=398971
We have a reliable bug-fixing methodology already in place and
strive to respond to problems relatively quickly.
- Documentation is spottier than we'd like. You may need to dive
into the source code to figure out how to do something. Asking
questions on the scons-users mailing list is also welcome. We
will be addressing the documentation in upcoming releases, but
would be more than glad to have your assistance in correcting this
problem... :-)
In particular, the "SCons Design" documentation on the SCons web
site is currently out of date, as we made significant changes to
portions of the interface as we figured out what worked and what
didn't during implementation.
- There may be performance issues. Improving SCons performance
is an ongoing priority. If you still find the performance
unacceptable, we would very much like to hear from you and learn
more about your configuration so we can optimize the right things.
- Error messages don't always exist where they'd be helpful.
Please let us know about any errors you ran into that would
have benefitted from a (more) descriptive message.
KNOWN PROBLEMS IN THIS RELEASE:
For a complete list of known problems, consult the SCons bug tracker
page at SourceForge:
http://sourceforge.net/tracker/?atid=398971&group_id=30337&func=browse
- Support for parallel builds (-j) does not work on WIN32 systems
prior to *official* Python release 2.2 (not 2.2 pre-releases).
Prior to Python 2.2, there is a bug in Python's Win32
implementation such that when a thread spawns an external command,
it blocks all threads from running. This breaks the SCons
multithreading architecture used to support -j builds.
We have included a patch file, os_spawnv_fix.diff, that you can
use if you you want to fix your version of Python to support
parallel builds in SCons.
- Again, the "SCons Design" documentation on the SCons web
site is currently out of date. Take what you read there with a
grain of salt.
- If a file is specified to be built in multiple ways, the last
processed builder specification overwrites all other builders,
without any warning.
- On Win32 systems, you must put a space between the redirection
characters < and >, and the specified files (or construction
variable expansions):
command < $SOURCE > $TARGET
If you don't supply a space (for example, "<$SOURCE"), SCons will
not recognize the redirection.
- People have reported problems with SCons not stopping a build when
an interrupt (CTRL+C) is received. A fix was checked in to 0.11
that should fix this behavior on many systems, but there are
issues with the underlying Python os.system() call that suggest
this fix does not work on all systems or in all circumstances.
We're working to try to find a universal solution.
- Modifying a construction environment in a subsidiary SConscript
file modifies the global environment.
- MSVC .res files are not rebuilt when icons change.
- The -c option does not clean up .sconsign files or directories
created as part of the build.
- Switching content signatures from "MD5" to "timestamp" and back
again can cause unusual errors. These errors can be cleared up by
removing all .sconsign files.
- On Win32, SCons does not recognize that a target specified as
(for example) \some\target is the same as X:\some\target (for your
current volume X:).
- Using a construction variable in its own expansion can cause
an infinite loop.
- When using SourceSignatures('timestamp'), changes to Python
Value() Nodes do not cause rebuilds.
- No support yet for the following planned command-line options:
-d -e -l --list-actions --list-derived --list-where
-o --override -p -r -R -w --write-filenames
-W --warn-undefined-variables
Thank you for your interest, and please let us know how we can help
improve SCons for your needs.
Steven Knight
knight at baldmt dot com
http://www.baldmt.com/~knight/
With plenty of help from the SCons Development team:
Chad Austin
Charles Crain
Steve Leblanc
Gary Oberbrunner
Anthony Roach
Greg Spencer
Christoph Wiedemann
|