Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1294)

Side by Side Diff: scons-2.0.1/CHANGES.txt

Issue 6711079: Added an unmodified copy of SCons to third_party. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/third_party/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | scons-2.0.1/LICENSE » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1
2
3 SCons - a software construction tool
4
5 Change Log
6
7
8 RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
9
10 From Dirk Baechle:
11
12 - Fix XML in documentation.
13
14 From Joe Zuntz:
15
16 - Fixed a case-sensitivity problem with Fortran modules.
17
18 From Bauke Conijn:
19
20 - Added Users Guide example for auto-generated source code
21
22 From Steven Knight:
23
24 - Fix explicit dependencies (Depends()) on Nodes that don't have
25 attached Builders.
26
27 - Provide forward compatibility for the 'profile' module.
28
29 - Provide forward compatibility for the 'pickle' module.
30
31 - Provide forward compatibility for the 'io' module.
32
33 - Provide forward compatibility for the 'queue' module.
34
35 - Provide forward compatibility for the 'collections' module.
36
37 - Provide forward compatibility for the 'builtins' module.
38
39 - Provide forward compatibility for 'sys.intern()'.
40
41 - Convert to os.walk() from of os.path.walk().
42
43 - Remove compatibility logic no longer needed.
44
45 - Add a '-3' option to runtest to print 3.x incompatibility warnings.
46
47 - Convert old-style classes into new-style classes.
48
49 - Fix "Ignoring corrupt sconsign entry" warnings when building
50 in a tree with a pre-2.0 .sconsign file.
51
52 - Fix propagation from environment of VS*COMNTOOLS to resolve issues
53 initializing MSVC/MSVS/SDK issues.
54
55 - Handle detecting Visual C++ on Python verions with upper-case
56 platform architectures like 'AMD64'.
57
58 From Matt Hughes:
59
60 - Fix the ability to append to default $*FLAGS values (which are
61 implemented as CLVar instances) in a copied construction environment
62 without affecting the original construction environment's value.
63
64 From Rob Managan:
65
66 - Updated the TeX command strings to include a /D on Windows in
67 case the new directory is on a different drive letter.
68
69 - Fixed the LaTeX scanner so dependencies are found in commands that
70 are broken across lines with a comment or have embedded spaces.
71
72 From W. Trevor King:
73
74 - Revisions to README.
75
76 From Greg Noel:
77
78 - Apply numerous Python fixers to update code to more modern idioms.
79 Find where fixers should be applied to code in test strings and
80 apply the fixers there, too.
81
82 - Write a fixer to convert string functions to string methods.
83
84 - Modify the 'dict' fixer to be less conservative.
85
86 - Modify the 'apply' fixer to handle more cases.
87
88 - Create a modified 'types' fixer that converts types to 2.x
89 equivalents rather than 3.x equivalents.
90
91 - Write a 'division' fixer to highlight uses of the old-style
92 division operator. Correct usage where needed.
93
94 - Add forward compatibility for the new 'memoryview' function
95 (which replaces the 'buffer' function).
96
97 - Add forward compatibility for the 'winreg' module.
98
99 - Remove no-longer-needed 'platform' module.
100
101 - Run tests with the '-3' option to Python 2.6 and clear up
102 various reported incompatibilities.
103
104 - Comb out code paths specialized to Pythons older than 2.4.
105
106 - Update deprecation warnings; most now become mandatory.
107
108 - Start deprecation cycle for BuildDir() and build_dir.
109
110 - Start deprecation cycle for SourceCode() and related factories
111
112 - Fixed a problem with is_Dict() not identifying some objects derived
113 from UserDict.
114
115 From Jim Randall:
116
117 - Document the AllowSubstExceptions() function in the User's Guide.
118
119 From William Deegan:
120
121 - Migrate MSVC/MSVS/SDK improvements from 1.3 branch.
122
123
124 RELEASE 1.3.0 - Tue, 23 Mar 2010 21:44:19 -0400
125
126 From Steven Knight:
127
128 - Update man page and documentation.
129
130 From William Deegan (plus minor patch from Gary Oberbrunner):
131
132 - Support Visual Studio 8.0 Express
133
134 RELEASE 1.2.0.d20100306 - Sat, 06 Mar 2010 16:18:33 -0800
135
136 From Luca Falavigna:
137
138 - Fix typos in the man page.
139
140 From Gottfried Ganssauge:
141
142 - Support execution when SCons is installed via easy_install.
143
144 From Steven Knight:
145
146 - Make the messages for Configure checks of compilers consistent.
147
148 - Issue an error message if a BUILDERS entry is not a Builder
149 object or a callable wrapper.
150
151 From Rob Managan:
152
153 - Update tex builder to handle the case where a \input{foo}
154 command tries to work with a directory named foo instead of the
155 file foo.tex. The builder now ignores a directory and continues
156 searching to find the correct file. Thanks to Lennart Sauerbeck
157 for the test case and initial patch
158
159 Also allow the \include of files in subdirectories when variantDir
160 is used with duplicate=0. Previously latex would crash since
161 the directory in which the .aux file is written was not created.
162 Thanks to Stefan Hepp for finding this and part of the solution.
163
164 From James Teh:
165 - Patches to fix some issues using MS SDK V7.0
166
167 From William Deegan:
168 - Lots of testing and minor patches to handle mixed MS VC and SDK
169 installations, as well as having only the SDK installed.
170
171
172 RELEASE 1.2.0.d20100117 - Sun, 17 Jan 2010 14:26:59 -0800
173
174 From Jim Randall:
175 - Fixed temp filename race condition on Windows with long cmd lines.
176
177 From David Cournapeau:
178 - Fixed tryRun when sconf directory is in a variant dir.
179 - Do not add -fPIC for ifort tool on non-posix platforms (darwin and
180 windows).
181 - Fix bug 2294 (spurious CheckCC failures).
182 - Fix scons bootstrap process on windows 64 (wrong wininst name)
183
184 From William Deegan:
185 - Final merge from vs_revamp branch to main
186
187 - Added definition and usage of HOST_OS, HOST_ARCH, TARGET_OS,
188 TARGET_ARCH, currently only defined/used by Visual Studio
189 Compilers. This will be rolled out to other platforms/tools
190 in the future.
191
192 - Add check for python >= 3.0.0 and exit gracefully.
193 For 1.3 python >= 1.5.2 and < 3.0.0 are supported
194
195 - Fix bug 1944 - Handle non-existent .i file in swig emitter, previously
196 it would crash with an IOError exception. Now it will try to make an
197 educated guess on the module name based on the filename.
198
199 From Lukas Erlinghagen:
200
201 - Have AddOption() remove variables from the list of
202 seen-but-unknown variables (which are reported later).
203
204 - An option name and aliases can now be specified as a tuple.
205
206 From Hartmut Goebel:
207
208 - Textfile builder.
209
210 From Jared Grubb:
211
212 - use "is/is not" in comparisons with None instead of "==" or "!=".
213
214 From Jim Hunziker:
215
216 - Avoid adding -gphobos to a command line multiple times
217 when initializing use of the DMD compiler.
218
219 From Jason Kenney:
220
221 - Sugguested HOST/TARGET OS/ARCH separation.
222
223 From Steven Knight:
224
225 - Fix the -n option when used with VariantDir(duplicate=1)
226 and the variant directory doesn't already exist.
227
228 - Fix scanning of Unicode files for both UTF-16 endian flavors.
229
230 - Fix a TypeError on #include of file names with Unicode characters.
231
232 - Fix an exception if a null command-line argument is passed in.
233
234 - Evaluate Requires() prerequisites before a Node's direct children
235 (sources and dependencies).
236
237 From Greg Noel:
238
239 - Remove redundant __metaclass__ initializations in Environment.py.
240
241 - Correct the documentation of text returned by sconf.Result().
242
243 - Document that filenames with '.' as the first character are
244 ignored by Glob() by default (matching UNIX glob semantics).
245
246 - Fix SWIG testing infrastructure to work on Mac OS X.
247
248 - Restructure a test that occasionally hung so that the test would
249 detect when it was stuck and fail instead.
250
251 - Substfile builder.
252
253 From Gary Oberbrunner:
254
255 - When reporting a target that SCons doesn't know how to make,
256 specify whether it's a File, Dir, etc.
257
258 From Ben Webb:
259
260 - Fix use of $SWIGOUTDIR when generating Python wrappers.
261
262 - Add $SWIGDIRECTORSUFFIX and $SWIGVERSION construction variables.
263
264 From Rob Managan:
265
266 - Add -recorder flag to Latex commands and updated internals to
267 use the output to find files TeX creates. This allows the MiKTeX
268 installations to find the created files
269
270 - Notify user of Latex errors that would get buried in the
271 Latex output
272
273 - Remove LATEXSUFFIXES from environments that don't initialize Tex.
274
275 - Add support for the glosaaries package for glossaries and acronyms
276
277 - Fix problem that pdftex, latex, and pdflatex tools by themselves did
278 not create the actions for bibtex, makeindex,... by creating them
279 and other environment settings in one routine called by all four
280 tex tools.
281
282 - Fix problem with filenames of sideeffects when the user changes
283 the name of the output file from the latex default
284
285 - Add scanning of files included in Latex by means of \lstinputlisting{}
286 Patch from Stefan Hepp.
287
288 - Change command line for epstopdf to use --outfile= instead of -o
289 since this works on all platforms.
290 Patch from Stefan Hepp.
291
292 - Change scanner to properly search for included file from the
293 directory of the main file instead of the file it is included from.
294 Also update the emitter to add the .aux file associated with
295 \include{filename} commands. This makes sure the required directories
296 if any are created for variantdir cases.
297 Half of the patch from Stefan Hepp.
298
299 RELEASE 1.2.0.d20090223 - Mon, 23 Feb 2009 08:41:06 -0800
300
301 From Stanislav Baranov:
302
303 - Make suffix-matching for scanners case-insensitive on Windows.
304
305 From David Cournapeau:
306
307 - Change the way SCons finds versions of Visual C/C++ and Visual
308 Studio to find and use the Microsoft v*vars.bat files.
309
310 From Robert P. J. Day:
311
312 - User's Guide updates.
313
314 From Dan Eaton:
315
316 - Fix generation of Visual Studio 8 project files on x64 platforms.
317
318 From Allan Erskine:
319
320 - Set IncludeSearchPath and PreprocessorDefinitions in generated
321 Visual Studio 8 project files, to help IntelliSense work.
322
323 From Mateusz Gruca:
324
325 - Fix deletion of broken symlinks by the --clean option.
326
327 From Steven Knight:
328
329 - Fix the error message when use of a non-existent drive on Windows
330 is detected.
331
332 - Add sources for files whose targets don't exist in $CHANGED_SOURCES.
333
334 - Detect implicit dependencies on commands even when the command is
335 quoted.
336
337 - Fix interaction of $CHANGED_SOURCES with the --config=force option.
338
339 - Fix finding #include files when the string contains escaped
340 backslashes like "C:\\some\\include.h".
341
342 - Pass $CCFLAGS to Visual C/C++ precompiled header compilation.
343
344 - Remove unnecessary nested $( $) around $_LIBDIRFLAGS on link lines
345 for the Microsoft linker, the OS/2 ilink linker and the Phar Lap
346 linkloc linker.
347
348 - Spell the Windows environment variables consistently "SystemDrive"
349 and "SystemRoot" instead of "SYSTEMDRIVE" and "SYSTEMROOT".
350
351
352
353 RELEASE 1.2.0.d20090113 - Tue, 13 Jan 2009 02:50:30 -0800
354
355 From Stanislav Baranov, Ted Johnson and Steven Knight:
356
357 - Add support for batch compilation of Visual Studio C/C++ source
358 files, controlled by a new $MSVC_BATCH construction variable.
359
360 From Steven Knight:
361
362 - Print the message, "scons: Build interrupted." on error output,
363 not standard output.
364
365 - Add a --warn=future-deprecated option for advance warnings about
366 deprecated features that still have warnings hidden by default.
367
368 - Fix use of $SOURCE and $SOURCES attributes when there are no
369 sources specified in the Builder call.
370
371 - Add support for new $CHANGED_SOURCES, $CHANGED_TARGETS,
372 $UNCHANGED_SOURCES and $UNCHANGED_TARGETS variables.
373
374 - Add general support for batch builds through new batch_key= and
375 targets= keywords to Action object creation.
376
377 From Arve Knudsen:
378
379 - Make linker tools differentiate properly between SharedLibrary
380 and LoadableModule.
381
382 - Document TestCommon.shobj_prefix variable.
383
384 - Support $SWIGOUTDIR values with spaces.
385
386 From Rob Managan:
387
388 - Don't automatically try to build .pdf graphics files for
389 .eps files in \includegraphics{} calls in TeX/LaTeX files
390 when building with the PDF builder (and thus using pdflatex).
391
392 From Gary Oberbrunner:
393
394 - Allow AppendENVPath() and PrependENVPath() to interpret '#'
395 for paths relative to the top-level SConstruct directory.
396
397 - Use the Borland ilink -e option to specify the output file name.
398
399 - Document that the msvc Tool module uses $PCH, $PCHSTOP and $PDB.
400
401 - Allow WINDOWS_INSERT_DEF=0 to disable --output-def when linking
402 under MinGW.
403
404 From Zia Sobhani:
405
406 - Fix typos in the User's Guide.
407
408 From Greg Spencer:
409
410 - Support implicit dependency scanning of files encoded in utf-8
411 and utf-16.
412
413 From Roberto de Vecchi:
414
415 - Remove $CCFLAGS from the the default definitions of $CXXFLAGS for
416 Visual C/C++ and MIPSpro C++ on SGI so, they match other tools
417 and avoid flag duplication on C++ command lines.
418
419 From Ben Webb:
420
421 - Handle quoted module names in SWIG source files.
422
423 - Emit *_wrap.h when SWIG generates header file for directors
424
425 From Matthew Wesley:
426
427 - Copy file attributes so we identify, and can link a shared library
428 from, shared object files in a Repository.
429
430
431
432 RELEASE 1.2.0 - Sat, 20 Dec 2008 22:47:29 -0800
433
434 From Steven Knight:
435
436 - Don't fail if can't import a _subprocess module on Windows.
437
438 - Add warnings for use of the deprecated Options object.
439
440
441
442 RELEASE 1.1.0.d20081207 - Sun, 07 Dec 2008 19:17:23 -0800
443
444 From Benoit Belley:
445
446 - Improve the robustness of GetBuildFailures() by refactoring
447 SCons exception handling (especially BuildError exceptions).
448
449 - Have the --taskmastertrace= option print information about
450 individual Task methods, not just the Taskmaster control flow.
451
452 - Eliminate some spurious dependency cycles by being more aggressive
453 about pruning pending children from the Taskmaster walk.
454
455 - Suppress mistaken reports of a dependency cycle when a child
456 left on the pending list is a single Node in EXECUTED state.
457
458 From David Cournapeau:
459
460 - Fix $FORTRANMODDIRPREFIX for the ifort (Intel Fortran) tool.
461
462 From Brad Fitzpatrick:
463
464 - Don't pre-generate an exception message (which will likely be
465 ignored anyway) when an EntryProxy re-raises an AttributeError.
466
467 From Jared Grubb:
468
469 - Clean up coding style and white space in Node/FS.py.
470
471 - Fix a typo in the documentation for $_CPPDEFFLAGS.
472
473 - Issue 2401: Fix usage of comparisons with None.
474
475 From Ludwig Hähne:
476
477 - Handle Java inner classes declared within a method.
478
479 From Steven Knight:
480
481 - Fix label placement by the "scons-time.py func" subcommand
482 when a profile value was close to (or equal to) 0.0.
483
484 - Fix env.Append() and env.Prepend()'s ability to add a string to
485 list-like variables like $CCFLAGS under Python 2.6.
486
487 - Other Python2.6 portability: don't use "as" (a Python 2.6 keyword).
488 Don't use the deprecated Exception.message attribute.
489
490 - Support using the -f option to search for a different top-level
491 file name when walking up with the -D, -U or -u options.
492
493 - Fix use of VariantDir when the -n option is used and doesn't,
494 therefore, actually create the variant directory.
495
496 - Fix a stack trace from the --debug=includes option when passed a
497 static or shared library as an argument.
498
499 - Speed up the internal find_file() function (used for searching
500 CPPPATH, LIBPATH, etc.).
501
502 - Add support for using the Python "in" keyword on construction
503 environments (for example, if "CPPPATH" in env: ...).
504
505 - Fix use of Glob() when a repository or source directory contains
506 an in-memory Node without a corresponding on-disk file or directory.
507
508 - Add a warning about future reservation of $CHANGED_SOURCES,
509 $CHANGED_TARGETS, $UNCHANGED_SOURCES and $UNCHANGED_TARGETS.
510
511 - Enable by default the existing warnings about setting the resource
512 $SOURCE, $SOURCES, $TARGET and $TARGETS variable.
513
514 From Rob Managan:
515
516 - Scan for TeX files in the paths specified in the $TEXINPUTS
517 construction variable and the $TEXINPUTS environment variable.
518
519 - Configure the PDF() and PostScript() Builders as single_source so
520 they know each source file generates a separate target file.
521
522 - Add $EPSTOPDF, $EPSTOPDFFLAGS and $EPSTOPDFCOM
523
524 - Add .tex as a valid extension for the PDF() builder.
525
526 - Add regular expressions to find \input, \include and
527 \includegraphics.
528
529 - Support generating a .pdf file from a .eps source.
530
531 - Recursive scan included input TeX files.
532
533 - Handle requiring searched-for TeX input graphics files to have
534 extensions (to avoid trying to build a .eps from itself, e.g.).
535
536 From Greg Noel:
537
538 - Make the Action() function handle positional parameters consistently.
539
540 - Clarify use of Configure.CheckType().
541
542 - Make the File.{Dir,Entry,File}() methods create their entries
543 relative to the calling File's directory, not the SConscript
544 directory.
545
546 - Use the Python os.devnull variable to discard error output when
547 looking for the $CC or $CXX version.
548
549 - Mention LoadableModule() in the SharedLibrary() documentation.
550
551 From Gary Oberbrunner:
552
553 - Update the User's Guide to clarify use of the site_scons/
554 directory and the site_init.py module.
555
556 - Make env.AppendUnique() and env.PrependUnique remove duplicates
557 within a passed-in list being added, too.
558
559 From Randall Spangler:
560
561 - Fix Glob() so an on-disk file or directory beginning with '#'
562 doesn't throw an exception.
563
564
565
566 RELEASE 1.1.0 - Thu, 09 Oct 2008 08:33:47 -0700
567
568 From Chris AtLee
569
570 - Use the specified environment when checking for the GCC compiler
571 version.
572
573 From Ian P. Cardenas:
574
575 - Fix Glob() polluting LIBPATH by returning copy of list
576
577 From David Cournapeau:
578
579 - Add CheckCC, CheckCXX, CheckSHCC and CheckSHCXX tests to
580 configuration contexts.
581
582 - Have the --profile= argument use the much faster cProfile module
583 (if it's available in the running Python version).
584
585 - Reorder MSVC compilation arguments so the /Fo is first.
586
587 From Bill Deegan:
588
589 - Add scanning Windows resource (.rc) files for implicit dependencies.
590
591 From John Gozde:
592
593 - When scanning for a #include file, don't use a directory that
594 has the same name as the file.
595
596 From Ralf W. Grosse-Kunstleve
597
598 - Suppress error output when checking for the GCC compiler version.
599
600 From Jared Grubb:
601
602 - Fix VariantDir duplication of #included files in subdirectories.
603
604 From Ludwig Hähne:
605
606 - Reduce memory usage when a directory is used as a dependency of
607 another Node (such as an Alias) by returning a concatenation
608 of the children's signatures + names, not the children's contents,
609 as the directory contents.
610
611 - Raise AttributeError, not KeyError, when a Builder can't be found.
612
613 - Invalidate cached Node information (such as the contenst returned
614 by the get_contents() method) when calling actions with Execute().
615
616 - Avoid object reference cycles from frame objects.
617
618 - Reduce memory usage from Null Executor objects.
619
620 - Compute MD5 checksums of large files without reading the entire
621 file contents into memory. Add a new --md5-chunksize option to
622 control the size of each chunk read into memory.
623
624 From Steven Knight:
625
626 - Fix the ability of the add_src_builder() method to add a new
627 source builder to any other builder.
628
629 - Avoid an infinite loop on non-Windows systems trying to find the
630 SCons library directory if the Python library directory does not
631 begin with the string "python".
632
633 - Search for the SCons library directory in "scons-local" (with
634 no version number) after "scons-local-{VERSION}".
635
636 From Rob Managan:
637
638 - Fix the user's ability to interrupt the TeX build chain.
639
640 - Fix the TeX builder's allowing the user to specify the target name,
641 instead of always using its default output name based on the source.
642
643 - Iterate building TeX output files until all warning are gone
644 and the auxiliary files stop changing, or until we reach the
645 (configurable) maximum number of retries.
646
647 - Add TeX scanner support for: glossaries, nomenclatures, lists of
648 figures, lists of tables, hyperref and beamer.
649
650 - Use the $BIBINPUTS, $BSTINPUTS, $TEXINPUTS and $TEXPICTS construction
651 variables as search paths for the relevant types of input file.
652
653 - Fix building TeX with VariantDir(duplicate=0) in effect.
654
655 - Fix the LaTeX scanner to search for graphics on the TEXINPUTS path.
656
657 - Have the PDFLaTeX scanner search for .gif files as well.
658
659 From Greg Noel:
660
661 - Fix typos and format bugs in the man page.
662
663 - Add a first draft of a wrapper module for Python's subprocess
664 module.
665
666 - Refactor use of the SCons.compat module so other modules don't
667 have to import it individually.
668
669 - Add .sx as a suffix for assembly language files that use the
670 C preprocessor.
671
672 From Gary Oberbrunner:
673
674 - Make Glob() sort the returned list of Files or Nodes
675 to prevent spurious rebuilds.
676
677 - Add a delete_existing keyword argument to the AppendENVPath()
678 and PrependENVPath() Environment methods.
679
680 - Add ability to use "$SOURCE" when specifying a target to a builder
681
682 From Damyan Pepper:
683
684 - Add a test case to verify that SConsignFile() files can be
685 created in previously non-existent subdirectories.
686
687 From Jim Randall:
688
689 - Make the subdirectory in which the SConsignFile() file will
690 live, if the subdirectory doesn't already exist.
691
692 From Ali Tofigh:
693
694 - Add a test to verify duplication of files in VariantDir subdirectories.
695
696
697
698 RELEASE 1.0.1 - Sat, 06 Sep 2008 07:29:34 -0700
699
700 From Greg Noel:
701
702 - Add a FindFile() section to the User's Guide.
703
704 - Fix the FindFile() documentation in the man page.
705
706 - Fix formatting errors in the Package() description in the man page.
707
708 - Escape parentheses that appear within variable names when spawning
709 command lines using os.system().
710
711
712
713 RELEASE 1.0.0 - XXX
714
715 From Jared Grubb:
716
717 - Clear the Node state when turning a generic Entry into a Dir.
718
719 From Ludwig Hähne:
720
721 - Fix sporadic output-order failures in test/GetBuildFailures/parallel.py.
722
723 - Document the ParseDepends() function in the User's Guide.
724
725 From khomenko:
726
727 - Create a separate description and long_description for RPM packages.
728
729 From Steven Knight:
730
731 - Document the GetLaunchDir() function in the User's Guide.
732
733 - Have the env.Execute() method print an error message if the
734 executed command fails.
735
736 - Add a script for creating a standard SCons development system on
737 Ubuntu Hardy. Rewrite subsidiary scripts for install Python and
738 SCons versions in Python (from shell).
739
740 From Greg Noel:
741
742 - Handle yacc/bison on newer Mac OS X versions creating file.hpp,
743 not file.cpp.h.
744
745 - In RPCGEN tests, ignore stderr messages from older versions of
746 rpcgen on some versions of Mac OS X.
747
748 - Fix typos in man page descriptions of Tag() and Package(), and in
749 the scons-time man page.
750
751 - Fix documentation of SConf.CheckLibWithHeader and other SConf methods.
752
753 - Update documentation of SConscript(variant_dir) usage.
754
755 - Fix SWIG tests for (some versions of) Mac OS X.
756
757 From Jonas Olsson:
758
759 - Print the warning about -j on Windows being potentially unreliable if
760 the pywin32 extensions are unavailable or lack file handle operations.
761
762 From Jim Randall:
763
764 - Fix the env.WhereIs() method to expand construction variables.
765
766 From Rogier Schouten:
767
768 - Enable building of shared libraries with the Bordand ilink32 linker.
769
770
771
772 RELEASE 1.0.0 - Sat, 09 Aug 2008 12:19:44 -0700
773
774 From Luca Falavigna:
775
776 - Fix SCons man page indentation under Debian's man page macros.
777
778 From Steven Knight:
779
780 - Clarify the man page description of the SConscript(src_dir) argument.
781
782 - User's Guide updates:
783
784 - Document the BUILD_TARGETS, COMMAND_LINE_TARGETS and
785 DEFAULT_TARGETS variables.
786
787 - Document the AddOption(), GetOption() and SetOption() functions.
788
789 - Document the Requires() function; convert to the Variables
790 object, its UnknownOptions() method, and its associated
791 BoolVariable(), EnumVariable(), ListVariable(), PackageVariable()
792 and PathVariable() functions.
793
794 - Document the Progress() function.
795
796 - Reorganize the chapter and sections describing the different
797 types of environments and how they interact. Document the
798 SetDefault() method. Document the PrependENVPath() and
799 AppendENVPath() functions.
800
801 - Reorganize the command-line arguments chapter. Document the
802 ARGLIST variable.
803
804 - Collect some miscellaneous sections into a chapter about
805 configuring build output.
806
807 - Man page updates:
808
809 - Document suggested use of the Visual C/C++ /FC option to fix
810 the ability to double-click on file names in compilation error
811 messages.
812
813 - Document the need to use Clean() for any SideEffect() files that
814 must be explicitly removed when their targets are removed.
815
816 - Explicitly document use of Node lists as input to Dependency().
817
818 From Greg Noel:
819
820 - Document MergeFlags(), ParseConfig(), ParseFlags() and SideEffect()
821 in the User's Guide.
822
823 From Gary Oberbrunner:
824
825 - Document use of the GetBuildFailures() function in the User's Guide.
826
827 From Adam Simpkins:
828
829 - Add man page text clarifying the behavior of AddPreAction() and
830 AddPostAction() when called with multiple targets.
831
832 From Alexey Zezukin:
833
834 - Fix incorrectly swapped man page descriptions of the --warn= options
835 for duplicate-environment and missing-sconscript.
836
837
838
839 RELEASE 0.98.5 - Sat, 07 Jun 2008 08:20:35 -0700
840
841 From Benoit Belley:
842
843 - Fix the Intel C++ compiler ABI specification for EMT64 processors.
844
845 From David Cournapeau:
846
847 - Issue a (suppressable) warning, not an error, when trying to link
848 C++ and Fortran object files into the same executable.
849
850 From Steven Knight:
851
852 - Update the scons.bat file so that it returns the real exit status
853 from SCons, even though it uses setlocal + endlocal.
854
855 - Fix the --interactive post-build messages so it doesn't get stuck
856 mistakenly reporting failures after any individual build fails.
857
858 - Fix calling File() as a File object method in some circumstances.
859
860 - Fix setup.py installation on Mac OS X so SCons gets installed
861 under /usr/lcoal by default, not in the Mac OS X Python framework.
862
863
864
865 RELEASE 0.98.4 - Sat, 17 May 2008 22:14:46 -0700
866
867 From Benoit Belley:
868
869 - Fix calculation of signatures for Python function actions with
870 closures in Python versions before 2.5.
871
872 From David Cournapeau:
873
874 - Fix the initialization of $SHF77FLAGS so it includes $F77FLAGS.
875
876 From Jonas Olsson:
877
878 - Fix a syntax error in the Intel C compiler support on Windows.
879
880 From Steven Knight:
881
882 - Change how we represent Python Value Nodes when printing and when
883 stored in .sconsign files (to avoid blowing out memory by storing
884 huge strings in .sconsign files after multiple runs using Configure
885 contexts cause the Value strings to be re-escaped each time).
886
887 - Fix a regression in not executing configuration checks after failure
888 of any configuration check that used the same compiler or other tool.
889
890 - Handle multiple destinations in Visual Studio 8 settings for the
891 analogues to the INCLUDE, LIBRARY and PATH variables.
892
893 From Greg Noel:
894
895 - Update man page text for VariantDir().
896
897
898
899 RELEASE 0.98.3 - Tue, 29 Apr 2008 22:40:12 -0700
900
901 From Greg Noel:
902
903 - Fix use of $CXXFLAGS when building C++ shared object files.
904
905 From Steven Knight:
906
907 - Fix a regression when a Builder's source_scanner doesn't select
908 a more specific scanner for the suffix of a specified source file.
909
910 - Fix the Options object backwards compatibility so people can still
911 "import SCons.Options.{Bool,Enum,List,Package,Path}Option" submodules.
912
913 - Fix searching for implicit dependencies when an Entry Node shows up
914 in the search path list.
915
916 From Stefano:
917
918 - Fix expansion of $FORTRANMODDIR in the default Fortran command line(s)
919 when it's set to something like ${TARGET.dir}.
920
921
922
923 RELEASE 0.98.2 - Sun, 20 Apr 2008 23:38:56 -0700
924
925 From Steven Knight:
926
927 - Fix a bug in Fortran suffix computation that would cause SCons to
928 run out of memory on Windows systems.
929
930 - Fix being able to specify --interactive mode command lines with
931 \ (backslash) path name separators on Windows.
932
933 From Gary Oberbrunner:
934
935 - Document Glob() in the User's Guide.
936
937
938
939 RELEASE 0.98.1 - Fri, 18 Apr 2008 19:11:58 -0700
940
941 From Benoit Belley:
942
943 - Speed up the SCons.Util.to_string*() functions.
944
945 - Optimize various Node intialization and calculations.
946
947 - Optimize Executor scanning code.
948
949 - Optimize Taskmaster execution, including dependency-cycle checking.
950
951 - Fix the --debug=stree option so it prints its tree once, not twice.
952
953 From Johan BoulÃ:
954
955 - Fix the ability to use LoadableModule() under MinGW.
956
957 From David Cournapeau:
958
959 - Various missing Fortran-related construction variables have been added.
960
961 - SCons now uses the program specified in the $FORTRAN construction
962 variable to link Fortran object files.
963
964 - Fortran compilers on Linux (Intel, g77 and gfortran) now add the -fPIC
965 option by default when compilling shared objects.
966
967 - New 'sunf77', 'sunf90' and 'sunf95' Tool modules have been added to
968 support Sun Fortran compilers. On Solaris, the Sun Fortran compilers
969 are used in preference to other compilers by default.
970
971 - Fortran support now uses gfortran in preference to g77.
972
973 - Fortran file suffixes are now configurable through the
974 $F77FILESUFFIXES, $F90FILESUFFIXES, $F95FILESUFFIXES and
975 $FORTRANFILESUFFIXES variables.
976
977 From Steven Knight:
978
979 - Make the -d, -e, -w and --no-print-directory options "Ignored for
980 compatibility." (We're not going to implement them.)
981
982 - Fix a serious inefficiency in how SCons checks for whether any source
983 files are missing when a Builder call creates many targets from many
984 input source files.
985
986 - In Java projects, make the target .class files depend only on the
987 specific source .java files where the individual classes are defined.
988
989 - Don't store duplicate source file entries in the .sconsign file so
990 we don't endlessly rebuild the target(s) for no reason.
991
992 - Add a Variables object as the first step towards deprecating the
993 Options object name. Similarly, add BoolVariable(), EnumVariable(),
994 ListVariable(), PackageVariable() and PathVariable() functions
995 as first steps towards replacing BoolOption(), EnumOption(),
996 ListOption(), PackageOption() and PathOption().
997
998 - Change the options= keyword argument to the Environment() function
999 to variables=, to avoid confusion with SCons command-line options.
1000 Continue supporting the options= keyword for backwards compatibility.
1001
1002 - When $SWIGFLAGS contains the -python flag, expect the generated .py
1003 file to be in the same (sub)directory as the target.
1004
1005 - When compiling C++ files, allow $CCFLAGS settings to show up on the
1006 command line even when $CXXFLAGS has been redefined.
1007
1008 - Fix --interactive with -u/-U/-D when a VariantDir() is used.
1009
1010 From Anatoly Techtonik:
1011
1012 - Have the scons.bat file add the script execution directory to its
1013 local %PATH% on Windows, so the Python executable can be found.
1014
1015 From Mike Wake:
1016
1017 - Fix passing variable names as a list to the Return() function.
1018
1019 From Matthew Wesley:
1020
1021 - Add support for the GDC 'D' language compiler.
1022
1023
1024
1025 RELEASE 0.98 - Sun, 30 Mar 2008 23:33:05 -0700
1026
1027 From Benoit Belley:
1028
1029 - Fix the --keep-going flag so it builds all possible targets even when
1030 a later top-level target depends on a child that failed its build.
1031
1032 - Fix being able to use $PDB and $WINDWOWS_INSERT_MANIFEST together.
1033
1034 - Don't crash if un-installing the Intel C compiler leaves left-over,
1035 dangling entries in the Windows registry.
1036
1037 - Improve support for non-standard library prefixes and suffixes by
1038 stripping all prefixes/suffixes from file name string as appropriate.
1039
1040 - Reduce the default stack size for -j worker threads to 256 Kbytes.
1041 Provide user control over this value by adding --stack-size and
1042 --warn=stack-size options, and a SetOption('stack_size') function.
1043
1044 - Fix a crash on Linux systems when trying to use the Intel C compiler
1045 and no /opt/intel_cc_* directories are found.
1046
1047 - Improve using Python functions as actions by incorporating into
1048 a FunctionAction's signature:
1049 - literal values referenced by the byte code.
1050 - values of default arguments
1051 - code of nested functions
1052 - values of variables captured by closures
1053 - names of referenced global variables and functions
1054
1055 - Fix the closing message when --clean and --keep-going are both
1056 used and no errors occur.
1057
1058 - Add support for the Intel C compiler on Mac OS X.
1059
1060 - Speed up reading SConscript files by about 20% (for some
1061 configurations) by: 1) optimizing the SCons.Util.is_*() and
1062 SCons.Util.flatten() functions; 2) avoiding unnecessary os.stat()
1063 calls by using a File's .suffix attribute directly instead of
1064 stringifying it.
1065
1066 From Jérôme Berger:
1067
1068 - Have the D language scanner search for .di files as well as .d files.
1069
1070 - Add a find_include_names() method to the Scanner.Classic class to
1071 abstract out how included names can be generated by subclasses.
1072
1073 - Allow the D language scanner to detect multiple modules imported by
1074 a single statement.
1075
1076 From Konstantin Bozhikov:
1077
1078 - Support expansion of construction variables that contain or refer
1079 to lists of other variables or Nodes within expansions like $CPPPATH.
1080
1081 - Change variable substitution (the env.subst() method) so that an
1082 input sequence (list or tuple) is preserved as a list in the output.
1083
1084 From David Cournapeau:
1085
1086 - Add a CheckDeclaration() call to configure contexts.
1087
1088 - Improve the CheckTypeSize() code.
1089
1090 - Add a Define() call to configure contexts, to add arbitrary #define
1091 lines to a generated configure header file.
1092
1093 - Add a "gfortran" Tool module for the GNU F95/F2003 compiler.
1094
1095 - Avoid use of -rpath with the Mac OS X linker.
1096
1097 - Add comment lines to the generated config.h file to describe what
1098 the various #define/#undef lines are doing.
1099
1100 From Steven Knight:
1101
1102 - Support the ability to subclass the new-style "str" class as input
1103 to Builders.
1104
1105 - Improve the performance of our type-checking by using isinstance()
1106 with new-style classes.
1107
1108 - Fix #include (and other $*PATH variables searches) of files with
1109 absolute path names. Don't die if they don't exist (due to being
1110 #ifdef'ed out or the like).
1111
1112 - Fix --interactive mode when Default(None) is used.
1113
1114 - Fix --debug=memoizer to work around a bug in base Python 2.2 metaclass
1115 initialization (by just not allowing Memoization in Python versions
1116 that have the bug).
1117
1118 - Have the "scons-time time" subcommand handle empty log files, and
1119 log files that contain no results specified by the --which option.
1120
1121 - Fix the max Y of vertical bars drawn by "scons-time --fmt=gnuplot".
1122
1123 - On Mac OS X, account for the fact that the header file generated
1124 from a C++ file will be named (e.g.) file.cpp.h, not file.hpp.
1125
1126 - Fix floating-point numbers confusing the Java parser about
1127 generated .class file names in some configurations.
1128
1129 - Document (nearly) all the values you can now fetch with GetOption().
1130
1131 - Fix use of file names containing strings of multiple spaces when
1132 using ActionFactory instances like the Copy() or Move() function.
1133
1134 - Fix a 0.97 regression when using a variable expansion (like
1135 $OBJSUFFIX) in a source file name to a builder with attached source
1136 builders that match suffix (like Program()+Object()).
1137
1138 - Have the Java parser recognize generics (surrounded by angle brackets)
1139 so they don't interfere with identifying anonymous inner classes.
1140
1141 - Avoid an infinite loop when trying to use saved copies of the
1142 env.Install() or env.InstallAs() after replacing the method
1143 attributes.
1144
1145 - Improve the performance of setting construction variables.
1146
1147 - When cloning a construction environment, avoid over-writing an
1148 attribute for an added method if the user explicitly replaced it.
1149
1150 - Add a warning about deprecated support for Python 1.5, 2.0 and 2.1.
1151
1152 - Fix being able to SetOption('warn', ...) in SConscript files.
1153
1154 - Add a warning about env.Copy() being deprecated.
1155
1156 - Add warnings about the --debug={dtree,stree,tree} options
1157 being deprecated.
1158
1159 - Add VariantDir() as the first step towards deprecating BuildDir().
1160 Add the keyword argument "variant_dir" as the replacement for
1161 "build_dir".
1162
1163 - Add warnings about the {Target,Source}Signatures() methods and
1164 functions being deprecated.
1165
1166 From Rob Managan:
1167
1168 - Enhance TeX and LaTeX support to work with BuildDir(duplicate=0).
1169
1170 - Re-run LaTeX when it issues a package warning that it must be re-run.
1171
1172 From Leanid Nazdrynau:
1173
1174 - Have the Copy() action factory preserve file modes and times
1175 when copying individual files.
1176
1177 From Jan Nijtmans:
1178
1179 - If $JARCHDIR isn't set explicitly, use the .java_classdir attribute
1180 that was set when the Java() Builder built the .class files.
1181
1182 From Greg Noel:
1183
1184 - Document the Dir(), File() and Entry() methods of Dir and File Nodes.
1185
1186 - Add the parse_flags option when creating Environments
1187
1188 From Gary Oberbrunner:
1189
1190 - Make File(), Dir() and Entry() return a list of Nodes when passed
1191 a list of names, instead of trying to make a string from the name
1192 list and making a Node from that string.
1193
1194 - Fix the ability to build an Alias in --interactive mode.
1195
1196 - Fix the ability to hash the contents of actions for nested Python
1197 functions on Python versions where the inability to pickle them
1198 returns a TypeError (instead of the documented PicklingError).
1199
1200 From Jonas Olsson:
1201
1202 - Fix use of the Intel C compiler when the top compiler directory,
1203 but not the compiler version, is specified.
1204
1205 - Handle Intel C compiler network license files (port@system).
1206
1207 From Jim Randall:
1208
1209 - Fix how Python Value Nodes are printed in --debug=explain output.
1210
1211 From Adam Simpkins:
1212
1213 - Add a --interactive option that starts a session for building (or
1214 cleaning) targets without re-reading the SConscript files every time.
1215
1216 - Fix use of readline command-line editing in --interactive mode.
1217
1218 - Have the --interactive mode "build" command with no arguments
1219 build the specified Default() targets.
1220
1221 - Fix the Chmod(), Delete(), Mkdir() and Touch() Action factories to
1222 take a list (of Nodes or strings) as arguments.
1223
1224 From Vaclav Smilauer:
1225
1226 - Fix saving and restoring an Options value of 'all' on Python
1227 versions where all() is a builtin function.
1228
1229 From Daniel Svensson:
1230
1231 - Code correction in SCons.Util.is_List().
1232
1233 From Ben Webb:
1234
1235 - Support the SWIG %module statement with following modifiers in
1236 parenthese (e.g., '%module(directors="1")').
1237
1238
1239
1240 RELEASE 0.97.0d20071212 - Wed, 12 Dec 2007 09:29:32 -0600
1241
1242 From Benoit Belley:
1243
1244 - Fix occasional spurious rebuilds and inefficiency when using
1245 --implicit-cache and Builders that produce multiple targets.
1246
1247 - Allow SCons to not have to know about the builders of generated
1248 files when BuildDir(duplicate=0) is used, potentially allowing some
1249 SConscript files to be ignored for smaller builds.
1250
1251 From David Cournapeau:
1252
1253 - Add a CheckTypeSize() call to configure contexts.
1254
1255 From Ken Deeter:
1256
1257 - Make the "contents" of Alias Nodes a concatenation of the children's
1258 content signatures (MD5 checksums), not a concatenation of the
1259 children's contents, to avoid using large amounts of memory during
1260 signature calculation.
1261
1262 From Malte Helmert:
1263
1264 - Fix a lot of typos in the man page and User's Guide.
1265
1266 From Geoffrey Irving:
1267
1268 - Speed up conversion of paths in .sconsign files to File or Dir Nodes.
1269
1270 From Steven Knight:
1271
1272 - Add an Options.UnknownOptions() method that returns any settings
1273 (from the command line, or whatever dictionary was passed in)
1274 that aren't known to the Options object.
1275
1276 - Add a Glob() function.
1277
1278 - When removing targets with the -c option, use the absolute path (to
1279 avoid problems interpreting BuildDir() when the top-level directory
1280 is the source directory).
1281
1282 - Fix problems with Install() and InstallAs() when called through a
1283 clone (of a clone, ...) of a cloned construction environment.
1284
1285 - When executing a file containing Options() settings, add the file's
1286 directory to sys.path (so modules can be imported from there) and
1287 explicity set __name__ to the name of the file so the statement's
1288 in the file can deduce the location if they need to.
1289
1290 - Fix an O(n^2) performance problem when adding sources to a target
1291 through calls to a multi Builder (including Aliases).
1292
1293 - Redefine the $WINDOWSPROGMANIFESTSUFFIX and
1294 $WINDOWSSHLIBMANIFESTSUFFIX variables so they pick up changes to
1295 the underlying $SHLIBSUFFIX and $PROGSUFFIX variables.
1296
1297 - Add a GetBuildFailures() function that can be called from functions
1298 registered with the Python atexit module to print summary information
1299 about any failures encountered while building.
1300
1301 - Return a NodeList object, not a Python list, when a single_source
1302 Builder like Object() is called with more than one file.
1303
1304 - When searching for implicit dependency files in the directories
1305 in a $*PATH list, don't create Dir Nodes for directories that
1306 don't actually exist on-disk.
1307
1308 - Add a Requires() function to allow the specification of order-only
1309 prerequisites, which will be updated before specified "downstream"
1310 targets but which don't actually cause the target to be rebuilt.
1311
1312 - Restore the FS.{Dir,File,Entry}.rel_path() method.
1313
1314 - Make the default behavior of {Source,Target}Signatures('timestamp')
1315 be equivalent to 'timestamp-match', not 'timestamp-newer'.
1316
1317 - Fix use of CacheDir with Decider('timestamp-newer') by updating
1318 the modification time when copying files from the cache.
1319
1320 - Fix random issues with parallel (-j) builds on Windows when Python
1321 holds open file handles (especially for SCons temporary files,
1322 or targets built by Python function actions) across process creation.
1323
1324 From Maxim Kartashev:
1325
1326 - Fix test scripts when run on Solaris.
1327
1328 From Gary Oberbrunner:
1329
1330 - Fix Glob() when a pattern is in an explicitly-named subdirectory.
1331
1332 From Philipp Scholl:
1333
1334 - Fix setting up targets if multiple Package builders are specified
1335 at once.
1336
1337
1338
1339 RELEASE 0.97.0d20070918 - Tue, 18 Sep 2007 10:51:27 -0500
1340
1341 From Steven Knight:
1342
1343 - Fix the wix Tool module to handle null entries in $PATH variables.
1344
1345 - Move the documentation of Install() and InstallAs() from the list
1346 of functions to the list of Builders (now that they're implemented
1347 as such).
1348
1349 - Allow env.CacheDir() to be set per construction environment. The
1350 global CacheDir() function now sets an overridable global default.
1351
1352 - Add an env.Decider() method and a Node.Decider() method that allow
1353 flexible specification of an arbitrary function to decide if a given
1354 dependency has changed since the last time a target was built.
1355
1356 - Don't execute Configure actions (while reading SConscript files)
1357 when cleaning (-c) or getting help (-h or -H).
1358
1359 - Add to each target an implicit dependency on the external command(s)
1360 used to build the target, as found by searching env['ENV']['PATH']
1361 for the first argument on each executed command line.
1362
1363 - Add support for a $IMPLICIT_COMMAND_DEPENDENCIES construction
1364 variabe that can be used to disable the automatic implicit
1365 dependency on executed commands.
1366
1367 - Add an "ensure_suffix" keyword to Builder() definitions that, when
1368 true, will add the configured suffix to the targets even if it looks
1369 like they already have a different suffix.
1370
1371 - Add a Progress() function that allows for calling a function or string
1372 (or list of strings) to display progress while walking the DAG.
1373
1374 - Allow ParseConfig(), MergeFlags() and ParseFlags() to handle output
1375 from a *config command with quoted path names that contain spaces.
1376
1377 - Make the Return() function stop processing the SConscript file and
1378 return immediately. Add a "stop=" keyword argument that can be set
1379 to False to preserve the old behavior.
1380
1381 - Fix use of exitstatfunc on an Action.
1382
1383 - Introduce all man page function examples with "Example:" or "Examples:".
1384
1385 - When a file gets added to a directory, make sure the directory gets
1386 re-scanned for the new implicit dependency.
1387
1388 - Fix handling a file that's specified multiple times in a target
1389 list so that it doesn't cause dependent Nodes to "disappear" from
1390 the dependency graph walk.
1391
1392 From Carsten Koch:
1393
1394 - Avoid race conditions with same-named files and directory creation
1395 when pushing copies of files to CacheDir().
1396
1397 From Tzvetan Mikov:
1398
1399 - Handle $ in Java class names.
1400
1401 From Gary Oberbrunner:
1402
1403 - Add support for the Intel C compiler on Windows64.
1404
1405 - On SGI IRIX, have $SHCXX use $CXX by default (like other platforms).
1406
1407 From Sohail Somani:
1408
1409 - When Cloning a construction environment, set any variables before
1410 applying tools (so the tool module can access the configured settings)
1411 and re-set them after (so they end up matching what the user set).
1412
1413 From Matthias Troffaes:
1414
1415 - Make sure extra auxiliary files generated by some LaTeX packages
1416 and not ending in .aux also get deleted by scons -c.
1417
1418 From Greg Ward:
1419
1420 - Add a $JAVABOOTCLASSPATH variable for directories to be passed to the
1421 javac -bootclasspath option.
1422
1423 From Christoph Wiedemann:
1424
1425 - Add implicit dependencies on the commands used to build a target.
1426
1427
1428
1429
1430 RELEASE 0.97.0d20070809 - Fri, 10 Aug 2007 10:51:27 -0500
1431
1432 From Lars Albertsson:
1433
1434 - Don't error if a #include line happens to match a directory
1435 somewhere on a path (like $CPPPATH, $FORTRANPATH, etc.).
1436
1437 From Mark Bertoglio:
1438
1439 - Fix listing multiple projects in Visual Studio 7.[01] solution files,
1440 including generating individual project GUIDs instead of re-using
1441 the solution GUID.
1442
1443 From Jean Brouwers:
1444
1445 - Add /opt/SUNWspro/bin to the default execution PATH on Solaris.
1446
1447 From Allan Erskine:
1448
1449 - Only expect the Microsoft IDL compiler to emit *_p.c and *_data.c
1450 files if the /proxy and /dlldata switches are used (respectively).
1451
1452 From Steven Knight:
1453
1454 - Have --debug=explain report if a target is being rebuilt because
1455 AlwaysBuild() is specified (instead of "unknown reasons").
1456
1457 - Support {Get,Set}Option('help') to make it easier for SConscript
1458 files to tell if a help option (-h, --help, etc.) has been specified.
1459
1460 - Support {Get,Set}Option('random') so random-dependency interaction
1461 with CacheDir() is controllable from SConscript files.
1462
1463 - Add a new AddOption() function to support user-defined command-
1464 line flags (like --prefix=, --force, etc.).
1465
1466 - Push and retrieve built symlinks to/from a CacheDir() as actual
1467 symlinks, not by copying the file contents.
1468
1469 - Fix how the Action module handles stringifying the shared library
1470 generator in the Tool/mingw.py module.
1471
1472 - When generating a config.h file, print "#define HAVE_{FEATURE} 1"
1473 instad of just "#define HAVE_{FEATURE}", for more compatibility
1474 with Autoconf-style projects.
1475
1476 - Fix expansion of $TARGET, $TARGETS, $SOURCE and $SOURCES keywords in
1477 Visual C/C++ PDB file names.
1478
1479 - Fix locating Visual C/C++ PDB files in build directories.
1480
1481 - Support an env.AddMethod() method and an AddMethod() global function
1482 for adding a new method, respectively, to a construction environment
1483 or an arbitrary object (such as a class).
1484
1485 - Fix the --debug=time option when the -j option is specified and all
1486 files are up to date.
1487
1488 - Add a $SWIGOUTDIR variable to allow setting the swig -outdir option,
1489 and use it to identify files created by the swig -java option.
1490
1491 - Add a $SWIGPATH variable that specifies the path to be searched
1492 for included SWIG files, Also add related $SWIGINCPREFIX and
1493 $SWIGINCSUFFIX variables that specify the prefix and suffix to
1494 be be added to each $SWIGPATH directory when expanded on the SWIG
1495 command line.
1496
1497 - More efficient copying of construction environments (mostly borrowed
1498 from copy.deepcopy() in the standard Python library).
1499
1500 - When printing --tree=prune output, don't print [brackets] around
1501 source files, only do so for built targets with children.
1502
1503 - Fix interpretation of Builder source arguments when the Builder has
1504 a src_suffix *and* a source_builder and the argument has no suffix.
1505
1506 - Fix use of expansions like ${TARGET.dir} or ${SOURCE.dir} in the
1507 following construction variables: $FORTRANMODDIR, $JARCHDIR,
1508 $JARFLAGS, $LEXFLAGS, $SWIGFLAGS, $SWIGOUTDIR and $YACCFLAGS.
1509
1510 - Fix dependencies on Java files generated by SWIG so they can be
1511 detected and built in one pass.
1512
1513 - Fix SWIG when used with a BuildDir().
1514
1515 From Leanid Nazdrynau:
1516
1517 - When applying Tool modules after a construction environment has
1518 already been created, don't overwrite existing $CFILESUFFIX and
1519 $CXXFILESUFFIX value.
1520
1521 - Support passing the Java() builder a list of explicit .java files
1522 (not only a list of directories to be scanned for .java files).
1523
1524 - Support passing .java files to the Jar() and JavaH() builders, which
1525 then use the builder underlying the Java() builder to turn them into
1526 .class files. (That is, the Jar()-Java() chain of builders become
1527 multi-step, like the Program()-Object()-CFile() builders.)
1528
1529 - Support passing SWIG .i files to the Java builders (Java(),
1530 Jar(), JavaH()), to cause intermediate .java files to be created
1531 automatically.
1532
1533 - Add $JAVACLASSPATH and $JAVASOURCEPATH variables, that get added to
1534 the javac "-classpath" and "-sourcepath" options. (Note that SCons
1535 does *not* currently search these paths for implicit dependencies.)
1536
1537 - Commonize initialization of Java-related builders.
1538
1539 From Jan Nijtmans:
1540
1541 - Find Java anonymous classes when the next token after the name is
1542 an open parenthesis.
1543
1544 From Gary Oberbrunner:
1545
1546 - Fix a code example in the man page.
1547
1548 From Tilo Prutz:
1549
1550 - Add support for the file names that Java 1.5 (and 1.6) generates for
1551 nested anonymous inner classes, which are different from Java 1.4.
1552
1553 From Adam Simpkins:
1554
1555 - Allow worker threads to terminate gracefully when all jobs are
1556 finished.
1557
1558 From Sohail Somani:
1559
1560 - Add LaTeX scanner support for finding dependencies specified with
1561 the \usepackage{} directive.
1562
1563
1564
1565 RELEASE 0.97 - Thu, 17 May 2007 08:59:41 -0500
1566
1567 From Steven Knight:
1568
1569 - Fix a bug that would make parallel builds stop in their tracks if
1570 Nodes that depended on lists that contained some Nodes built together
1571 caused the reference count to drop below 0 if the Nodes were visited
1572 and commands finished in the wrong order.
1573
1574 - Make sure the DirEntryScanner doesn't choke if it's handed something
1575 that's not a directory (Node.FS.Dir) Node.
1576
1577
1578
1579 RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
1580
1581 NOTE: This is (Yet) a(nother) pre-release of 0.97 for testing purposes.
1582
1583 From Joe Bloggs:
1584
1585 - Man page fix: remove cut-and-paste sentence in NoCache() description.
1586
1587 From Dmitry Grigorenko and Gary Oberbrunner:
1588
1589 - Use the Intel C++ compiler, not $CC, to link C++ source.
1590
1591 From Helmut Grohne:
1592
1593 - Fix the man page example of propagating a user's external environment.
1594
1595 From Steven Knight:
1596
1597 - Back out (most of) the Windows registry installer patch, which
1598 seems to not work on some versions of Windows.
1599
1600 - Don't treat Java ".class" attributes as defining an inner class.
1601
1602 - Fix detecting an erroneous Java anonymous class when the first
1603 non-skipped token after a "new" keyword is a closing brace.
1604
1605 - Fix a regression when a CPPDEFINES list contains a tuple, the second
1606 item of which (the option value) is a construction variable expansion
1607 (e.g. $VALUE) and the value of the variable isn't a string.
1608
1609 - Improve the error message if an IOError (like trying to read a
1610 directory as a file) occurs while deciding if a node is up-to-date.
1611
1612 - Fix "maximum recursion" / "unhashable type" errors in $CPPPATH
1613 PathList expansion if a subsidiary expansion yields a stringable,
1614 non-Node object.
1615
1616 - Generate API documentation from the docstrings (using epydoc).
1617
1618 - Fix use of --debug=presub with Actions for out-of-the-box Builders.
1619
1620 - Fix handling nested lists within $CPPPATH, $LIBPATH, etc.
1621
1622 - Fix a "builders_used" AttributeError that real-world Qt initialization
1623 triggered in the refactored suffix handling for Builders.
1624
1625 - Make the reported --debug=time timings meaningful when used with -j.
1626 Better documentation of what the times mean.
1627
1628 - User Guide updates: --random, AlwaysBuild(), --tree=,
1629 --debug=findlibs, --debug=presub, --debug=stacktrace,
1630 --taskmastertrace.
1631
1632 - Document (in both man page and User's Guide) that --implicit-cache
1633 ignores changes in $CPPPATH, $LIBPATH, etc.
1634
1635 From Jean-Baptiste Lab:
1636
1637 - Remove hard-coded dependency on Python 2.2 from Debian packaging files.
1638
1639 From Jeff Mahovsky:
1640
1641 - Handle spaces in the build target name in Visual Studio project files.
1642
1643 From Rob Managan:
1644
1645 - Re-run LaTeX after BibTeX has been re-run in response to a changed
1646 .bib file.
1647
1648 From Joel B. Mohler:
1649
1650 - Make additional TeX auxiliary files (.toc, .idx and .bbl files)
1651 Precious so their removal doesn't affect whether the necessary
1652 sections are included in output PDF or PostScript files.
1653
1654 From Gary Oberbrunner:
1655
1656 - Fix the ability to import modules in the site_scons directory from
1657 a subdirectory.
1658
1659 From Adam Simpkins:
1660
1661 - Make sure parallel (-j) builds all targets even if they show up
1662 multiple times in the child list (as a source and a dependency).
1663
1664 From Matthias Troffaes:
1665
1666 - Don't re-run TeX if the triggering strings (\makeindex, \bibliography
1667 \tableofcontents) are commented out.
1668
1669 From Richard Viney:
1670
1671 - Fix use of custom include and lib paths with Visual Studio 8.
1672
1673 - Select the default .NET Framework SDK Dir based on the version of
1674 Visual Studio being used.
1675
1676
1677
1678 RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600
1679
1680 From Anatoly:
1681
1682 - Add the scons.org URL and a package description to the setup.py
1683 arguments.
1684
1685 - Have the Windows installer add a registry entry for scons.bat in the
1686 "App Paths" key, so scons.bat can be executed without adding the
1687 directory to the %PATH%. (Python itself works this way.)
1688
1689 From Anonymous:
1690
1691 - Fix looking for default paths in Visual Studio 8.0 (and later).
1692
1693 - Add -lm to the list of default D libraries for linking.
1694
1695 From Matt Doar:
1696
1697 - Provide a more complete write-your-own-Scanner example in the man page.
1698
1699 From Ralf W. Grosse-Kunstleve:
1700
1701 - Contributed upstream Python change to our copied subprocess.py module
1702 for more efficient standard input processing.
1703
1704 From Steven Knight:
1705
1706 - Fix the Node.FS.Base.rel_path() method when the two nodes are on
1707 different drive letters. (This caused an infinite loop when
1708 trying to write .sconsign files.)
1709
1710 - Fully support Scanners that use a dictionary to map file suffixes
1711 to other scanners.
1712
1713 - Support delayed evaluation of the $SPAWN variable to allow selection
1714 of a function via ${} string expansions.
1715
1716 - Add --srcdir as a synonym for -Y/--repository.
1717
1718 - Document limitations of #include "file.h" with Repository().
1719
1720 - Fix use of a toolpath under the source directory of a BuildDir().
1721
1722 - Fix env.Install() with a file name portion that begins with '#'.
1723
1724 - Fix ParseConfig()'s handling of multiple options in a string that's
1725 replaced a *FLAGS construction variable.
1726
1727 - Have the C++ tools initialize common C compilation variables ($CCFLAGS,
1728 $SHCCFLAGS and $_CCCOMCOM) even if the 'cc' Tool isn't loaded.
1729
1730 From Leanid Nazdrynau:
1731
1732 - Fix detection of Java anonymous classes if a newline precedes the
1733 opening brace.
1734
1735 From Gary Oberbrunner:
1736
1737 - Document use of ${} to execute arbitrary Python code.
1738
1739 - Add support for:
1740 1) automatically adding a site_scons subdirectory (in the top-level
1741 SConstruct directory) to sys.path (PYTHONPATH);
1742 2) automatically importing site_scons/site_init.py;
1743 3) automatically adding site_scons/site_tools to the toolpath.
1744
1745 From John Pye:
1746
1747 - Change ParseConfig() to preserve white space in arguments passed in
1748 as a list.
1749
1750 From a smith:
1751
1752 - Fix adding explicitly-named Java inner class files (and any
1753 other file names that may contain a '$') to Jar files.
1754
1755 From David Vitek:
1756
1757 - Add a NoCache() function to mark targets as unsuitable for propagating
1758 to (or retrieving from) a CacheDir().
1759
1760 From Ben Webb:
1761
1762 - If the swig -noproxy option is used, it won't generate a .py file,
1763 so don't emit it as a target that we expect to be built.
1764
1765
1766
1767 RELEASE 0.96.94 - Sun, 07 Jan 2007 18:36:20 -0600
1768
1769 NOTE: This is a pre-release of 0.97 for testing purposes.
1770
1771 From Anonymous:
1772
1773 - Allow arbitrary white space after a SWIG %module declaration.
1774
1775 From Paul:
1776
1777 - When compiling resources under MinGW, make sure there's a space
1778 between the --include-dir option and its argument.
1779
1780 From Jay Kint:
1781
1782 - Alleviate long command line issues on Windows by executing command
1783 lines directly via os.spawnv() if the command line doesn't need
1784 shell interpretation (has no pipes, redirection, etc.).
1785
1786 From Walter Franzini:
1787
1788 - Exclude additional Debian packaging files from the copyright check.
1789
1790 From Fawad Halim:
1791
1792 - Handle the conflict between the impending Python 2.6 'as' keyword
1793 and our Tool/as.py module name.
1794
1795 From Steven Knight:
1796
1797 - Speed up the Node.FS.Dir.rel_path() method used to generate path names
1798 that get put into the .sconsign* file(s).
1799
1800 - Optimize Node.FS.Base.get_suffix() by computing the suffix once, up
1801 front, when we set the Node's name. (Duh...)
1802
1803 - Reduce the Memoizer's responsibilities to simply counting hits and
1804 misses when the --debug=memoizer option is used, not to actually
1805 handling the key calculation and memoization itself. This speeds
1806 up some configurations significantly, and should cause no functional
1807 differences.
1808
1809 - Add a new scons-time script with subcommands for generating
1810 consistent timing output from SCons configurations, extracting
1811 various information from those timings, and displaying them in
1812 different formats.
1813
1814 - Reduce some unnecessary stat() calls from on-disk entry type checks.
1815
1816 - Fix SideEffect() when used with -j, which was badly broken in 0.96.93.
1817
1818 - Propagate TypeError exceptions when evaluating construction variable
1819 expansions up the stack, so users can see what's going on.
1820
1821 - When disambiguating a Node.FS.Entry into a Dir or File, don't look
1822 in the on-disk source directory until we've confirmed there's no
1823 on-disk entry locally and there *is* one in the srcdir. This avoids
1824 creating a phantom Node that can interfere with dependencies on
1825 directory contents.
1826
1827 - Add an AllowSubstExceptions() function that gives the SConscript
1828 files control over what exceptions cause a string to expand to ''
1829 vs. terminating processing with an error.
1830
1831 - Allow the f90.py and f95.py Tool modules to compile earlier source
1832 source files of earlier Fortran version.
1833
1834 - Fix storing signatures of files retrieved from CacheDir() so they're
1835 correctly identified as up-to-date next invocation.
1836
1837 - Make sure lists of computed source suffixes cached by Builder objects
1838 don't persist across changes to the list of source Builders (so the
1839 addition of suffixes like .ui by the qt.py Tool module take effect).
1840
1841 - Enhance the bootstrap.py script to allow it to be used to execute
1842 SCons more easily from a checked-out source tree.
1843
1844 From Ben Leslie:
1845
1846 - Fix post-Memoizer value caching misspellings in Node.FS._doLookup().
1847
1848 From Rob Managan, Dmitry Mikhin and Joel B. Mohler:
1849
1850 - Handle TeX/LaTeX files in subdirectories by changing directory
1851 before invoking TeX/LaTeX.
1852
1853 - Scan LaTeX files for \bibliography lines.
1854
1855 - Support multiple file names in a "\bibliography{file1,file2}" string.
1856
1857 - Handle TeX warnings about undefined citations.
1858
1859 - Support re-running LaTeX if necessary due to a Table of Contents.
1860
1861 From Dmitry Mikhin:
1862
1863 - Return LaTeX if "Rerun to get citations correct" shows up on the next
1864 line after the "Warning:" string.
1865
1866 From Gary Oberbrunner:
1867
1868 - Add #include lines to fix portability issues in two tests.
1869
1870 - Eliminate some unnecessary os.path.normpath() calls.
1871
1872 - Add a $CFLAGS variable for C-specific options, leaving $CCFLAGS
1873 for options common to C and C++.
1874
1875 From Tom Parker:
1876
1877 - Have the error message print the missing file that Qt can't find.
1878
1879 From John Pye:
1880
1881 - Fix env.MergeFlags() appending to construction variable value of None.
1882
1883 From Steve Robbins:
1884
1885 - Fix the "sconsign" script when the .sconsign.dblite file is explicitly
1886 specified on the command line (and not intuited from the old way of
1887 calling it with just ".sconsign").
1888
1889 From Jose Pablo Ezequiel "Pupeno" Fernandez Silva:
1890
1891 - Give the 'lex' tool knowledge of the additional target files produced
1892 by the flex "--header-file=" and "--tables-file=" options.
1893
1894 - Give the 'yacc' tool knowledge of the additional target files produced
1895 by the bison "-g", "--defines=" and "--graph=" options.
1896
1897 - Generate intermediate files with Objective C file suffixes (.m) when
1898 the lex and yacc source files have appropriate suffixes (.lm and .ym).
1899
1900 From Sohail Somain:
1901
1902 - Have the mslink.py Tool only look for a 'link' executable on Windows
1903 systems.
1904
1905 From Vaclav Smilauer:
1906
1907 - Add support for a "srcdir" keyword argument when calling a Builder,
1908 which will add a srcdir prefix to all non-relative string sources.
1909
1910 From Jonathan Ultis:
1911
1912 - Allow Options converters to take the construction environment as
1913 an optional argument.
1914
1915
1916
1917 RELEASE 0.96.93 - Mon, 06 Nov 2006 00:44:11 -0600
1918
1919 NOTE: This is a pre-release of 0.97 for testing purposes.
1920
1921 From Anonymous:
1922
1923 - Allow Python Value Nodes to be Builder targets.
1924
1925 From Matthias:
1926
1927 - Only filter Visual Studio common filename prefixes on complete
1928 directory names.
1929
1930 From Chad Austin:
1931
1932 - Fix the build of the SCons documentation on systems that don't
1933 have "python" in the $PATH.
1934
1935 From Ken Boortz:
1936
1937 - Enhance ParseConfig() to recognize options that begin with '+'.
1938
1939 From John Calcote, Elliot Murphy:
1940
1941 - Document ways to override the CCPDBFLAGS variable to use the
1942 Microsoft linker's /Zi option instead of the default /Z7.
1943
1944 From Christopher Drexler:
1945
1946 - Make SCons aware bibtex must be called if any \include files
1947 cause creation of a bibliography.
1948
1949 - Make SCons aware that "\bilbiography" in TeX source files means
1950 that related .bbl and .blg bibliography files will be created.
1951 (NOTE: This still needs to search for the string in \include files.)
1952
1953 From David Gruener:
1954
1955 - Fix inconsistent handling of Action strfunction arguments.
1956
1957 - Preserve white space in display Action strfunction strings.
1958
1959 From James Y. Knight and Gerard Patel:
1960
1961 - Support creation of shared object files from assembly language.
1962
1963 From Steven Knight:
1964
1965 - Speed up the Taskmaster significantly by avoiding unnecessary
1966 re-scans of Nodes to find out if there's work to be done, having it
1967 track the currently-executed top-level target directly and not
1968 through its presence on the target list, and eliminating some other
1969 minor list(s), method(s) and manipulation.
1970
1971 - Fix the expansion of $TARGET and $SOURCE in the expansion of
1972 $INSTALLSTR displayed for non-environment calls to InstallAs().
1973
1974 - Fix the ability to have an Alias() call refer to a directory
1975 name that's not identified as a directory until later.
1976
1977 - Enhance runtest.py with an option to use QMTest as the harness.
1978 This will become the default behavior as we add more functionality
1979 to the QMTest side.
1980
1981 - Let linking on mingw use the default function that chooses $CC (gcc)
1982 or $CXX (g++) depending on whether there are any C++ source files.
1983
1984 - Work around a bug in early versions of the Python 2.4 profile module
1985 that caused the --profile= option to fail.
1986
1987 - Only call Options validators and converters once when initializing a
1988 construction environment.
1989
1990 - Fix the ability of env.Append() and env.Prepend(), in all known Python
1991 versions, to handle different input value types when the construction
1992 variable being updated is a dictionary.
1993
1994 - Add a --cache-debug option for information about what files it's
1995 looking for in a CacheDir().
1996
1997 - Document the difference in construction variable expansion between
1998 {Action,Builder}() and env.{Action,Builder}().
1999
2000 - Change the name of env.Copy() to env.Clone(), keeping the old name
2001 around for backwards compatibility (with the intention of eventually
2002 phasing it out to avoid confusion with the Copy() Action factory).
2003
2004 From Arve Knudsen:
2005
2006 - Support cleaning and scanning SWIG-generated files.
2007
2008 From Carsten Koch:
2009
2010 - Allow selection of Visual Studio version by setting $MSVS_VERSION
2011 after construction environment initialization.
2012
2013 From Jean-Baptiste Lab:
2014
2015 - Try using zipimport if we can't import Tool or Platform modules
2016 using the normal "imp" module. This allows SCons to be packaged
2017 using py2exe's all-in-one-zip-file approach.
2018
2019 From Ben Liblit:
2020
2021 - Do not re-scan files if the scanner returns no implicit dependencies.
2022
2023 From Sanjoy Mahajan:
2024
2025 - Change use of $SOURCES to $SOURCE in all TeX-related Tool modules.
2026
2027 From Joel B. Mohler:
2028
2029 - Make SCons aware that "\makeindex" in TeX source files means that
2030 related .ilg, .ind and .idx index files will be created.
2031 (NOTE: This still needs to search for the string in \include files.)
2032
2033 - Prevent scanning the TeX .aux file for additional files from
2034 trying to remove it twice when the -c option is used.
2035
2036 From Leanid Nazdrynau:
2037
2038 - Give the MSVC RES (resource) Builder a src_builder list and a .rc
2039 src_suffix so other builders can generate .rc files.
2040
2041 From Matthew A. Nicholson:
2042
2043 - Enhance Install() and InstallAs() to handle directory trees as sources.
2044
2045 From Jan Nijtmans:
2046
2047 - Don't use the -fPIC flag when using gcc on Windows (e.g. MinGW).
2048
2049 From Greg Noel:
2050
2051 - Add an env.ParseFlags() method that provides separate logic for
2052 parsing GNU tool chain flags into a dictionary.
2053
2054 - Add an env.MergeFlags() method to apply an arbitrary dictionary
2055 of flags to a construction environment's variables.
2056
2057 From Gary Oberbrunner:
2058
2059 - Fix parsing tripartite Intel C compiler version numbers on Linux.
2060
2061 - Extend the ParseConfig() function to recognize -arch and
2062 -isysroot options.
2063
2064 - Have the error message list the known suffixes when a Builder call
2065 can't build a source file with an unknown suffix.
2066
2067 From Karol Pietrzak:
2068
2069 - Avoid recursive calls to main() in the program snippet used by the
2070 SConf subsystem to test linking against libraries. This changes the
2071 default behavior of CheckLib() and CheckLibWithHeader() to print
2072 "Checking for C library foo..." instead of "Checking for main()
2073 in C library foo...".
2074
2075 From John Pye:
2076
2077 - Throw an exception if a command called by ParseConfig() or
2078 ParseFlags() returns an error.
2079
2080 From Stefan Seefeld:
2081
2082 - Initial infrastructure for running SCons tests under QMTest.
2083
2084 From Sohail Somani:
2085
2086 - Fix tests that fail due to gcc warnings.
2087
2088 From Dobes Vandermeer:
2089
2090 - In stack traces, print the full paths of SConscript files.
2091
2092 From Atul Varma:
2093
2094 - Fix detection of Visual C++ Express Edition.
2095
2096 From Dobes Vandermeer:
2097
2098 - Let the src_dir option to the SConscript() function affect all the
2099 the source file paths, instead of treating all source files paths
2100 as relative to the SConscript directory itself.
2101
2102 From Nicolas Vigier:
2103
2104 - Fix finding Fortran modules in build directories.
2105
2106 - Fix use of BuildDir() when the source file in the source directory
2107 is a symlink with a relative path.
2108
2109 From Edward Wang:
2110
2111 - Fix the Memoizer when the SCons Python modules are executed from
2112 .pyo files at different locations from where they were compiled.
2113
2114 From Johan Zander:
2115
2116 - Fix missing os.path.join() when constructing the $FRAMEWORKSDKDIR/bin.
2117
2118
2119
2120 RELEASE 0.96.92 - Mon, 10 Apr 2006 21:08:22 -0400
2121
2122 NOTE: This was a pre-release of 0.97 for testing purposes.
2123
2124 From Anonymous:
2125
2126 - Fix the intelc.py Tool module to not throw an exception if the
2127 only installed version is something other than ia32.
2128
2129 - Set $CCVERSION when using gcc.
2130
2131 From Matthias:
2132
2133 - Support generating project and solution files for Microsoft
2134 Visual Studio version 8.
2135
2136 - Support generating more than one project file for a Microsoft
2137 Visual Studio solution file.
2138
2139 - Add support for a support "runfile" parameter to Microsoft
2140 Visual Studio project file creation.
2141
2142 - Put the project GUID, not the solution GUID, in the right spot
2143 in the solution file.
2144
2145 From Erling Andersen:
2146
2147 - Fix interpretation of Node.FS objects wrapped in Proxy instances,
2148 allowing expansion of things like ${File(TARGET)} in command lines.
2149
2150 From Stanislav Baranov:
2151
2152 - Add a separate MSVSSolution() Builder, with support for the
2153 following new construction variables: $MSVSBUILDCOM, $MSVSCLEANCOM,
2154 $MSVSENCODING, $MSVSREBUILDCOM, $MSVSSCONS, $MSVSSCONSCOM,
2155 $MSVSSCONSFLAGS, $MSVSSCONSCRIPT and $MSVSSOLUTIONCOM.
2156
2157 From Ralph W. Grosse-Kunstleve and Patrick Mezard:
2158
2159 - Remove unneceesary (and incorrect) SCons.Util strings on some function
2160 calls in SCons.Util.
2161
2162 From Bob Halley:
2163
2164 - Fix C/C++ compiler selection on AIX to not always use the external $CC
2165 environment variable.
2166
2167 From August Hörandl:
2168
2169 - Add a scanner for \include and \import files, with support for
2170 searching a directory list in $TEXINPUTS (imported from the external
2171 environment).
2172
2173 - Support $MAKEINDEX, $MAKEINDEXCOM, $MAKEINDEXCOMSTR and
2174 $MAKEINDEXFLAGS for generating indices from .idx files.
2175
2176 From Steven Johnson:
2177
2178 - Add a NoClean() Environment method and function to override removal
2179 of targets during a -c clean, including documentation and tests.
2180
2181 From Steven Knight:
2182
2183 - Check for whether files exist on disk by listing the directory
2184 contents, not calling os.path.exists() file by file. This is
2185 somewhat more efficient in general, and may be significantly
2186 more efficient on Windows.
2187
2188 - Minor speedups in the internal is_Dict(), is_List() and is_String()
2189 functions.
2190
2191 - Fix a signature refactoring bug that caused Qt header files to
2192 get re-generated every time.
2193
2194 - Don't fail when writing signatures if the .sconsign.dblite file is
2195 owned by a different user (e.g. root) from a previous run.
2196
2197 - When deleting variables from stacked OverrideEnvironments, don't
2198 throw a KeyError if we were able to delte the variable from any
2199 Environment in the stack.
2200
2201 - Get rid of the last indentation tabs in the SCons source files and
2202 add -tt to the Python invocations in the packaging build and the
2203 tests so they don't creep back in.
2204
2205 - In Visual Studio project files, put quotes around the -C directory
2206 so everything works even if the path has spaces in it.
2207
2208 - The Intel Fortran compiler uses -object:$TARGET, not "-o $TARGET",
2209 when building object files on Windows. Have the the ifort Tool
2210 modify the default command lines appropriately.
2211
2212 - Document the --debug=explain option in the man page. (How did we
2213 miss this?)
2214
2215 - Add a $LATEXRETRIES variable to allow configuration of the number of
2216 times LaTex can be re-called to try to resolve undefined references.
2217
2218 - Change the order of the arguments to Configure.Checklib() to match
2219 the documentation.
2220
2221 - Handle signature calculation properly when the Python function used
2222 for a FunctionAction is an object method.
2223
2224 - On Windows, assume that absolute path names without a drive letter
2225 refer to the drive on which the SConstruct file lives.
2226
2227 - Add /usr/ccs/bin to the end of the the default external execution
2228 PATH on Solaris.
2229
2230 - Add $PKGCHK and $PKGINFO variables for use on Solaris when searching
2231 for the SunPRO C++ compiler. Make the default value for $PKGCHK
2232 be /usr/sbin/pgkchk (since /usr/sbin isn't usually on the external
2233 execution $PATH).
2234
2235 - Fix a man page example of overriding variables when calling
2236 SharedLibrary() to also set the $LIBSUFFIXES variable.
2237
2238 - Add a --taskmastertrace=FILE option to give some insight on how
2239 the taskmaster decides what Node to build next.
2240
2241 - Changed the names of the old $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
2242 $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX construction variables to
2243 new $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX, $WINDOWSDLLPREFIX and
2244 $WINDOWSIMPLIBPREFIX construction variables. The old names are now
2245 deprecated, but preserved for backwards compatibility.
2246
2247 - Fix (?) a runtest.py hang on Windows when the --xml option is used.
2248
2249 - Change the message when an error occurs trying to interact with the
2250 file system to report the target(s) in square brackets (as before) and
2251 the actual file or directory that encountered the error afterwards.
2252
2253 From Chen Lee:
2254
2255 - Add x64 support for Microsoft Visual Studio 8.
2256
2257 From Baptiste Lepilleur:
2258
2259 - Support the --debug=memory option on Windows when the Python version
2260 has the win32process and win32api modules.
2261
2262 - Add support for Visual Studio 2005 Pro.
2263
2264 - Fix portability issues in various tests: test/Case.py,
2265 Test/Java/{JAR,JARCHDIR,JARFLAGS,JAVAC,JAVACFLAGS,JAVAH,RMIC}.py,
2266 test/MSVS/vs-{6.0,7.0,7.1,8.0}-exec.py,
2267 test/Repository/{Java,JavaH,RMIC}.py,
2268 test/QT/{generated-ui,installed,up-to-date,warnings}.py,
2269 test/ZIP/ZIP.py.
2270
2271 - Ignore pkgchk errors on Solaris when searching for the C++ compiler.
2272
2273 - Speed up the SCons/EnvironmentTests.py unit tests.
2274
2275 - Add a --verbose= option to runtest.py to print executed commands
2276 and their output at various levels.
2277
2278 From Christian Maaser:
2279
2280 - Add support for Visual Studio Express Editions.
2281
2282 - Add support for Visual Studio 8 *.manifest files, includng
2283 new $WINDOWS_INSERT_MANIFEST, $WINDOWSPROGMANIFESTSUFFIX,
2284 $WINDOWSPROGMANIFESTPREFIX, $WINDOWSPROGMANIFESTSUFFIX,
2285 $WINDOWSSHLIBMANIFESTPREFIX and $WINDOWSSHLIBMANIFESTSUFFIX
2286 construction variables.
2287
2288 From Adam MacBeth:
2289
2290 - Fix detection of additional Java inner classes following use of a
2291 "new" keyword inside an inner class.
2292
2293 From Sanjoy Mahajan:
2294
2295 - Correct TeX-related command lines to just $SOURCE, not $SOURCES
2296
2297 From Patrick Mezard:
2298
2299 - Execute build commands for a command-line target if any of the
2300 files built along with the target is out of date or non-existent,
2301 not just if the command-line target itself is out of date.
2302
2303 - Fix the -n option when used with -c to print all of the targets
2304 that will be removed for a multi-target Builder call.
2305
2306 - If there's no file in the source directory, make sure there isn't
2307 one in the build directory, too, to avoid dangling files left
2308 over from previous runs when a source file is removed.
2309
2310 - Allow AppendUnique() and PrependUnique() to append strings (and
2311 other atomic objects) to lists.
2312
2313 From Joel B. Mohler:
2314
2315 - Extend latex.py, pdflatex.py, pdftex.py and tex.py so that building
2316 from both TeX and LaTeX files uses the same logic to call $BIBTEX
2317 when it's necessary, to call $MAKEINDEX when it's necessary, and to
2318 call $TEX or $LATEX multiple times to handle undefined references.
2319
2320 - Add an emitter to the various TeX builders so that the generated
2321 .aux and .log files also get deleted by the -c option.
2322
2323 From Leanid Nazdrynau:
2324
2325 - Fix the Qt UIC scanner to work with generated .ui files (by using
2326 the FindFile() function instead of checking by-hand for the file).
2327
2328 From Jan Nieuwenhuizen:
2329
2330 - Fix a problem with interpreting quoted argument lists on command lines.
2331
2332 From Greg Noel:
2333
2334 - Add /sw/bin to the default execution PATH on Mac OS X.
2335
2336 From Kian Win Ong:
2337
2338 - When building a .jar file and there is a $JARCHDIR, put the -C
2339 in front of each .class file on the command line.
2340
2341 - Recognize the Java 1.5 enum keyword.
2342
2343 From Asfand Yar Qazi:
2344
2345 - Add /opt/bin to the default execution PATH on all POSIX platforms
2346 (between /usr/local/bin and /bin).
2347
2348 From Jon Rafkind:
2349
2350 - Fix the use of Configure() contexts from nested subsidiary
2351 SConscript files.
2352
2353 From Christoph Schulz:
2354
2355 - Add support for $CONFIGUREDIR and $CONFIGURELOG variables to control
2356 the directory and logs for configuration tests.
2357
2358 - Add support for a $INSTALLSTR variable.
2359
2360 - Add support for $RANLIBCOM and $RANLIBCOMSTR variables (which fixes
2361 a bug when setting $ARCOMSTR).
2362
2363 From Amir Szekely:
2364
2365 - Add use of $CPPDEFINES to $RCCOM (resource file compilation) on MinGW.
2366
2367 From Erick Tryzelaar:
2368
2369 - Fix the error message when trying to report that a given option is
2370 not gettable/settable from an SConscript file.
2371
2372 From Dobes Vandermeer:
2373
2374 - Add support for SCC and other settings in Microsoft Visual
2375 Studio project and solution files: $MSVS_PROJECT_BASE_PATH,
2376 $MSVS_PROJECT_GUID, $MSVS_SCC_AUX_PATH, $MSVS_SCC_LOCAL_PATH,
2377 $MSVS_SCC_PROJECT_NAME, $MSVS_SCC_PROVIDER,
2378
2379 - Add support for using a $SCONS_HOME variable (imported from the
2380 external environment, or settable internally) to put a shortened
2381 SCons execution line in the Visual Studio project file.
2382
2383 From David J. Van Maren:
2384
2385 - Only filter common prefixes from source files names in Visual Studio
2386 project files if the prefix is a complete (sub)directory name.
2387
2388 From Thad Ward:
2389
2390 - If $MSVSVERSIONS is already set, don't overwrite it with
2391 information from the registry.
2392
2393
2394
2395 RELEASE 0.96.91 - Thu, 08 Sep 2005 07:18:23 -0400
2396
2397 NOTE: This was a pre-release of 0.97 for testing purposes.
2398
2399 From Chad Austin:
2400
2401 - Have the environment store the toolpath and re-use it to find Tools
2402 modules during later Copy() or Tool() calls (unless overridden).
2403
2404 - Normalize the directory path names in SConsignFile() database
2405 files so the same signature file can interoperate on Windows and
2406 non-Windows systems.
2407
2408 - Make --debug=stacktrace print a stacktrace when a UserError is thrown.
2409
2410 - Remove an old, erroneous cut-and-paste comment in Scanner/Dir.py.
2411
2412 From Stanislav Baranov:
2413
2414 - Make it possible to support with custom Alias (sub-)classes.
2415
2416 - Allow Builders to take empty source lists when called.
2417
2418 - Allow access to both TARGET and SOURCE in $*PATH expansions.
2419
2420 - Allow SConscript files to modify BUILD_TARGETS.
2421
2422 From Timothee Besset:
2423
2424 - Add support for Objective C/C++ .m and .mm file suffixes (for
2425 Mac OS X).
2426
2427 From Charles Crain
2428
2429 - Fix the PharLap linkloc.py module to use target+source arguments
2430 when calling env.subst().
2431
2432 From Bjorn Eriksson:
2433
2434 - Fix an incorrect Command() keyword argument in the man page.
2435
2436 - Add a $TEMPFILEPREFIX variable to control the prefix or flag used
2437 to pass a long-command-line-execution tempfile to a command.
2438
2439 From Steven Knight:
2440
2441 - Enhanced the SCons setup.py script to install man pages on
2442 UNIX/Linux systems.
2443
2444 - Add support for an Options.FormatOptionHelpText() method that can
2445 be overridden to customize the format of Options help text.
2446
2447 - Add a global name for the Entry class (which had already been
2448 documented).
2449
2450 - Fix re-scanning of generated source files for implicit dependencies
2451 when the -j option is used.
2452
2453 - Fix a dependency problem that caused $LIBS scans to not be added
2454 to all of the targets in a multiple-target builder call, which
2455 could cause out-of-order builds when the -j option is used.
2456
2457 - Store the paths of source files and dependencies in the .sconsign*
2458 file(s) relative to the target's directory, not relative to the
2459 top-level SConstruct directory. This starts to make it possible to
2460 subdivide the dependency tree arbitrarily by putting an SConstruct
2461 file in every directory and using content signatures.
2462
2463 - Add support for $YACCHFILESUFFIX and $YACCHXXFILESUFFIX variables
2464 that accomodate parser generators that write header files to a
2465 different suffix than the hard-coded .hpp when the -d option is used.
2466
2467 - The default behavior is now to store signature information in a
2468 single .sconsign.dblite file in the top-level SConstruct directory.
2469 The old behavior of a separate .sconsign file in each directory can
2470 be specified by calling SConsignFile(None).
2471
2472 - Remove line number byte codes within the signature calculation
2473 of Python function actions, so that changing the location of an
2474 otherwise unmodified Python function doesn't cause rebuilds.
2475
2476 - Fix AddPreAction() and AddPostAction() when an action has more than
2477 one target file: attach the actions to the Executor, not the Node.
2478
2479 - Allow the source directory of a BuildDir / build_dir to be outside
2480 of the top-level SConstruct directory tree.
2481
2482 - Add a --debug=nomemoizer option that disables the Memoizer for clearer
2483 looks at the counts and profiles of the underlying function calls,
2484 not the Memoizer wrappers.
2485
2486 - Print various --debug= stats even if we exit early (e.g. using -h).
2487
2488 - Really only use the cached content signature value if the file
2489 is older than --max-drift, not just if --max-drift is set.
2490
2491 - Remove support for conversion from old (pre 0.96) .sconsign formats.
2492
2493 - Add support for a --diskcheck option to enable or disable various
2494 on-disk checks: that File and Dir nodes match on-disk entries;
2495 whether an RCS file exists for a missing source file; whether an
2496 SCCS file exists for a missing source file.
2497
2498 - Add a --raw argument to the sconsign script, so it can print a
2499 raw representation of each entry's NodeInfo dictionary.
2500
2501 - Add the 'f90' and 'f95' tools to the list of Fortran compilers
2502 searched for by default.
2503
2504 - Add the +Z option by default when compiling shared objects on
2505 HP-UX.
2506
2507 From Chen Lee:
2508
2509 - Handle Visual Studio project and solution files in Unicode.
2510
2511 From Sanjoy Mahajan:
2512
2513 - Fix a bad use of Copy() in an example in the man page, and a
2514 bad regular expression example in the man page and User's Guide.
2515
2516 From Shannon Mann:
2517
2518 - Have the Visual Studio project file(s) echo "Starting SCons" before
2519 executing SCons, mainly to work around a quote-stripping bug in
2520 (some versions of?) the Windows cmd command executor.
2521
2522 From Georg Mischler:
2523
2524 - Remove the space after the -o option when invoking the Borland
2525 BCC compiler; some versions apparently require that the file name
2526 argument be concatenated with the option.
2527
2528 From Leanid Nazdrynau:
2529
2530 - Fix the Java parser's handling of backslashes in strings.
2531
2532 From Greg Noel:
2533
2534 - Add construction variables to support frameworks on Mac OS X:
2535 $FRAMEWORKS, $FRAMEWORKPREFIX, $FRAMEWORKPATH, $FRAMEWORKPATHPREFIX.
2536
2537 - Re-order link lines so the -o option always comes right after the
2538 command name.
2539
2540 From Gary Oberbrunner:
2541
2542 - Add support for Intel C++ beta 9.0 (both 32 and 64 bit versions).
2543
2544 - Document the new $FRAMEWORK* variables for Mac OS X.
2545
2546 From Karol Pietrzak:
2547
2548 - Add $RPATH (-R) support to the Sun linker Tool (sunlink).
2549
2550 - Add a description of env.subst() to the man page.
2551
2552 From Chris Prince:
2553
2554 - Look in the right directory, not always the local directory, for a
2555 same-named file or directory conflict on disk.
2556
2557 - On Windows, preserve the external environment's %SYSTEMDRIVE%
2558 variable, too.
2559
2560 From Craig Scott:
2561
2562 - Have the Fortran module emitter look for Fortan modules to be created
2563 relative to $FORTRANMODDIR, not the top-level directory.
2564
2565 - When saving Options to a file, run default values through the
2566 converter before comparing them with the set values. This correctly
2567 suppresses Boolean Option values from getting written to the saved
2568 file when they're one of the many synonyms for a default True or
2569 False value.
2570
2571 - Fix the Fortran Scanner's ability to handle a module being used
2572 in the same file in which it is defined.
2573
2574 From Steve-o:
2575
2576 - Add the -KPIC option by default when compiling shared objects on
2577 Solaris.
2578
2579 - Change the default suffix for Solaris objects to .o, to conform to
2580 Sun WorkShop's expectations. Change the profix to so_ so they can
2581 still be differentiated from static objects in the same directory.
2582
2583 From Amir Szekely:
2584
2585 - When calling the resource compiler on MinGW, add --include-dir and
2586 the source directory so it finds the source file.
2587
2588 - Update EnsureSConsVersion() to support revision numbers.
2589
2590 From Greg Ward:
2591
2592 - Fix a misplaced line in the man page.
2593
2594
2595
2596 RELEASE 0.96.90 - Tue, 15 Feb 2005 21:21:12 +0000
2597
2598 NOTE: This was a pre-release of 0.97 for testing purposes.
2599
2600 From Anonymous:
2601
2602 - Fix Java parsing to avoid erroneously identifying a new array
2603 of class instances as an anonymous inner class.
2604
2605 - Fix a typo in the man page description of PathIsDirCreate.
2606
2607 From Chad Austin:
2608
2609 - Allow Help() to be called multiple times, appending to the help
2610 text each call.
2611
2612 - Allow Tools found on a toolpath to import Python modules from
2613 their local directory.
2614
2615 From Steve Christensen:
2616
2617 - Handle exceptions from Python functions as build actions.
2618
2619 - Add a set of canned PathOption validators: PathExists (the default),
2620 PathIsFile, PathIsDir and PathIsDirCreate.
2621
2622 From Matthew Doar:
2623
2624 - Add support for .lex and .yacc file suffixes for Lex and Yacc files.
2625
2626 From Eric Frias:
2627
2628 - Huge performance improvement: wrap the tuples representing an
2629 include path in an object, so that the time it takes to hash the
2630 path doesn't grow porportionally to the length of the path.
2631
2632 From Gottfried Ganssauge:
2633
2634 - Fix SCons on SuSE/AMD-64 Linux by having the wrapper script also
2635 check for the build engine in the parent directory of the Python
2636 library directory (/usr/lib64 instead of /usr/lib).
2637
2638 From Stephen Kennedy:
2639
2640 - Speed up writing the .sconsign file at the end of a run by only
2641 calling sync() once at the end, not after every entry.
2642
2643 From Steven Knight:
2644
2645 - When compiling with Microsoft Visual Studio, don't include the ATL and
2646 MFC directories in the default INCLUDE and LIB environment variables.
2647
2648 - Remove the following deprecated features: the ParseConfig()
2649 global function (deprecated in 0.93); the misspelled "validater"
2650 keyword to the Options.Add() method (deprecated in 0.91); the
2651 SetBuildSignatureType(), SetContentSignatureType(), SetJobs() and
2652 GetJobs() global functions (deprecated in 0.14).
2653
2654 - Fix problems with corrupting the .sconsign.dblite file when
2655 interrupting builds by writing to a temporary file and renaming,
2656 not writing the file directly.
2657
2658 - Fix a 0.96 regression where when running with -k, targets built from
2659 walking dependencies later on the command line would not realize
2660 that a dependency had failed an earlier build attempt, and would
2661 try to rebuild the dependent targets.
2662
2663 - Change the final messages when using -k and errors occur from
2664 "{building,cleaning} terminated because of errors" to "done
2665 {building,cleaning} targets (errors occurred during {build,clean})."
2666
2667 - Allow Configure.CheckFunc() to take an optional header argument
2668 (already supported by Conftest.py) to specify text at the top of
2669 the compiled test file.
2670
2671 - Fix the --debug=explain output when a Python function action changed
2672 so it prints a meaningful string, not the binary representation of
2673 the function contents.
2674
2675 - Allow a ListOption's default value(s) to be a Python list of specified
2676 values, not just a string containing a comma-separated list of names.
2677
2678 - Add a ParseDepends() function that will parse up a list of explicit
2679 dependencies from a "make depend" style file.
2680
2681 - Support the ability to change directory when executing an Action
2682 through "chdir" keyword arguments to Action and Builder creation
2683 and calls.
2684
2685 - Fix handling of Action ojects (and other callables that don't match
2686 our calling arguments) in construction variable expansions.
2687
2688 - On Win32, install scons.bat in the Python directory when installing
2689 from setup.py. (The bdist_wininst installer was already doing this.)
2690
2691 - Fix env.SConscript() when called with a list of SConscipt files.
2692 (The SConscript() global function already worked properly.)
2693
2694 - Add a missing newline to the end of the --debug=explain "unknown
2695 reasons" message.
2696
2697 - Enhance ParseConfig() to work properly for spaces in between the -I,
2698 -L and -l options and their arguments.
2699
2700 - Packaging build fix: Rebuild the files that are use to report the
2701 --version of SCons whenever the development version number changes.
2702
2703 - Fix the ability to specify a target_factory of Dir() to a Builder,
2704 which the default create-a-directory Builder was interfering with.
2705
2706 - Mark a directory as built if it's created as part of the preparation
2707 for another target, to avoid trying to build it again when it comes
2708 up in the target list.
2709
2710 - Allow a function with the right calling signature to be put directly
2711 in an Environment's BUILDERS dictionary, making for easier creation
2712 and use of wrappers (pseudo-Builders) that call other Builders.
2713
2714 - On Python 2.x, wrap lists of Nodes returned by Builders in a UserList
2715 object that adds a method that makes str() object return a string
2716 with all of the Nodes expanded to their path names. (Builders under
2717 Python 1.5.2 still return lists to avoid TypeErrors when trying
2718 to extend() list, so Python 1.5.2 doesn't get pretty-printing of Node
2719 lists, but everything should still function.)
2720
2721 - Allow Aliases to have actions that will be executed whenever
2722 any of the expanded Alias targets are out of date.
2723
2724 - Fix expansion of env.Command() overrides within target and
2725 source file names.
2726
2727 - Support easier customization of what's displayed by various default
2728 actions by adding lots of new construction variables: $ARCOMSTR,
2729 $ASCOMSTR, $ASPPCOMSTR, $BIBTEXCOMSTR, $BITKEEPERCOMSTR, $CCCOMSTR,
2730 $CVSCOMSTR, $CXXCOMSTR, $DCOMSTR, $DVIPDFCOMSTR, $F77COMSTR,
2731 $F90COMSTR, $F95COMSTR, $FORTRANCOMSTR, $GSCOMSTR, $JARCOMSTR,
2732 $JAVACCOMSTR, $JAVAHCOMSTR, $LATEXCOMSTR, $LEXCOMSTR, $LINKCOMSTR,
2733 $M4COMSTR, $MIDLCOMSTR, $P4COMSTR, $PCHCOMSTR, $PDFLATEXCOMSTR,
2734 $PDFTEXCOMSTR, $PSCOMSTR, $QT_MOCFROMCXXCOMSTR, $QT_MOCFROMHCOMSTR,
2735 $QT_UICCOMSTR, $RCCOMSTR, $REGSVRCOMSTR, $RCS_COCOMSTR, $RMICCOMSTR,
2736 $SCCSCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR, $SHF77COMSTR, $SHF90COMSTR,
2737 $SHF95COMSTR, $SHFORTRANCOMSTR, $SHLINKCOMSTR, $SWIGCOMSTR,
2738 $TARCOMSTR, $TEXCOMSTR, $YACCCOMSTR and $ZIPCOMSTR.
2739
2740 - Add an optional "map" keyword argument to ListOption() that takes a
2741 dictionary to map user-specified values to legal values from the list
2742 (like EnumOption() already doee).
2743
2744 - Add specific exceptions to try:-except: blocks without any listed,
2745 so that they won't catch and mask keyboard interrupts.
2746
2747 - Make --debug={tree,dtree,stree} print something even when there's
2748 a build failure.
2749
2750 - Fix how Scanners sort the found dependencies so that it doesn't
2751 matter whether the dependency file is in a Repository or not.
2752 This may cause recompilations upon upgrade to this version.
2753
2754 - Make AlwaysBuild() work with Alias and Python value Nodes (making
2755 it much simpler to support aliases like "clean" that just invoke
2756 an arbitrary action).
2757
2758 - Have env.ParseConfig() use AppendUnique() by default to suppress
2759 duplicate entries from multiple calls. Add a "unique" keyword
2760 argument to allow the old behavior to be specified.
2761
2762 - Allow the library modules imported by an SConscript file to get at
2763 all of the normally-available global functions and variables by saying
2764 "from SCons.Script import *".
2765
2766 - Add a --debug=memoizer option to print Memoizer hit/mass statistics.
2767
2768 - Allow more than one --debug= option to be set at a time.
2769
2770 - Change --debug=count to report object counts before and after
2771 reading SConscript files and before and after building targets.
2772
2773 - Change --debug=memory output to line up the numbers and to better
2774 match (more or less) the headers on the --debug=count columns.
2775
2776 - Speed things up when there are lists of targets and/or sources by
2777 getting rid of some N^2 walks of the lists involved.
2778
2779 - Cache evaluation of LazyActions so we don't create a new object
2780 for each invocation.
2781
2782 - When scanning, don't create Nodes for include files that don't
2783 actually exist on disk.
2784
2785 - Make supported global variables CScanner, DScanner, ProgramScanner and
2786 SourceFileScanner. Make SourceFileScanner.add_scanner() a supported
2787 part of the public interface. Keep the old SCons.Defaults.*Scan names
2788 around for a while longer since some people were already using them.
2789
2790 - By default, don't scan directories for on-disk files. Add a
2791 DirScanner global scanner that can be used in Builders or Command()
2792 calls that want source directory trees scanned for on-disk changes.
2793 Have the Tar() and Zip() Builders use the new DirScanner to preserve
2794 the behavior of rebuilding a .tar or .zip file if any file or
2795 directory under a source tree changes. Add Command() support for
2796 a source_scanner keyword argument to Command() that can be set to
2797 DirScanner to get this behavior.
2798
2799 - Documentation changes: Explain that $CXXFLAGS contains $CCFLAGS
2800 by default. Fix a bad target_factory example in the man page.
2801 Add appendices to the User's Guide to cover the available Tools,
2802 Builders and construction variables. Comment out the build of
2803 the old Python 10 paper, which doesn't build on all systems and
2804 is old enough at this point that it probably isn't worth the
2805 effort to make it do so.
2806
2807 From Wayne Lee:
2808
2809 - Avoid "maximum recursion limit" errors when removing $(-$) pairs
2810 from long command lines.
2811
2812 From Clive Levinson:
2813
2814 - Make ParseConfig() recognize and add -mno-cygwin to $LINKFLAGS and
2815 $CCFLAGS, and -mwindows to $LINKFLAGS.
2816
2817 From Michael McCracken:
2818
2819 - Add a new "applelink" tool to handle the things like Frameworks and
2820 bundles that Apple has added to gcc for linking.
2821
2822 - Use more appropriate default search lists of linkers, compilers and
2823 and other tools for the 'darwin' platform.
2824
2825 - Add a LoadableModule Builder that builds a bundle on Mac OS X (Darwin)
2826 and a shared library on other systems.
2827
2828 - Improve SWIG tests for use on Mac OS X (Darwin).
2829
2830 From Elliot Murphy:
2831
2832 - Enhance the tests to guarantee persistence of ListOption
2833 values in saved options files.
2834
2835 - Supply the help text when -h is used with the -u, -U or -D options.
2836
2837 From Christian Neeb:
2838
2839 - Fix the Java parser's handling of string definitions to avoid ignoring
2840 subsequent code.
2841
2842 From Han-Wen Nienhuys:
2843
2844 - Optimize variable expansion by: using the re.sub() method (when
2845 possible); not using "eval" for variables for which we can fetch the
2846 value directory; avoiding slowing substitution logic when there's no
2847 '$' in the string.
2848
2849 From Gary Oberbrunner:
2850
2851 - Add an Environment.Dump() method to print the contents of a
2852 construction environment.
2853
2854 - Allow $LIBS (and similar variables) to contain explicit File Nodes.
2855
2856 - Change ParseConfig to add the found library names directly to the
2857 $LIBS variable, instead of returning them.
2858
2859 - Add ParseConfig() support for the -framework GNU linker option.
2860
2861 - Add a PRINT_CMD_LINE_FUNC construction variable to allow people
2862 to filter (or log) command-line output.
2863
2864 - Print an internal Python stack trace in response to an otherwise
2865 unexplained error when --debug=stacktrace is specified.
2866
2867 - Add a --debug=findlibs option to print what's happening when
2868 the scanner is searching for libraries.
2869
2870 - Allow Tool specifications to be passed a dictionary of keyword
2871 arguments.
2872
2873 - Support an Options default value of None, in which case the variable
2874 will not be added to the construction environment unless it's set
2875 explicitly by the user or from an Options file.
2876
2877 - Avoid copying __builtin__ values into a construction environment's
2878 dictionary when evaluating construction variables.
2879
2880 - Add a new cross-platform intelc.py Tool that can detect and
2881 configure the Intel C++ v8 compiler on both Windows, where it's
2882 named icl, and Linux, where it's named icc. It also checks that
2883 the directory specified in the Windows registry exists, and sets a
2884 new $INTEL_C_COMPILER_VERSION construction variable to identify the
2885 version being used. (Niall Douglas contributed an early prototype
2886 of parts of this module.)
2887
2888 - Fix the private Conftest._Have() function so it doesn't change
2889 non-alphanumeric characters to underscores.
2890
2891 - Supply a better error message when a construction variable expansion
2892 has an unknown attribute.
2893
2894 - Documentation changes: Update the man page to describe use of
2895 filenames or Nodes in $LIBS.
2896
2897 From Chris Pawling:
2898
2899 - Have the linkloc tool use $MSVS_VERSION to select the Microsoft
2900 Visual Studio version to use.
2901
2902 From Kevin Quick:
2903
2904 - Fix the Builder name returned from ListBuilders and other instances
2905 of subclasses of the BuilderBase class.
2906
2907 - Add Builders and construction variables to support rpcgen:
2908 RPCGenClient(), RPCGenHeader(), RPCGenService(), RPCGenXDR(),
2909 $RPCGEN, $RPCGENFLAGS, $RPCGENCLIENTFLAGS, $RPCGENHEADERFLAGS,
2910 $RPCGENSERVICEFLAGS, $RPCGENXDRFLAGS.
2911
2912 - Update the man page to document that prefix and suffix Builder
2913 keyword arguments can be strings, callables or dictionaries.
2914
2915 - Provide more info in the error message when a user tries to build
2916 a target multiple ways.
2917
2918 - Fix Delete() when a file doesn't exist and must_exist=1. (We were
2919 unintentionally dependent on a bug in versions of the Python shutil.py
2920 module prior to Python 2.3, which would generate an exception for
2921 a nonexistent file even when ignore_errors was set.)
2922
2923 - Only replace a Node's builder with a non-null source builder.
2924
2925 - Fix a stack trace when a suffix selection dictionary is passed
2926 an empty source file list.
2927
2928 - Allow optional names to be attached to Builders, for default
2929 Builders that don't get attached to construction environments.
2930
2931 - Fix problems with Parallel Task Exception handling.
2932
2933 - Build targets in an associated BuildDir even if there are targets
2934 or subdirectories locally in the source directory.
2935
2936 - If a FunctionAction has a callable class as its underlying Python
2937 function, use its strfunction() method (if any) to display the
2938 action.
2939
2940 - Fix handling when BuildDir() exists but is unwriteable. Add
2941 "Stop." to those error messages for consistency.
2942
2943 - Catch incidents of bad builder creation (without an action) and
2944 supply meaningful error messages.
2945
2946 - Fix handling of src_suffix values that aren't extensions (don't
2947 begin with a '.').
2948
2949 - Don't retrieve files from a CacheDir, but report what would happen,
2950 when the -n option is used.
2951
2952 - Use the source_scanner from the target Node, not the source node
2953 itself.
2954
2955 - Internal Scanners fixes: Make sure Scanners are only passed Nodes.
2956 Fix how a Scanner.Selector called its base class initialization.
2957 Make comparisons of Scanner objects more robust. Add a name to
2958 an internal default ObjSourceScanner.
2959
2960 - Add a deprecated warning for use of the old "scanner" keyword argument
2961 to Builder creation.
2962
2963 - Improve the --debug=explain message when the build action changes.
2964
2965 - Test enhancements in SourceCode.py, option-n.py, midl.py. Better
2966 Command() and Scanner test coverage. Improved test infrastructure
2967 for -c output.
2968
2969 - Refactor the interface between Action and Executor objects to treat
2970 Actions atomically.
2971
2972 - The --debug=presub option will now report the pre-substitution
2973 each action seprately, instead of reporting the entire list before
2974 executing the actions one by one.
2975
2976 - The --debug=explain option explaining a changed action will now
2977 (more correctly) show pre-substitution action strings, instead of
2978 the commands with substituted file names.
2979
2980 - A Node (file) will now be rebuilt if its PreAction or PostAction
2981 actions change.
2982
2983 - Python Function actions now have their calling signature (target,
2984 source, env) reported correctly when displayed.
2985
2986 - Fix BuildDir()/build_dir handling when the build_dir is underneath
2987 the source directory and trying to use entries from the build_dir
2988 as sources for other targets in the build-dir.
2989
2990 - Fix hard-coding of JDK path names in various Java tests.
2991
2992 - Handle Python stack traces consistently (stop at the SConscript stack
2993 frame, by default) even if the Python source code isn't available.
2994
2995 - Improve the performance of the --debug={tree,dtree} options.
2996
2997 - Add --debug=objects logging of creation of OverrideWarner,
2998 EnvironmentCopy and EnvironmentOverride objects.
2999
3000 - Fix command-line expansion of Python Value Nodes.
3001
3002 - Internal cleanups: Remove an unnecessary scan argument. Associate
3003 Scanners only with Builders, not nodes. Apply overrides once when
3004 a Builder is called, not in multiple places. Cache results from the
3005 Node.FS.get_suffix() and Node.get_build_env() methods. Use the Python
3006 md5 modules' hexdigest() method, if there is one. Have Taskmaster
3007 call get_stat() once for each Node and re-use the value instead of
3008 calling it each time it needs the value. Have Node.depends_on()
3009 re-use the list from the children() method instead of calling it
3010 multiple times.
3011
3012 - Use the correct scanner if the same source file is used for targets in
3013 two different environments with the same path but different scanners.
3014
3015 - Collect logic for caching values in memory in a Memoizer class,
3016 which cleans up a lot of special-case code in various methods and
3017 caches additional values to speed up most configurations.
3018
3019 - Add a PathAccept validator to the list of new canned PathOption
3020 validators.
3021
3022 From Jeff Squyres:
3023
3024 - Documentation changes: Use $CPPDEFINES instead of $CCFLAGS in man
3025 page examples.
3026
3027 From Levi Stephen:
3028
3029 - Allow $JARCHDIR to be expanded to other construction variables.
3030
3031 From Christoph Wiedemann:
3032
3033 - Add an Environment.SetDefault() method that only sets values if
3034 they aren't already set.
3035
3036 - Have the qt.py Tool not override variables already set by the user.
3037
3038 - Add separate $QT_BINPATH, $QT_CPPPATH and $QT_LIBPATH variables
3039 so these can be set individually, instead of being hard-wired
3040 relative to $QTDIR.
3041
3042 - The %TEMP% and %TMP% external environment variables are now propagated
3043 automatically to the command execution environment on Windows systems.
3044
3045 - A new --config= command-line option allows explicit control of
3046 of when the Configure() tests are run: --config=force forces all
3047 checks to be run, --config=cache uses all previously cached values,
3048 --config=auto (the default) runs tests only when dependency analysis
3049 determines it's necessary.
3050
3051 - The Configure() subsystem can now write a config.h file with values
3052 like HAVE_STDIO_H, HAVE_LIBM, etc.
3053
3054 - The Configure() subsystem now executes its checks silently when the
3055 -Q option is specified.
3056
3057 - The Configure() subsystem now reports if a test result is being
3058 taken from cache, and prints the standard output and error output
3059 of tests even when cached.
3060
3061 - Configure() test results are now reported as "yes" or "no" instead of
3062 "ok" or "failed."
3063
3064 - Fixed traceback printing when calling the env.Configure() method
3065 instead of the Configure() global function.
3066
3067 - The Configure() subsystem now caches build failures in a .sconsign
3068 file in the subdirectory, not a .cache file. This may cause
3069 tests to be re-executed the first time after you install 0.97.
3070
3071 - Additional significant internal cleanups in the Configure() subsystem
3072 and its tests.
3073
3074 - Have the Qt Builder make uic-generated files dependent on the .ui.h
3075 file, if one exists.
3076
3077 - Add a test to make sure that SCons source code does not contain
3078 try:-except: blocks that catch all errors, which potentially catch
3079 and mask keyboard interrupts.
3080
3081 - Fix us of TargetSignatures('content') with the SConf subsystem.
3082
3083 From Russell Yanofsky:
3084
3085 - Add support for the Metrowerks Codewarrior compiler and linker
3086 (mwcc and mwld).
3087
3088
3089
3090 RELEASE 0.96.1 - Mon, 23 Aug 2004 12:55:50 +0000
3091
3092 From Craig Bachelor:
3093
3094 - Handle white space in the executable Python path name within in MSVS
3095 project files by quoting the path.
3096
3097 - Correct the format of a GUID string in a solution (.dsw) file so
3098 MSVS can correctly "build enable" a project.
3099
3100 From Steven Knight:
3101
3102 - Add a must_exist flag to Delete() to let the user control whether
3103 it's an error if the specified entry doesn't exist. The default
3104 behavior is now to silently do nothing if it doesn't exist.
3105
3106 - Package up the new Platform/darwin.py, mistakenly left out of 0.96.
3107
3108 - Make the scons.bat REM statements into @REM so they aren't printed.
3109
3110 - Make the SCons packaging SConscript files platform independent.
3111
3112 From Anthony Roach:
3113
3114 - Fix scanning of pre-compiled header (.pch) files for #includes,
3115 broken in 0.96.
3116
3117
3118
3119 RELEASE 0.96 - Wed, 18 Aug 2004 13:36:40 +0000
3120
3121 From Chad Austin:
3122
3123 - Make the CacheDir() directory if it doesn't already exist.
3124
3125 - Allow construction variable substitutions in $LIBS specifications.
3126
3127 - Allow the emitter argument to a Builder() to be or expand to a list
3128 of emitter functions, which will be called in sequence.
3129
3130 - Suppress null values in construction variables like $LIBS that use
3131 the internal _concat() function.
3132
3133 - Remove .dll files from the construction variables searched for
3134 libraries that can be fed to Win32 compilers.
3135
3136 From Chad Austin and Christoph Wiedemann:
3137
3138 - Add support for a $RPATH variable to supply a list of directories
3139 to search for shared libraries when linking a program. Used by
3140 the GNU and IRIX linkers (gnulink and sgilink).
3141
3142 From Charles Crain:
3143
3144 - Restore the ability to do construction variable substitutions in all
3145 kinds of *PATH variables, even when the substitution returns a Node
3146 or other object.
3147
3148 From Tom Epperly:
3149
3150 - Allow the Java() Builder to take more than one source directory.
3151
3152 From Ralf W. Grosse-Kunstleve:
3153
3154 - Have SConsignFile() use, by default, a custom "dblite.py" that we can
3155 control and guarantee to work on all Python versions (or nearly so).
3156
3157 From Jonathan Gurley:
3158
3159 - Add support for the newer "ifort" versions of the Intel Fortran
3160 Compiler for Linux.
3161
3162 From Bob Halley:
3163
3164 - Make the new *FLAGS variable type work with copied Environments.
3165
3166 From Chris Hoeppler:
3167
3168 - Initialize the name of a Scanner.Classic scanner correctly.
3169
3170 From James Juhasz:
3171
3172 - Add support for the .dylib shared library suffix and the -dynamiclib
3173 linker option on Mac OS X.
3174
3175 From Steven Knight:
3176
3177 - Add an Execute() method for executing actions directly.
3178
3179 - Support passing environment override keyword arguments to Command().
3180
3181 - Fix use of $MSVS_IGNORE_IDE_PATHS, which was broken when we added
3182 support for $MSVS_USE_MFC_DIRS last release.
3183
3184 - Make env.Append() and env.Prepend() act like the underlying Python
3185 behavior when the variable being appended to is a UserList object.
3186
3187 - Fix a regression that prevented the Command() global function in
3188 0.95 from working with command-line strings as actions.
3189
3190 - Fix checking out a file from a source code management system when
3191 the env.SourceCode() method was called with an individual file name
3192 or node, not a directory name or node.
3193
3194 - Enhance the Task.make_ready() method to create a list of the
3195 out-of-date Nodes for the task for use by the wrapping interface.
3196
3197 - Allow Scanners to pull the list of suffixes from the construction
3198 environment when the "skeys" keyword argument is a string containing
3199 a construction variable to be expanded.
3200
3201 - Support new $CPPSUFFIXES, $DSUFFIXES $FORTRANSUFFIXES, and
3202 $IDLSUFFIXES. construction variables that contain the default list
3203 of suffixes to be scanned by a given type of scanner, allowing these
3204 suffix lists to be easily added to or overridden.
3205
3206 - Speed up Node creation when calling a Builder by comparing whether two
3207 Environments are the same object, not if their underlying dictionaries
3208 are equivalent.
3209
3210 - Add a --debug=explain option that reports the reason(s) why SCons
3211 thinks it must rebuild something.
3212
3213 - Add support for functions that return platform-independent Actions
3214 to Chmod(), Copy(), Delete(), Mkdir(), Move() and Touch() files
3215 and/or directories. Like any other Actions, the returned Action
3216 object may be executed directly using the Execute() global function
3217 or env.Execute() environment method, or may be used as a Builder
3218 action or in an env.Command() action list.
3219
3220 - Add support for the strfunction argument to all types of Actions:
3221 CommandAction, ListAction, and CommandGeneratorAction.
3222
3223 - Speed up turning file system Nodes into strings by caching the
3224 values after we're finished reading the SConscript files.
3225
3226 - Have ParseConfig() recognize and supporting adding the -Wa, -Wl,
3227 and -Wp, flags to ASFLAGS, LINKFLAGS and CPPFLAGS, respectively.
3228
3229 - Change the .sconsign format and the checks for whether a Node is
3230 up-to-date to make dependency checks more efficient and correct.
3231
3232 - Add wrapper Actions to SCons.Defaults for $ASCOM, $ASPPCOM, $LINKCOM,
3233 $SHLINKCOM, $ARCOM, $LEXCOM and $YACCCOM. This makes it possible
3234 to replace the default print behavior with a custom strfunction()
3235 for each of these.
3236
3237 - When a Node has been built, don't walk the whole tree back to delete
3238 the parents's implicit dependencies, let returning up the normal
3239 Taskmaster descent take care of it for us.
3240
3241 - Add documented support for separate target_scanner and source_scanner
3242 arguments to Builder creation, which allows different scanners to
3243 be applied to source files
3244
3245 - Don't re-install or (re-generate) .h files when a subsidiary #included
3246 .h file changes. This eliminates incorrect circular dependencies
3247 with .h files generated from other source files.
3248
3249 - Slim down the internal Sig.Calculator class by eliminating methods
3250 whose functionality is now covered by Node methods.
3251
3252 - Document use of the target_factory and source_factory keyword
3253 arguments when creating Builder objects. Enhance Dir Nodes so that
3254 they can be created with user-specified Builder objects.
3255
3256 - Don't blow up with stack trace when the external $PATH environment
3257 variable isn't set.
3258
3259 - Make Builder calls return lists all the time, even if there's only
3260 one target. This keeps things consistent and easier to program to
3261 across platforms.
3262
3263 - Add a Flatten() function to make it easier to deal with the Builders
3264 all returning lists of targets, not individual targets.
3265
3266 - Performance optimizations in Node.FS.__doLookup().
3267
3268 - Man page fixes: formatting typos, misspellings, bad example.
3269
3270 - User's Guide fixes: Fix the signatures of the various example
3271 *Options() calls. Triple-quote properly a multi-line Split example.
3272
3273 - User's Guide additions: Chapter describing File and Directory
3274 Nodes. Section describing declarative nature of SCons functions in
3275 SConscript files. Better organization and clarification of points
3276 raised by Robert P. J. Day. Chapter describing SConf (Autoconf-like)
3277 functionality. Chapter describing how to install Python and
3278 SCons. Chapter describing Java builds.
3279
3280 From Chris Murray:
3281
3282 - Add a .win32 attribute to force file names to expand with
3283 Windows backslash path separators.
3284
3285 - Fix escaping file names on command lines when the expansion is
3286 concatenated with another string.
3287
3288 - Add support for Fortran 90 and Fortran 95. This adds $FORTRAN*
3289 variables that specify a default compiler, command-line, flags,
3290 etc. for all Fortran versions, plus separate $F90* and $F95*
3291 variables for when different compilers/flags/etc. must be specified
3292 for different Fortran versions.
3293
3294 - Have individual tools that create libraries override the default
3295 $LIBPREFIX and $LIBSUFFIX values set by the platform. This makes
3296 it easier to use Microsoft Visual Studio tools on a CygWin platform.
3297
3298 From Gary Oberbrunner:
3299
3300 - Add a --debug=presub option to print actions prior to substitution.
3301
3302 - Add a warning upon use of the override keywords "targets" and
3303 "sources" when calling Builders. These are usually mistakes which
3304 are otherwise silently (and confusingly) turned into construction
3305 variable overrides.
3306
3307 - Try to find the ICL license file path name in the external environment
3308 and the registry before resorting to the hard-coded path name.
3309
3310 - Add support for fetching command-line keyword=value arguments in
3311 order from an ARGLIST list.
3312
3313 - Avoid stack traces when trying to read dangling symlinks.
3314
3315 - Treat file "extensions" that only contain digits as part of the
3316 file basename. This supports version numbers as part of shared
3317 library names, for example.
3318
3319 - Avoid problems when there are null entries (None or '') in tool
3320 lists or CPPPATH.
3321
3322 - Add an example and explanation of how to use "tools = ['default', ..."
3323 when creating a construction environment.
3324
3325 - Add a section describing File and Directory Nodes and some of their
3326 attributes and methods.
3327
3328 - Have ParseConfig() add a returned -pthread flag to both $CCFLAGS
3329 and $LINKFLAGS.
3330
3331 - Fix some test portability issues on Mac OS X (darwin).
3332
3333 From Simon Perkins:
3334
3335 - Fix a bug introduced in building shared libraries under MinGW.
3336
3337 From Kevin Quick:
3338
3339 - Handling SCons exceptions according to Pythonic standards.
3340
3341 - Fix test/chained-build.py on systems that execute within one second.
3342
3343 - Fix tests on systems where 'ar' warns about archive creation.
3344
3345 From Anthony Roach:
3346
3347 - Fix use of the --implicit-cache option with timestamp signatures.
3348
3349 - If Visual Studio is installed, assume the C/C++ compiler, the linker
3350 and the MIDL compiler that comes with it are available, too.
3351
3352 - Better error messages when evaluating a construction variable
3353 expansion yields a Python syntax error.
3354
3355 - Change the generation of PDB files when using Visual Studio from
3356 compile time to link time.
3357
3358 From sam th:
3359
3360 - Allow SConf.CheckLib() to search a list of libraries, like the
3361 Autoconf AC_SEARCH_LIBS macro.
3362
3363 - Allow the env.WhereIs() method to take a "reject" argument to
3364 let it weed out specific path names.
3365
3366 From Christoph Wiedemann:
3367
3368 - Add new Moc() and Uic() Builders for more explicit control over
3369 Qt builds, plus new construction variables to control them:
3370 $QT_AUTOSCAN, $QT_DEBUG, $QT_MOCCXXPREFIX, $QT_MOCCXXSUFFIX,
3371 $QT_MOCHPREFIX, $QT_MOCHSUFFIX, $QT_UICDECLPREFIX, $QT_UICDECLSUFFIX,
3372 $QT_UICIMPLPREFIX, $QT_UICIMPLSUFFIX and $QT_UISUFFIX.
3373
3374 - Add a new single_source keyword argument for Builders that enforces
3375 a single source file on calls to the Builder.
3376
3377
3378
3379 RELEASE 0.95 - Mon, 08 Mar 2004 06:43:20 -0600
3380
3381 From Chad Austin:
3382
3383 - Replace print statements with calls to sys.stdout.write() so output
3384 lines stay together when -j is used.
3385
3386 - Add portability fixes for a number of tests.
3387
3388 - Accomodate the fact that Cygwin's os.path.normcase() lies about
3389 the underlying system being case-sensitive.
3390
3391 - Fix an incorrect _concat() call in the $RCINCFLAGS definition for
3392 the mingw Tool.
3393
3394 - Fix a problem with the msvc tool with Python versions prior to 2.3.
3395
3396 - Add support for a "toolpath" Tool() and Environment keyword that
3397 allows Tool modules to be found in specified local directories.
3398
3399 - Work around Cygwin Python's silly fiction that it's using a
3400 case-sensitive file system.
3401
3402 - More robust handling of data in VCComponents.dat.
3403
3404 - If the "env" command is available, spawn commands with the more
3405 general "env -" instead of "env -i".
3406
3407 From Kerim Borchaev:
3408
3409 - Fix a typo in a msvc.py's registry lookup: "VCComponents.dat", not
3410 "VSComponents.dat".
3411
3412 From Chris Burghart:
3413
3414 - Fix the ability to save/restore a PackageOption to a file.
3415
3416 From Steve Christensen:
3417
3418 - Update the MSVS .NET and MSVC 6.0/7.0 path detection.
3419
3420 From David M. Cooke:
3421
3422 - Make the Fortran scanner case-insensitive for the INCLUDE string.
3423
3424 From Charles Crain:
3425
3426 - If no version of MSVC is detected but the tool is specified,
3427 use the MSVC 6.0 paths by default.
3428
3429 - Ignore any "6.1" version of MSVC found in the registry; this is a
3430 phony version number (created by later service packs?) and would
3431 throw off the logic if the user had any non-default paths configure.
3432
3433 - Correctly detect if the user has independently configured the MSVC
3434 "include," "lib" or "path" in the registry and use the appropriate
3435 values. Previously, SCons would only use the values if all three
3436 were set in the registry.
3437
3438 - Make sure side-effect nodes are prepare()d before building their
3439 corresponding target.
3440
3441 - Preserve the ability to call BuildDir() multiple times with the
3442 same target and source directory arguments.
3443
3444 From Andy Friesen:
3445
3446 - Add support for the Digital Mars "D" programming language.
3447
3448 From Scott Lystig Fritchie:
3449
3450 - Fix the ability to use a custom _concat() function in the
3451 construction environment when calling _stripixes().
3452
3453 - Make the message about ignoring a missing SConscript file into a
3454 suppressable Warning, not a hard-coded sys.stderr.write().
3455
3456 - If a builder can be called multiple times for a target (because
3457 the sources and overrides are identical, or it's a builder with the
3458 "multi" flag set), allow the builder to be called through multiple
3459 environments so long as the builders have the same signature for
3460 the environments in questions (that is, they're the same action).
3461
3462 From Bob Halley:
3463
3464 - When multiple targets are built by a single action, retrieve all
3465 of them from cache, not just the first target, and exec the build
3466 command if any of the targets isn't present in the cache.
3467
3468 From Zephaniah Hull:
3469
3470 - Fix command-line ARGUMENTS with multiple = in them.
3471
3472 From Steven Knight:
3473
3474 - Fix EnsureSConsVersion() so it checks against the SCons version,
3475 not the Python version, on Pythons with sys.version_info.
3476
3477 - Don't swallow the AttributeError when someone uses an expansion like
3478 $TARGET.bak, so we can supply a more informative error message.
3479
3480 - Fix an odd double-quote escape sequence in the man page.
3481
3482 - Fix looking up a naked drive letter as a directory (Dir('C:')).
3483
3484 - Support using File nodes in the LIBS construction variable.
3485
3486 - Allow the LIBS construction variable to be a single string or File
3487 node, not a list, when only one library is needed.
3488
3489 - Fix typos in the man page: JAVACHDIR => JARCHDIR; add "for_signature"
3490 to the __call__() example in the "Variable Substitution" section.
3491
3492 - Correct error message spellings of "non-existant" to "non-existent."
3493
3494 - When scanning for libraries to link with, don't append $LIBPREFIXES
3495 or $LIBSUFFIXES values to the $LIBS values if they're already present.
3496
3497 - Add a ZIPCOMPRESSION construction variable to control whether the
3498 internal Python action for the Zip Builder compresses the file or
3499 not. The default value is zipfile.ZIP_DEFLATED, which generates
3500 a compressed file.
3501
3502 - Refactor construction variable expansion to support recursive
3503 expansion of variables (e.g. CCFLAGS = "$CCFLAGS -g") without going
3504 into an infinite loop. Support this in all construction variable
3505 overrides, as well as when copying Environments.
3506
3507 - Fix calling Configure() from more than one subsidiary SConscript file.
3508
3509 - Fix the env.Action() method so it returns the correct type of
3510 Action for its argument(s).
3511
3512 - Fix specifying .class files as input to JavaH with the .class suffix
3513 when they weren't generated using the Java Builder.
3514
3515 - Make the check for whether all of the objects going into a
3516 SharedLibrary() are shared work even if the object was built in a
3517 previous run.
3518
3519 - Supply meaningful error messages, not stack traces, if we try to add
3520 a non-Node as a source, dependency, or ignored dependency of a Node.
3521
3522 - Generate MSVS Project files that re-invoke SCons properly regardless
3523 of whether the file was built via scons.bat or scons.py.
3524 (Thanks to Niall Douglas for contributing code and testing.)
3525
3526 - Fix TestCmd.py, runtest.py and specific tests to accomodate being
3527 run from directories whose paths include white space.
3528
3529 - Provide a more useful error message if a construction variable
3530 expansion contains a syntax error during evaluation.
3531
3532 - Fix transparent checkout of implicit dependency files from SCCS
3533 and RCS.
3534
3535 - Added new --debug=count, --debug=memory and --debug=objects options.
3536 --debug=count and --debug=objects only print anything when run
3537 under Python 2.1 or later.
3538
3539 - Deprecate the "overrides" keyword argument to Builder() creation
3540 in favor of using keyword argument values directly (like we do
3541 for builder execution and the like).
3542
3543 - Always use the Builder overrides in substitutions, not just if
3544 there isn't a target-specific environment.
3545
3546 - Add new "rsrcpath" and "rsrcdir" and attributes to $TARGET/$SOURCE,
3547 so Builder command lines can find things in Repository source
3548 directories when using BuildDir.
3549
3550 - Fix the M4 Builder so that it chdirs to the Repository directory
3551 when the input file is in the source directory of a BuildDir.
3552
3553 - Save memory at build time by allowing Nodes to delete their build
3554 environments after they've been built.
3555
3556 - Add AppendUnique() and PrependUnique() Environment methods, which
3557 add values to construction variables like Append() and Prepend()
3558 do, but suppress any duplicate elements in the list.
3559
3560 - Allow the 'qt' tool to still be used successfully from a copied
3561 Environment. The include and library directories previously ended up
3562 having the same string re-appended to the end, yielding an incorrect
3563 path name.
3564
3565 - Supply a more descriptive error message when the source for a target
3566 can't be found.
3567
3568 - Initialize all *FLAGS variables with objects do the right thing with
3569 appending flags as strings or lists.
3570
3571 - Make things like ${TARGET.dir} work in *PATH construction variables.
3572
3573 - Allow a $MSVS_USE_MFC_DIRS construction variable to control whether
3574 ATL and MFC directories are included in the default INCLUDE and
3575 LIB paths.
3576
3577 - Document the dbm_module argument to the SConsignFile() function.
3578
3579 From Vincent Risi:
3580
3581 - Add support for the bcc32, ilink32 and tlib Borland tools.
3582
3583 From Anthony Roach:
3584
3585 - Supply an error message if the user tries to configure a BuildDir
3586 for a directory that already has one.
3587
3588 - Remove documentation of the still-unimplemented -e option.
3589
3590 - Add -H help text listing the legal --debug values.
3591
3592 - Don't choke if a construction variable is a non-string value.
3593
3594 - Build Type Libraries in the target directory, not the source
3595 directory.
3596
3597 - Add an appendix to the User's Guide showing how to accomplish
3598 various common tasks in Python.
3599
3600 From Greg Spencer:
3601
3602 - Add support for Microsoft Visual Studio 2003 (version 7.1).
3603
3604 - Evaluate $MSVSPROJECTSUFFIX and $MSVSSOLUTIONSUFFIX when the Builder
3605 is invoked, not when the tool is initialized.
3606
3607 From Christoph Wiedemann:
3608
3609 - When compiling Qt, make sure the moc_*.cc files are compiled using
3610 the flags from the environment used to specify the target, not
3611 the environment that first has the Qt Builders attached.
3612
3613
3614
3615 RELEASE 0.94 - Fri, 07 Nov 2003 05:29:48 -0600
3616
3617 From Hartmut Goebel:
3618
3619 - Add several new types of canned functions to help create options:
3620 BoolOption(), EnumOption(), ListOption(), PackageOption(),
3621 PathOption().
3622
3623 From Steven Knight:
3624
3625 - Fix use of CPPDEFINES with C++ source files.
3626
3627 - Fix env.Append() when the operand is an object with a __cmp__()
3628 method (like a Scanner instance).
3629
3630 - Fix subclassing the Environment and Scanner classes.
3631
3632 - Add BUILD_TARGETS, COMMAND_LINE_TARGETS and DEFAULT_TARGETS variables.
3633
3634 From Steve Leblanc:
3635
3636 - SGI fixes: Fix C++ compilation, add a separate Tool/sgic++.py module.
3637
3638 From Gary Oberbrunner:
3639
3640 - Fix how the man page un-indents after examples in some browsers.
3641
3642 From Vincent Risi:
3643
3644 - Fix the C and C++ tool specifications for AIX.
3645
3646
3647
3648 RELEASE 0.93 - Thu, 23 Oct 2003 07:26:55 -0500
3649
3650 From J.T. Conklin:
3651
3652 - On POSIX, execute commands with the more modern os.spawnvpe()
3653 function, if it's available.
3654
3655 - Scan .S, .spp and .SPP files for C preprocessor dependencies.
3656
3657 - Refactor the Job.Parallel() class to use a thread pool without a
3658 condition variable. This improves parallel build performance and
3659 handles keyboard interrupts properly when -j is used.
3660
3661 From Charles Crain:
3662
3663 - Add support for a JARCHDIR variable to control changing to a
3664 directory using the jar -C option.
3665
3666 - Add support for detecting Java manifest files when using jar,
3667 and specifying them using the jar m flag.
3668
3669 - Fix some Python 2.2 specific things in various tool modules.
3670
3671 - Support directories as build sources, so that a rebuild of a target
3672 can be triggered if anything underneath the directory changes.
3673
3674 - Have the scons.bat and scons.py files look for the SCons modules
3675 in site-packages as well.
3676
3677 From Christian Engel:
3678
3679 - Support more flexible inclusion of separate C and C++ compilers.
3680
3681 - Use package management tools on AIX and Solaris to find where
3682 the comilers are installed, and what version they are.
3683
3684 - Add support for CCVERSION and CXXVERSION variables for a number
3685 of C and C++ compilers.
3686
3687 From Sergey Fogel:
3688
3689 - Add test cases for the new capabilities to run bibtex and to rerun
3690 latex as needed.
3691
3692 From Ralf W. Grosse-Kunstleve:
3693
3694 - Accomodate anydbm modules that don't have a sync() method.
3695
3696 - Allow SConsignFile() to take an argument specifying the DBM
3697 module to be used.
3698
3699 From Stephen Kennedy:
3700
3701 - Add support for a configurable global .sconsign.dbm file which
3702 can be used to avoid cluttering each directory with an individual
3703 .sconsign file.
3704
3705 From John Johnson:
3706
3707 - Fix (re-)scanning of dependencies in generated or installed
3708 header files.
3709
3710 From Steven Knight:
3711
3712 - The -Q option suppressed too many messages; fix it so that it only
3713 suppresses the Reading/Building messages.
3714
3715 - Support #include when there's no space before the opening quote
3716 or angle bracket.
3717
3718 - Accomodate alphanumeric version strings in EnsurePythonVersion().
3719
3720 - Support arbitrary expansion of construction variables within
3721 file and directory arguments to Builder calls and Environment methods.
3722
3723 - Add Environment-method versions of the following global functions:
3724 Action(), AddPostAction(), AddPreAction(), Alias(), Builder(),
3725 BuildDir(), CacheDir(), Clean(), Configure(), Default(),
3726 EnsurePythonVersion(), EnsureSConsVersion(), Environment(),
3727 Exit(), Export(), FindFile(), GetBuildPath(), GetOption(), Help(),
3728 Import(), Literal(), Local(), Platform(), Repository(), Scanner(),
3729 SConscriptChdir(), SConsignFile(), SetOption(), SourceSignatures(),
3730 Split(), TargetSignatures(), Tool(), Value().
3731
3732 - Add the following global functions that correspond to the same-named
3733 Environment methods: AlwaysBuild(), Command(), Depends(), Ignore(),
3734 Install(), InstallAs(), Precious(), SideEffect() and SourceCode().
3735
3736 - Add the following global functions that correspond to the default
3737 Builder methods supported by SCons: CFile(), CXXFile(), DVI(), Jar(),
3738 Java(), JavaH(), Library(), M4(), MSVSProject(), Object(), PCH(),
3739 PDF(), PostScript(), Program(), RES(), RMIC(), SharedLibrary(),
3740 SharedObject(), StaticLibrary(), StaticObject(), Tar(), TypeLibrary()
3741 and Zip().
3742
3743 - Rearrange the man page to show construction environment methods and
3744 global functions in the same list, and to explain the difference.
3745
3746 - Alphabetize the explanations of the builder methods in the man page.
3747
3748 - Rename the Environment.Environment class to Enviroment.Base.
3749 Allow the wrapping interface to extend an Environment by using its own
3750 subclass of Environment.Base and setting a new Environment.Environment
3751 variable as the calling entry point.
3752
3753 - Deprecate the ParseConfig() global function in favor of a same-named
3754 construction environment method.
3755
3756 - Allow the Environment.WhereIs() method to take explicit path and
3757 pathext arguments (like the underlying SCons.Util.WhereIs() function).
3758
3759 - Remove the long-obsolete {Get,Set}CommandHandler() functions.
3760
3761 - Enhance env.Append() to suppress null values when appropriate.
3762
3763 - Fix ParseConfig() so it works regardless of initial construction
3764 variable values.
3765
3766 Extend CheckHeader(), CheckCHeader(), CheckCXXHeader() and
3767 CheckLibWithHeader() to accept a list of header files that will be
3768 #included in the test. The last one in the list is assumed to be
3769 the one being checked for. (Prototype code contributed by Gerard
3770 Patel and Niall Douglas).
3771
3772 - Supply a warning when -j is used and threading isn't built in to
3773 the current version of Python.
3774
3775 - First release of the User's Guide (finally, and despite a lot
3776 of things still missing from it...).
3777
3778 From Clark McGrew:
3779
3780 - Generalize the action for .tex files so that it will decide whether
3781 a file is TeX or LaTeX, check the .aux output to decide if it should
3782 run bibtex, and check the .log output to re-run LaTeX if needed.
3783
3784 From Bram Moolenaar:
3785
3786 - Split the non-SCons-specific functionality from SConf.py to a new,
3787 re-usable Conftest.py module.
3788
3789 From Gary Oberbrunner:
3790
3791 - Allow a directory to be the target or source or dependency of a
3792 Depends(), Ignore(), Precious() or SideEffect() call.
3793
3794 From Gerard Patel:
3795
3796 - Use the %{_mandir} macro when building our RPM package.
3797
3798 From Marko Rauhamaa:
3799
3800 - Have the closing message say "...terminated because of errors" if
3801 there were any.
3802
3803 From Anthony Roach:
3804
3805 - On Win32 systems, only use "rm" to delete files if Cygwin is being
3806 used. ("rm" doesn't understand Win32-format path names.)
3807
3808 From Christoph Wiedemann:
3809
3810 - Fix test/SWIG.py to find the Python include directory in all cases.
3811
3812 - Fix a bug in detection of Qt installed on the local system.
3813
3814 - Support returning Python 2.3 BooleanType values from Configure checks.
3815
3816 - Provide an error message if someone mistakenly tries to call a
3817 Configure check from within a Builder function.
3818
3819 - Support calling a Builder when a Configure context is still open.
3820
3821 - Handle interrupts better by eliminating all try:-except: blocks
3822 which caught any and all exceptions, including KeyboardInterrupt.
3823
3824 - Add a --duplicate= option to control how files are duplicated.
3825
3826
3827
3828 RELEASE 0.92 - Wed, 20 Aug 2003 03:45:28 -0500
3829
3830 From Charles Crain and Gary Oberbrunner:
3831
3832 - Fix Tool import problems with the Intel and PharLap linkers.
3833
3834 From Steven Knight
3835
3836 - Refactor the DictCmdGenerator class to be a Selector subclass.
3837
3838 - Allow the DefaultEnvironment() function to take arguments and pass
3839 them to instantiation of the default construction environment.
3840
3841 - Update the Debian package so it uses Python 2.2 and more closely
3842 resembles the currently official Debian packaging info.
3843
3844 From Gerard Patel
3845
3846 - When the yacc -d flag is used, take the .h file base name from the
3847 target .c file, not the source (matching what yacc does).
3848
3849
3850
3851 RELEASE 0.91 - Thu, 14 Aug 2003 13:00:44 -0500
3852
3853 From Chad Austin:
3854
3855 - Support specifying a list of tools when calling Environment.Copy().
3856
3857 - Give a Value Nodes a timestamp of the system time when they're
3858 created, so they'll work when using timestamp-based signatures.
3859
3860 - Add a DefaultEnvironment() function that only creates a default
3861 environment on-demand (for fetching source files, e.g.).
3862
3863 - Portability fix for test/M4.py.
3864
3865 From Steven Knight:
3866
3867 - Tighten up the scons -H help output.
3868
3869 - When the input yacc file ends in .yy and the -d flag is specified,
3870 recognize that a .hpp file (not a .h file) will be created.
3871
3872 - Make builder prefixes work correctly when deducing a target
3873 from a source file name in another directory.
3874
3875 - Documentation fixes: typo in the man page; explain up-front about
3876 not propagating the external environment.
3877
3878 - Use "cvs co -d" instead of "cvs co -p >" when checking out something
3879 from CVS with a specified module name. This avoids zero-length
3880 files when there is a checkout error.
3881
3882 - Add an "sconsign" script to print the contents of .sconsign files.
3883
3884 - Speed up maintaining the various lists of Node children by using
3885 dictionaries to avoid "x in list" searches.
3886
3887 - Cache the computed list of Node children minus those being Ignored
3888 so it's only calculated once.
3889
3890 - Fix use of the --cache-show option when building a Program()
3891 (or using any other arbitrary action) by making sure all Action
3892 instances have strfunction() methods.
3893
3894 - Allow the source of Command() to be a directory.
3895
3896 - Better error handling of things like raw TypeErrors in SConscripts.
3897
3898 - When installing using "setup.py install --prefix=", suppress the
3899 distutils warning message about adding the (incorrect) library
3900 directory to your search path.
3901
3902 - Correct the spelling of the "validater" option to "validator."
3903 Add a DeprecatedWarning when the old spelling is used.
3904
3905 - Allow a Builder's emitter to be a dictionary that maps source file
3906 suffixes to emitter functions, using the suffix of the first file
3907 in the source list to pick the right one.
3908
3909 - Refactor the creation of the Program, *Object and *Library Builders
3910 so that they're moved out of SCons.Defaults and created on demand.
3911
3912 - Don't split SConscript file names on white space.
3913
3914 - Document the SConscript function's "dirs" and "name" keywords.
3915
3916 - Remove the internal (and superfluous) SCons.Util.argmunge() function.
3917
3918 - Add /TP to the default CXXFLAGS for msvc, so it can compile all
3919 of the suffixes we use as C++ files.
3920
3921 - Allow the "prefix" and "suffix" attributes of a Builder to be
3922 callable objects that return generated strings, or dictionaries
3923 that map a source file suffix to the right prefix/suffix.
3924
3925 - Support a MAXLINELINELENGTH construction variable on Win32 systems
3926 to control when a temporary file is used for long command lines.
3927
3928 - Make how we build .rpm packages not depend on the installation
3929 locations from the distutils being used.
3930
3931 - When deducing a target Node, create it directly from the first
3932 source Node, not by trying to create the right string to pass to
3933 arg2nodes().
3934
3935 - Add support for SWIG.
3936
3937 From Bram Moolenaar:
3938
3939 - Test portability fixes for FreeBSD.
3940
3941 From Gary Oberbrunner:
3942
3943 - Report the target being built in error messages when building
3944 multiple sources from different extensions, or when the target file
3945 extension can't be deduced, or when we don't have an action for a
3946 file suffix.
3947
3948 - Provide helpful error messages when the arguments to env.Install()
3949 are incorrect.
3950
3951 - Fix the value returned by the Node.prevsiginfo() method to conform
3952 to a previous change when checking whether a node is current.
3953
3954 - Supply a stack trace if the Taskmaster catches an exception.
3955
3956 - When using a temporary file for a long link line on Win32 systems,
3957 (also) print the command line that is being executed through the
3958 temporary file.
3959
3960 - Initialize the LIB environment variable when using the Intel
3961 compiler (icl).
3962
3963 - Documentation fixes: better explain the AlwaysBuild() function.
3964
3965 From Laurent Pelecq:
3966
3967 - When the -debug=pdb option is specified, use pdb.Pdb().runcall() to
3968 call pdb directly, don't call Python recursively.
3969
3970 From Ben Scott:
3971
3972 - Add support for a platform-independent CPPDEFINES variable.
3973
3974 From Christoph Wiedemann:
3975
3976 - Have the g++ Tool actually use g++ in preference to c++.
3977
3978 - Have the gcc Tool actually use gcc in preference to cc.
3979
3980 - Add a gnutools.py test of the GNU tool chain.
3981
3982 - Be smarter about linking: use $CC by default and $CXX only if we're
3983 linking with any C++ objects.
3984
3985 - Avoid SCons hanging when a piped command has a lot of output to read.
3986
3987 - Add QT support for preprocessing .ui files into .c files.
3988
3989
3990
3991 RELEASE 0.90 - Wed, 25 Jun 2003 14:24:52 -0500
3992
3993 From Chad Austin:
3994
3995 - Fix the _concat() documentation, and add a test for it.
3996
3997 - Portability fixes for non-GNU versions of lex and yacc.
3998
3999 From Matt Balvin:
4000
4001 - Fix handling of library prefixes when the subdirectory matches
4002 the prefix.
4003
4004 From Timothee Bessett:
4005
4006 - Add an M4 Builder.
4007
4008 From Charles Crain:
4009
4010 - Use '.lnk' as the suffix on the temporary file for linking long
4011 command lines (necessary for the Phar Lap linkloc linker).
4012
4013 - Save non-string Options values as their actual type.
4014
4015 - Save Options string values that contain a single quote correctly.
4016
4017 - Save any Options values that are changed from the default
4018 Environment values, not just ones changed on the command line or in
4019 an Options file.
4020
4021 - Make closing the Options file descriptor exception-safe.
4022
4023 From Steven Knight:
4024
4025 - SCons now enforces (with an error) that construction variables
4026 must have the same form as valid Python identifiers.
4027
4028 - Fix man page bugs: remove duplicate AddPostAction() description;
4029 document no_import_lib; mention that CPPFLAGS does not contain
4030 $_CPPINCFLAGS; mention that F77FLAGS does not contain $_F77INCFLAGS;
4031 mention that LINKFLAGS and SHLINKFLAGS contains neither $_LIBFLAGS
4032 nor $_LIBDIRFLAGS.
4033
4034 - Eliminate a dependency on the distutils.fancy_getopt module by
4035 copying and pasting its wrap_text() function directly.
4036
4037 - Make the Script.Options() subclass match the underlying base class
4038 implementation.
4039
4040 - When reporting a target is up to date, quote the target like make
4041 (backquote-quote) instead of with double quotes.
4042
4043 - Fix handling of ../* targets when using -U, -D or -u.
4044
4045 From Steve Leblanc:
4046
4047 - Don't update the .sconsign files when run with -n.
4048
4049 From Gary Oberbrunner:
4050
4051 - Add support for the Intel C Compiler (icl.exe).
4052
4053 From Anthony Roach
4054
4055 - Fix Import('*').
4056
4057 From David Snopek
4058
4059 - Fix use of SConf in paths with white space in them.
4060
4061 - Add CheckFunc and CheckType functionality to SConf.
4062
4063 - Fix use of SConf with Builders that return a list of nodes.
4064
4065 From David Snopek and Christoph Wiedemann
4066
4067 - Fix use of the SConf subsystem with SConscriptChdir().
4068
4069 From Greg Spencer
4070
4071 - Check for the existence of MS Visual Studio on disk before using it,
4072 to avoid getting fooled by leftover junk in the registry.
4073
4074 - Add support for MSVC++ .NET.
4075
4076 - Add support for MS Visual Studio project files (DSP, DSW,
4077 SLN and VCPROJ files).
4078
4079 From Christoph Wiedemann
4080
4081 - SConf now works correctly when the -n and -q options are used.
4082
4083
4084
4085 RELEASE 0.14 - Wed, 21 May 2003 05:16:32 -0500
4086
4087 From Chad Austin:
4088
4089 - Use .dll (not .so) for shared libraries on Cygwin; use -fPIC
4090 when compiling them.
4091
4092 - Use 'rm' to remove files under Cygwin.
4093
4094 - Add a PLATFORM variable to construction environments.
4095
4096 - Remove the "platform" argument from tool specifications.
4097
4098 - Propogate PYTHONPATH when running the regression tests so distutils
4099 can be found in non-standard locations.
4100
4101 - Using MSVC long command-line linking when running Cygwin.
4102
4103 - Portability fixes for a lot of tests.
4104
4105 - Add a Value Node class for dependencies on in-core Python values.
4106
4107 From Allen Bierbaum:
4108
4109 - Pass an Environment to the Options validator method, and
4110 add an Options.Save() method.
4111
4112 From Steve Christensen:
4113
4114 - Add an optional sort function argument to the GenerateHelpText()
4115 Options function.
4116
4117 - Evaluate the "varlist" variables when computing the signature of a
4118 function action.
4119
4120 From Charles Crain:
4121
4122 - Parse the source .java files for class names (including inner class
4123 names) to figure out the target .class files that will be created.
4124
4125 - Make Java support work with Repositories and SConscriptChdir(0).
4126
4127 - Pass Nodes, not strings, to Builder emitter functions.
4128
4129 - Refactor command-line interpolation and signature calculation
4130 so we can use real Node attributes.
4131
4132 From Steven Knight:
4133
4134 - Add Java support (javac, javah, jar and rmic).
4135
4136 - Propagate the external SYSTEMROOT environment variable into ENV on
4137 Win32 systems, so external commands that use sockets will work.
4138
4139 - Add a .posix attribute to PathList expansions.
4140
4141 - Check out CVS source files using POSIX path names (forward slashes
4142 as separators) even on Win32.
4143
4144 - Add Node.clear() and Node.FS.Entry.clear() methods to wipe out a
4145 Node's state, allowing it to be re-evaluated by continuous
4146 integration build interfaces.
4147
4148 - Change the name of the Set{Build,Content}SignatureType() functions
4149 to {Target,Source}Signatures(). Deprecate the old names but support
4150 them for backwards compatibility.
4151
4152 - Add internal SCons.Node.FS.{Dir,File}.Entry() methods.
4153
4154 - Interpolate the null string if an out-of-range subscript is used
4155 for a construction variable.
4156
4157 - Fix the internal Link function so that it properly links or copies
4158 files in subsidiary BuildDir directories.
4159
4160 - Refactor the internal representation of a single execution instance
4161 of an action to eliminate redundant signature calculations.
4162
4163 - Eliminate redundant signature calculations for Nodes.
4164
4165 - Optimize out calling hasattr() before accessing attributes.
4166
4167 - Say "Cleaning targets" (not "Building...") when the -c option is
4168 used.
4169
4170 From Damyan Pepper:
4171
4172 - Quote the "Entering directory" message like Make.
4173
4174 From Stefan Reichor:
4175
4176 - Add support for using Ghostscript to convert Postscript to PDF files.
4177
4178 From Anthony Roach:
4179
4180 - Add a standalone "Alias" function (separate from an Environment).
4181
4182 - Make Export() work for local variables.
4183
4184 - Support passing a dictionary to Export().
4185
4186 - Support Import('*') to import everything that's been Export()ed.
4187
4188 - Fix an undefined exitvalmap on Win32 systems.
4189
4190 - Support new SetOption() and GetOption() functions for setting
4191 various command-line options from with an SConscript file.
4192
4193 - Deprecate the old SetJobs() and GetJobs() functions in favor of
4194 using the new generic {Set,Get}Option() functions.
4195
4196 - Fix a number of tests that searched for a Fortran compiler using the
4197 external PATH instead of what SCons would use.
4198
4199 - Fix the interaction of SideEffect() and BuildDir() so that (for
4200 example) PDB files get put correctly in a BuildDir().
4201
4202 From David Snopek:
4203
4204 - Contribute the "Autoscons" code for Autoconf-like checking for
4205 the existence of libraries, header files and the like.
4206
4207 - Have the Tool() function add the tool name to the $TOOLS
4208 construction variable.
4209
4210 From Greg Spencer:
4211
4212 - Support the C preprocessor #import statement.
4213
4214 - Allow the SharedLibrary() Builder on Win32 systems to be able to
4215 register a newly-built dll using regsvr32.
4216
4217 - Add a Builder for Windows type library (.tlb) files from IDL files.
4218
4219 - Add an IDL scanner.
4220
4221 - Refactor the Fortran, C and IDL scanners to share common logic.
4222
4223 - Add .srcpath and .srcdir attributes to $TARGET and $SOURCE.
4224
4225 From Christoph Wiedemann:
4226
4227 - Integrate David Snopek's "Autoscons" code as the new SConf
4228 configuration subsystem, including caching of values between
4229 runs (using normal SCons dependency mechanisms), tests, and
4230 documentation.
4231
4232
4233
4234 RELEASE 0.13 - Mon, 31 Mar 2003 20:22:00 -0600
4235
4236 From Charles Crain:
4237
4238 - Fix a bug when BuildDir(duplicate=0) is used and SConscript
4239 files are called from within other SConscript files.
4240
4241 - Support (older) versions of Perforce which don't set the Windows
4242 registry.
4243
4244
4245
4246 RELEASE 0.12 - Thu, 27 Mar 2003 23:52:09 -0600
4247
4248 From Charles Crain:
4249
4250 - Added support for the Perforce source code management system.
4251
4252 - Fix str(Node.FS) so that it returns a path relative to the calling
4253 SConscript file's directory, not the top-level directory.
4254
4255 - Added support for a separate src_dir argument to SConscript()
4256 that allows explicit specification of where the source files
4257 for an SConscript file can be found.
4258
4259 - Support more easily re-usable flavors of command generators by
4260 calling callable variables when strings are expanded.
4261
4262 From Steven Knight:
4263
4264 - Added an INSTALL construction variable that can be set to a function
4265 to control how the Install() and InstallAs() Builders install files.
4266 The default INSTALL function now copies, not links, files.
4267
4268 - Remove deprecated features: the "name" argument to Builder objects,
4269 and the Environment.Update() method.
4270
4271 - Add an Environment.SourceCode() method to support fetching files
4272 from source code systems. Add factory methods that create Builders
4273 to support BitKeeper, CVS, RCS, and SCCS. Add support for fetching
4274 files from RCS or SCCS transparently (like GNU Make).
4275
4276 - Make the internal to_String() function more efficient.
4277
4278 - Make the error message the same as other build errors when there's a
4279 problem unlinking a target file in preparation for it being built.
4280
4281 - Make TARGET, TARGETS, SOURCE and SOURCES reserved variable names and
4282 warn if the user tries to set them in a construction environment.
4283
4284 - Add support for Tar and Zip files.
4285
4286 - Better documentation of the different ways to export variables to a
4287 subsidiary SConscript file. Fix documentation bugs in a tools
4288 example, places that still assumed SCons split strings on white
4289 space, and typos.
4290
4291 - Support fetching arbitrary files from the TARGETS or SOURCES lists
4292 (e.g. ${SOURCES[2]}) when calculating the build signature of a
4293 command.
4294
4295 - Don't silently swallow exceptions thrown by Scanners (or other
4296 exceptions while finding a node's dependent children).
4297
4298 - Push files to CacheDir() before calling the superclass built()
4299 method (which may clear the build signature as part of clearing
4300 cached implicit dependencies, if the file has a source scanner).
4301 (Bug reported by Jeff Petkau.)
4302
4303 - Raise an internal error if we attempt to push a file to CacheDir()
4304 with a build signature of None.
4305
4306 - Add an explicit Exit() function for terminating early.
4307
4308 - Change the documentation to correctly describe that the -f option
4309 doesn't change to the directory in which the specified file lives.
4310
4311 - Support changing directories locally with SConscript directory
4312 path names relative to any SConstruct file specified with -f.
4313 This allows you to build in another directory by simply changing
4314 there and pointing at the SConstruct file in another directory.
4315
4316 - Change the default SConscriptChdir() behavior to change to the
4317 SConscript directory while it's being read.
4318
4319 - Fix an exception thrown when the -U option was used with no
4320 Default() target specified.
4321
4322 - Fix -u so that it builds things in corresponding build directories
4323 when used in a source directory.
4324
4325 From Lachlan O'Dea:
4326
4327 - Add SharedObject() support to the masm tool.
4328
4329 - Fix WhereIs() to return normalized paths.
4330
4331 From Jeff Petkau:
4332
4333 - Don't copy a built file to a CacheDir() if it's already there.
4334
4335 - Avoid partial copies of built files in a CacheDir() by copying
4336 to a temporary file and renaming.
4337
4338 From Anthony Roach:
4339
4340 - Fix incorrect dependency-cycle errors when an Aliased source doesn't
4341 exist.
4342
4343
4344
4345 RELEASE 0.11 - Tue, 11 Feb 2003 05:24:33 -0600
4346
4347 From Chad Austin:
4348
4349 - Add support for IRIX and the SGI MIPSPro tool chain.
4350
4351 - Support using the MSVC tool chain when running Cygwin Python.
4352
4353 From Michael Cook:
4354
4355 - Avoid losing signal bits in the exit status from a command,
4356 helping terminate builds on interrupt (CTRL+C).
4357
4358 From Charles Crain:
4359
4360 - Added new AddPreAction() and AddPostAction() functions that support
4361 taking additional actions before or after building specific targets.
4362
4363 - Add support for the PharLap ETS tool chain.
4364
4365 From Steven Knight:
4366
4367 - Allow Python function Actions to specify a list of construction
4368 variables that should be included in the Action's signature.
4369
4370 - Allow libraries in the LIBS variable to explicitly include the prefix
4371 and suffix, even when using the GNU linker.
4372 (Bug reported by Neal Becker.)
4373
4374 - Use DOS-standard CR-LF line endings in the scons.bat file.
4375 (Bug reported by Gary Ruben.)
4376
4377 - Doc changes: Eliminate description of deprecated "name" keyword
4378 argument from Builder definition (reported by Gary Ruben).
4379
4380 - Support using env.Append() on BUILDERS (and other dictionaries).
4381 (Bug reported by Bj=F6rn Bylander.)
4382
4383 - Setting the BUILDERS construction variable now properly clears
4384 the previous Builder attributes from the construction Environment.
4385 (Bug reported by Bj=F6rn Bylander.)
4386
4387 - Fix adding a prefix to a file when the target isn't specified.
4388 (Bug reported by Esa Ilari Vuokko.)
4389
4390 - Clean up error messages from problems duplicating into read-only
4391 BuildDir directories or into read-only files.
4392
4393 - Add a CommandAction.strfunction() method, and add an "env" argument
4394 to the FunctionAction.strfunction() method, so that all Action
4395 objects have strfunction() methods, and the functions for building
4396 and returning a string both take the same arguments.
4397
4398 - Add support for new CacheDir() functionality to share derived files
4399 between builds, with related options --cache-disable, --cache-force,
4400 and --cache-show.
4401
4402 - Change the default behavior when no targets are specified to build
4403 everything in the current directory and below (like Make). This
4404 can be disabled by specifying Default(None) in an SConscript.
4405
4406 - Revamp SCons installation to fix a case-sensitive installation
4407 on Win32 systems, and to add SCons-specific --standard-lib,
4408 --standalone-lib, and --version-lib options for easier user
4409 control of where the libraries get installed.
4410
4411 - Fix the ability to directly import and use Platform and Tool modules
4412 that have been implicitly imported into an Environment().
4413
4414 - Add support for allowing an embedding interface to annotate a node
4415 when it's created.
4416
4417 - Extend the SConscript() function to accept build_dir and duplicate
4418 keyword arguments that function like a BuildDir() call.
4419
4420 From Steve Leblanc:
4421
4422 - Fix the output of -c -n when directories are involved, so it
4423 matches -c.
4424
4425 From Anthony Roach:
4426
4427 - Use a different shared object suffix (.os) when using gcc so shared
4428 and static objects can exist side-by-side in the same directory.
4429
4430 - Allow the same object files on Win32 to be linked into either
4431 shared or static libraries.
4432
4433 - Cache implicit cache values when using --implicit-cache.
4434
4435
4436
4437 RELEASE 0.10 - Thu, 16 Jan 2003 04:11:46 -0600
4438
4439 From Derrick 'dman' Hudson:
4440
4441 - Support Repositories on other file systems by symlinking or
4442 copying files when hard linking won't work.
4443
4444 From Steven Knight:
4445
4446 - Remove Python bytecode (*.pyc) files from the scons-local packages.
4447
4448 - Have FunctionActions print a description of what they're doing
4449 (a representation of the Python call).
4450
4451 - Fix the Install() method so that, like other actions, it prints
4452 what would have happened when the -n option is used.
4453
4454 - Don't create duplicate source files in a BuildDir when the -n
4455 option is used.
4456
4457 - Refactor the Scanner interface to eliminate unnecessary Scanner
4458 calls and make it easier to write efficient scanners.
4459
4460 - Added a "recursive" flag to Scanner creation that specifies the
4461 Scanner should be invoked recursively on dependency files returned
4462 by the scanner.
4463
4464 - Significant performance improvement from using a more efficient
4465 check, throughout the code, for whether a Node has a Builder.
4466
4467 - Fix specifying only the source file to MultiStepBuilders such as
4468 the Program Builder. (Bug reported by Dean Bair.)
4469
4470 - Fix an exception when building from a file with the same basename as
4471 the subdirectory in which it lives. (Bug reported by Gerard Patel.)
4472
4473 - Fix automatic deduction of a target file name when there are
4474 multiple source files specified; the target is now deduced from just
4475 the first source file in the list.
4476
4477 - Documentation fixes: better initial explanation of SConscript files;
4478 fix a misformatted "table" in the StaticObject explanation.
4479
4480 From Steven Knight and Steve Leblanc:
4481
4482 - Fix the -c option so it will remove symlinks.
4483
4484 From Steve Leblanc:
4485
4486 - Add a Clean() method to support removing user-specified targets
4487 when using the -c option.
4488
4489 - Add a development script for running SCons through PyChecker.
4490
4491 - Clean up things found by PyChecker (mostly unnecessary imports).
4492
4493 - Add a script to use HappyDoc to create HTML class documentation.
4494
4495 From Lachlan O'Dea:
4496
4497 - Make the Environment.get() method return None by default.
4498
4499 From Anthony Roach:
4500
4501 - Add SetJobs() and GetJobs() methods to allow configuration of the
4502 number of default jobs (still overridden by -j).
4503
4504 - Convert the .sconsign file format from ASCII to a pickled Python
4505 data structure.
4506
4507 - Error message cleanups: Made consistent the format of error
4508 messages (now all start with "scons: ***") and warning messages (now
4509 all start with "scons: warning:"). Caught more cases with the "Do
4510 not know how to build" error message.
4511
4512 - Added support for the MinGW tool chain.
4513
4514 - Added a --debug=includes option.
4515
4516
4517
4518 RELEASE 0.09 - Thu, 5 Dec 2002 04:48:25 -0600
4519
4520 From Chad Austin:
4521
4522 - Add a Prepend() method to Environments, to append values to
4523 the beginning of construction variables.
4524
4525 From Matt Balvin:
4526
4527 - Add long command-line support to the "lib" Tool (Microsoft library
4528 archiver), too.
4529
4530 From Charles Crain:
4531
4532 - Allow $$ in a string to be passed through as $.
4533
4534 - Support file names with odd characters in them.
4535
4536 - Add support for construction variable substition on scanner
4537 directories (in CPPPATH, F77PATH, LIBPATH, etc.).
4538
4539 From Charles Crain and Steven Knight:
4540
4541 - Add Repository() functionality, including the -Y option.
4542
4543 From Steven Knight:
4544
4545 - Fix auto-deduction of target names so that deduced targets end
4546 up in the same subdirectory as the source.
4547
4548 - Don't remove source files specified on the command line!
4549
4550 - Suport the Intel Fortran Compiler (ifl.exe).
4551
4552 - Supply an error message if there are no command-line or
4553 Default() targets specified.
4554
4555 - Fix the ASPPCOM values for the GNU assembler.
4556 (Bug reported by Brett Polivka.)
4557
4558 - Fix an exception thrown when a Default() directory was specified
4559 when using the -U option.
4560
4561 - Issue a warning when -c can't remove a target.
4562
4563 - Eliminate unnecessary Scanner calls by checking for the
4564 existence of a file before scanning it. (This adds a generic
4565 hook to check an arbitrary condition before scanning.)
4566
4567 - Add explicit messages to tell when we're "Reading SConscript files
4568 ...," "done reading SConscript files," "Building targets," and
4569 "done building targets." Add a -Q option to supress these.
4570
4571 - Add separate $SHOBJPREFIX and $SHOBJSUFFIX construction variables
4572 (by default, the same as $OBJPREFIX and $OBJSUFFIX).
4573
4574 - Add Make-like error messages when asked to build a source file,
4575 and before trying to build a file that doesn't have all its source
4576 files (including when an invalid drive letter is used on WIN32).
4577
4578 - Add an scons-local-{version} package (in both .tar.gz and .zip
4579 flavors) to help people who want to ship SCons as a stand-alone
4580 build tool in their software packages.
4581
4582 - Prevent SCons from unlinking files in certain situations when
4583 the -n option is used.
4584
4585 - Change the name of Tool/lib.py to Tool/mslib.py.
4586
4587 From Steven Knight and Anthony Roach:
4588
4589 - Man page: document the fact that Builder calls return Node objects.
4590
4591 From Steve LeBlanc:
4592
4593 - Refactor option processing to use our own version of Greg Ward's
4594 Optik module, modified to run under Python 1.5.2.
4595
4596 - Add a ParseConfig() command to modify an environment based on
4597 parsing output from a *-config command.
4598
4599 From Jeff Petkau:
4600
4601 - Fix interpretation of '#/../foo' on Win32 systems.
4602
4603 From Anthony Roach:
4604
4605 - Fixed use of command lines with spaces in their arguments,
4606 and use of Nodes with spaces in their string representation.
4607
4608 - Make access and modification times of files in a BuildDir match
4609 the source file, even when hard linking isn't available.
4610
4611 - Make -U be case insensitive on Win32 systems.
4612
4613 - Issue a warning and continue when finding a corrupt .sconsign file.
4614
4615 - Fix using an alias as a dependency of a target so that if one of the
4616 alias' dependencies gets rebuilt, the resulting target will, too.
4617
4618 - Fix differently ordered targets causing unnecessary rebuilds
4619 on case insensitive systems.
4620
4621 - Use os.system() to execute external commands whenever the "env"
4622 utility is available, which is much faster than fork()/exec(),
4623 and fixes the -j option on several platforms.
4624
4625 - Fix use of -j with multiple targets.
4626
4627 - Add an Options() object for friendlier accomodation of command-
4628 line arguments.
4629
4630 - Add support for Microsoft VC++ precompiled header (.pch) files,
4631 debugger (.pdb) files, and resource (.rc) files.
4632
4633 - Don't compute the $_CPPINCFLAGS, $_F77INCFLAGS, $_LIBFLAGS and
4634 $_LIBDIRFLAGS variables each time a command is executed, define
4635 them so they're computed only as needed. Add a new _concat
4636 function to the Environment that allows people to define their
4637 own similar variables.
4638
4639 - Fix dependency scans when $LIBS is overridden.
4640
4641 - Add EnsurePythonVersion() and EnsureSConsVersion() functions.
4642
4643 - Fix the overly-verbose stack trace on ListBuilder build errors.
4644
4645 - Add a SetContentSignatureType() function, allowing use of file
4646 timestamps instead of MD5 signatures.
4647
4648 - Make -U and Default('source') fail gracefully.
4649
4650 - Allow the File() and Dir() methods to take a path-name string as
4651 the starting directory, in addition to a Dir object.
4652
4653 - Allow the command handler to be selected via the SPAWN, SHELL
4654 and ESCAPE construction variables.
4655
4656 - Allow construction variables to be overridden when a Builder
4657 is called.
4658
4659 From sam th:
4660
4661 - Dynamically check for the existence of utilities with which to
4662 initialize Environments by default.
4663
4664
4665
4666 RELEASE 0.08 - Mon, 15 Jul 2002 12:08:51 -0500
4667
4668 From Charles Crain:
4669
4670 - Fixed a bug with relative CPPPATH dirs when using BuildDir().
4671 (Bug reported by Bob Summerwill.)
4672
4673 - Added a warnings framework and a --warn option to enable or
4674 disable warnings.
4675
4676 - Make the C scanner warn users if files referenced by #include
4677 directives cannot be found and --warn=dependency is specified.
4678
4679 - The BUILDERS construction variable should now be a dictionary
4680 that maps builder names to actions. Existing uses of lists,
4681 and the Builder name= keyword argument, generate warnings
4682 about use of deprecated features.
4683
4684 - Removed the "shared" keyword argument from the Object and
4685 Library builders.
4686
4687 - Added separated StaticObject, SharedObject, StaticLibrary and
4688 SharedLibrary builders. Made Object and Library synonyms for
4689 StaticObject and StaticLibrary, respectively.
4690
4691 - Add LIBS and LIBPATH dependencies for shared libraries.
4692
4693 - Removed support for the prefix, suffix and src_suffix arguments
4694 to Builder() to be callable functions.
4695
4696 - Fix handling file names with multiple dots.
4697
4698 - Allow a build directory to be outside of the SConstruct tree.
4699
4700 - Add a FindFile() function that searches for a file node with a
4701 specified name.
4702
4703 - Add $CPPFLAGS to the shared-object command lines for g++ and gcc.
4704
4705 From Charles Crain and Steven Knight:
4706
4707 - Add a "tools=" keyword argument to Environment instantiation,
4708 and a separate Tools() method, for more flexible specification
4709 of tool-specific environment changes.
4710
4711 From Steven Knight:
4712
4713 - Add a "platform=" keyword argument to Environment instantiation,
4714 and a separate Platform() method, for more flexible specification
4715 of platform-specific environment changes.
4716
4717 - Updated README instructions and setup.py code to catch an
4718 installation failure from not having distutils installed.
4719
4720 - Add descriptions to the -H help text for -D, -u and -U so
4721 people can tell them apart.
4722
4723 - Remove the old feature of automatically splitting strings
4724 of file names on white space.
4725
4726 - Add a dependency Scanner for native Fortran "include" statements,
4727 using a new "F77PATH" construction variable.
4728
4729 - Fix C #include scanning to detect file names with characters like
4730 '-' in them.
4731
4732 - Add more specific version / build output to the -v option.
4733
4734 - Add support for the GNU as, Microsoft masm, and nasm assemblers.
4735
4736 - Allow the "target" argument to a Builder call to be omitted, in
4737 which case the target(s) are deduced from the source file(s) and the
4738 Builder's specified suffix.
4739
4740 - Add a tar archive builder.
4741
4742 - Add preliminary support for the OS/2 Platform, including the icc
4743 and ilink Tools.
4744
4745 From Jeff Petkau:
4746
4747 - Fix --implicit-cache if the scanner returns an empty list.
4748
4749 From Anthony Roach:
4750
4751 - Add a "multi" keyword argument to Builder creation that specifies
4752 it's okay to call the builder multiple times for a target.
4753
4754 - Set a "multi" on Aliases so multiple calls will append to an Alias.
4755
4756 - Fix emitter functions' use of path names when using BuildDir or
4757 in subdirectories.
4758
4759 - Fix --implicit-cache causing redundant rebuilds when the header
4760 file list changed.
4761
4762 - Fix --implicit-cache when a file has no implicit dependencies and
4763 its source is generated.
4764
4765 - Make the drive letters on Windows always be the same case, so that
4766 changes in the case of drive letters don't cause a rebuild.
4767
4768 - Fall back to importing the SCons.TimeStamp module if the SCons.MD5
4769 module can't be imported.
4770
4771 - Fix interrupt handling to guarantee that a single interrupt will
4772 halt SCons both when using -j and not.
4773
4774 - Fix .sconsign signature storage so that output files of one build
4775 can be safely used as input files to another build.
4776
4777 - Added a --debug=time option to print SCons execution times.
4778
4779 - Print an error message if a file can't be unlinked before being
4780 built, rather than just silently terminating the build.
4781
4782 - Add a SideEffect() method that can be used to tell the build
4783 engine that a given file is created as a side effect of building
4784 a target. A file can be specified as a side effect of more than
4785 one build comand, in which case the commands will not be executed
4786 simultaneously.
4787
4788 - Significant performance gains from not using our own version of
4789 the inefficient stock os.path.splitext() method, caching source
4790 suffix computation, code cleanup in MultiStepBuilder.__call__(),
4791 and replicating some logic in scons_subst().
4792
4793 - Add --implicit-deps-changed and --implicit-deps-unchanged options.
4794
4795 - Add a GetLaunchDir() function.
4796
4797 - Add a SetBuildSignatureType() function.
4798
4799 From Zed Shaw:
4800
4801 - Add an Append() method to Environments, to append values to
4802 construction variables.
4803
4804 - Change the name of Update() to Replace(). Keep Update() as a
4805 deprecated synonym, at least for now.
4806
4807 From Terrel Shumway:
4808
4809 - Use a $PYTHON construction variable, initialized to sys.executable,
4810 when using Python to build parts of the SCons packages.
4811
4812 - Use sys.prefix, not sys.exec_prefix, to find pdb.py.
4813
4814
4815
4816 RELEASE 0.07 - Thu, 2 May 2002 13:37:16 -0500
4817
4818 From Chad Austin:
4819
4820 - Changes to build SCons packages on IRIX (and other *NIces).
4821
4822 - Don't create a directory Node when a file already exists there,
4823 and vice versa.
4824
4825 - Add 'dirs' and 'names' keyword arguments to SConscript for
4826 easier specification of subsidiary SConscript files.
4827
4828 From Charles Crain:
4829
4830 - Internal cleanup of environment passing to function Actions.
4831
4832 - Builders can now take arbitrary keyword arguments to create
4833 attributes to be passed to: command generator functions,
4834 FunctionAction functions, Builder emitter functions (below),
4835 and prefix/suffix generator functions (below).
4836
4837 - Command generator functions can now return ANYTHING that can be
4838 converted into an Action (a function, a string, a CommandGenerator
4839 instance, even an ActionBase instance).
4840
4841 - Actions now call get_contents() with the actual target and source
4842 nodes used for the build.
4843
4844 - A new DictCmdGenerator class replaces CompositeBuilder to support
4845 more flexible Builder behavior internally.
4846
4847 - Builders can now take an emitter= keyword argument. An emitter
4848 is a function that takes target, source, and env argument, then
4849 return a 2-tuple of (new sources, new targets). The emitter is
4850 called when the Builder is __call__'ed, allowing a user to modify
4851 source and target lists.
4852
4853 - The prefix, suffix and src_suffix Builder arguments now take a
4854 callable as well a string. The callable is passed the Environment
4855 and any extra Builder keyword arguments and is expected to return
4856 the appropriate prefix or suffix.
4857
4858 - CommandActions can now be a string, a list of command + argument
4859 strings, or a list of commands (strings or lists).
4860
4861 - Added shared library support. The Object and Library Builders now
4862 take a "shared=1" keyword argument to specify that a shared object
4863 or shared library should be built. It is an error to try to build
4864 static objects into a shared library or vice versa.
4865
4866 - Win32 support for .def files has been added. Added the Win32-specific
4867 construction variables $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
4868 $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX. When building a .dll,
4869 the new construction variable $WIN32_INSERT_DEF, controls whether
4870 the appropriately-named .def file is inserted into the target
4871 list (if not already present). A .lib file is always added to
4872 a Library build if not present in the list of targets.
4873
4874 - ListBuilder now passes all targets to the action, not just the first.
4875
4876 - Fix so that -c now deletes generated yacc .h files.
4877
4878 - Builder actions and emitter functions can now be initialized, through
4879 construction variables, to things other than strings.
4880
4881 - Make top-relative '#/dir' lookups work like '#dir'.
4882
4883 - Fix for relative CPPPATH directories in subsidiary SConscript files
4884 (broken in 0.06).
4885
4886 - Add a for_signature argument to command generators, so that
4887 generators that need to can return distinct values for the
4888 command signature and for executing the command.
4889
4890 From Alex Jacques:
4891
4892 - Create a better scons.bat file from a py2bat.py script on the Python
4893 mailing list two years ago (modeled after pl2bat.pl).
4894
4895 From Steven Knight:
4896
4897 - Fix so that -c -n does *not* remove the targets!
4898
4899 - Man page: Add a hierarchical libraries + Program example.
4900
4901 - Support long MSVC linker command lines through a builder action
4902 that writes to a temporary file and uses the magic MSVC "link @file"
4903 argument syntax if the line is longer than 2K characters.
4904
4905 - Fix F77 command-line options on Win32 (use /Fo instead of -o).
4906
4907 - Use the same action to build from .c (lower case) and .C (upper
4908 case) files on case-insensitive systems like Win32.
4909
4910 - Support building a PDF file directly from a TeX or LaTeX file
4911 using pdftex or pdflatex.
4912
4913 - Add a -x option to runtest.py to specify the script being tested.
4914 A -X option indicates it's an executable, not a script to feed
4915 to the Python interpreter.
4916
4917 - Add a Split() function (identical to SCons.Util.argmunge()) for use
4918 in the next release, when Builders will no longer automatically split
4919 strings on white space.
4920
4921 From Steve Leblanc:
4922
4923 - Add the SConscriptChdir() method.
4924
4925 From Anthony Roach:
4926
4927 - Fix --debug=tree when used with directory targets.
4928
4929 - Significant internal restructuring of Scanners and Taskmaster.
4930
4931 - Added new --debug=dtree option.
4932
4933 - Fixes for --profile option.
4934
4935 - Performance improvement in construction variable substitution.
4936
4937 - Implemented caching of content signatures, plus added --max-drift
4938 option to control caching.
4939
4940 - Implemented caching of dependency signatures, enabled by new
4941 --implicit-cache option.
4942
4943 - Added abspath construction variable modifier.
4944
4945 - Added $SOURCE variable as a synonym for $SOURCES[0].
4946
4947 - Write out .sconsign files on error or interrupt so intermediate
4948 build results are saved.
4949
4950 - Change the -U option to -D. Make a new -U that builds just the
4951 targets from the local SConscript file.
4952
4953 - Fixed use of sys.path so Python modules can be imported from
4954 the SConscript directory.
4955
4956 - Fix for using Aliases with the -u, -U and -D options.
4957
4958 - Fix so that Nodes can be passed to SConscript files.
4959
4960 From Moshe Zadka:
4961
4962 - Changes for official Debian packaging.
4963
4964
4965
4966 RELEASE 0.06 - Thu, 28 Mar 2002 01:24:29 -0600
4967
4968 From Charles Crain:
4969
4970 - Fix command generators to expand construction variables.
4971
4972 - Make FunctionAction arguments be Nodes, not strings.
4973
4974 From Stephen Kennedy:
4975
4976 - Performance: Use a dictionary, not a list, for a Node's parents.
4977
4978 From Steven Knight:
4979
4980 - Add .zip files to the packages we build.
4981
4982 - Man page: document LIBS, fix a typo, document ARGUMENTS.
4983
4984 - Added RANLIB and RANLIBFLAGS construction variables. Only use them
4985 in ARCOM if there's a "ranlib" program on the system.
4986
4987 - Add a configurable CFILESUFFIX for the Builder of .l and .y files
4988 into C files.
4989
4990 - Add a CXXFile Builder that turns .ll and .yy files into .cc files
4991 (configurable via a CXXFILESUFFIX construction variable).
4992
4993 - Use the POSIX-standard lex -t flag, not the GNU-specific -o flag.
4994 (Bug reported by Russell Christensen.)
4995
4996 - Fixed an exception when CPPPATH or LIBPATH is a null string.
4997 (Bug reported by Richard Kiss.)
4998
4999 - Add a --profile=FILE option to make profiling SCons easier.
5000
5001 - Modify the new DVI builder to create .dvi files from LaTeX (.ltx
5002 and .latex) files.
5003
5004 - Add support for Aliases (phony targets).
5005
5006 - Add a WhereIs() method for searching for path names to executables.
5007
5008 - Add PDF and PostScript document builders.
5009
5010 - Add support for compiling Fortran programs from a variety of
5011 suffixes (a la GNU Make): .f, .F, .for, .FOR, .fpp and .FPP
5012
5013 - Support a CPPFLAGS variable on all default commands that use the
5014 C preprocessor.
5015
5016 From Steve Leblanc:
5017
5018 - Add support for the -U option.
5019
5020 - Allow CPPPATH, LIBPATH and LIBS to be specified as white-space
5021 separated strings.
5022
5023 - Add a document builder to create .dvi files from TeX (.tex) files.
5024
5025 From Anthony Roach:
5026
5027 - Fix: Construction variables with values of 0 were incorrectly
5028 interpolated as ''.
5029
5030 - Support env['VAR'] to fetch construction variable values.
5031
5032 - Man page: document Precious().
5033
5034
5035
5036 RELEASE 0.05 - Thu, 21 Feb 2002 16:50:03 -0600
5037
5038 From Chad Austin:
5039
5040 - Set PROGSUFFIX to .exe under Cygwin.
5041
5042 From Charles Crain:
5043
5044 - Allow a library to specified as a command-line source file, not just
5045 in the LIBS construction variable.
5046
5047 - Compensate for a bug in os.path.normpath() that returns '' for './'
5048 on WIN32.
5049
5050 - More performance optimizations: cache #include lines from files,
5051 eliminate unnecessary calls.
5052
5053 - If a prefix or suffix contains white space, treat the resulting
5054 concatenation as separate arguments.
5055
5056 - Fix irregularities in the way we fetch DevStudio information from
5057 the Windows registry, and in our registry error handling.
5058
5059 From Steven Knight:
5060
5061 - Flush stdout after print so it intermixes correctly with stderr
5062 when redirected.
5063
5064 - Allow Scanners to return a list of strings, and document how to
5065 write your own Scanners.
5066
5067 - Look up implicit (scanned) dependencies relative to the directory
5068 of file being scanned.
5069
5070 - Make writing .sconsign files more robust by first trying to write
5071 to a temp file that gets renamed.
5072
5073 - Create all of the directories for a list of targets before trying
5074 to build any of the targets.
5075
5076 - WIN32 portability fixes in tests.
5077
5078 - Allow the list of variables exported to an SConscript file to be
5079 a UserList, too.
5080
5081 - Document the overlooked LIBPATH construction variable.
5082 (Bug reported by Eicke Godehardt.)
5083
5084 - Fix so that Ignore() ignores indirect, implicit dependencies
5085 (included files), not just direct dependencies.
5086
5087 - Put the man page in the Debian distribution.
5088
5089 - Run HTML docs through tidy to clean up the HTML (for Konqueror).
5090
5091 - Add preliminary support for Unicode strings.
5092
5093 - Efficiency: don't scan dependencies more than once during the
5094 walk of a tree.
5095
5096 - Fix the -c option so it doesn't stop removing targets if one doesn't
5097 already exist.
5098 (Bug reported by Paul Connell.)
5099
5100 - Fix the --debug=pdb option when run on Windows NT.
5101 (Bug reported by Paul Connell.)
5102
5103 - Add support for the -q option.
5104
5105 From Steve Leblanc:
5106
5107 - Add support for the -u option.
5108
5109 - Add .cc and .hh file suffixes to the C Scanner.
5110
5111 From Anthony Roach:
5112
5113 - Make the scons script return an error code on failures.
5114
5115 - Add support for using code to generate a command to build a target.
5116
5117
5118
5119 RELEASE 0.04 - Wed, 30 Jan 2002 11:09:42 -0600
5120
5121 From Charles Crain:
5122
5123 - Significant performance improvements in the Node.FS and
5124 Scanner subsystems.
5125
5126 - Fix signatures of binary files on Win32 systems.
5127
5128 - Allow LIBS and LIBPATH to be strings, not just arrays.
5129
5130 - Print a traceback if a Python-function builder throws an exception.
5131
5132 From Steven Knight:
5133
5134 - Fix using a directory as a Default(), and allow Default() to
5135 support white space in file names for strings in arrays.
5136
5137 - Man page updates: corrected some mistakes, documented various
5138 missing Environment methods, alphabetized the construction
5139 variables and other functions, defined begin and end macros for
5140 the example sections, regularized white space separation, fixed
5141 the use of Export() in the Multiple Variants example.
5142
5143 - Function action fixes: None is now a successful return value.
5144 Exceptions are now reported. Document function actions.
5145
5146 - Add 'Action' and 'Scanner' to the global keywords so SConscript
5147 files can use them too.
5148
5149 - Removed the Wrapper class between Nodes and Walkers.
5150
5151 - Add examples using Library, LIBS, and LIBPATH.
5152
5153 - The C Scanner now always returns a sorted list of dependencies
5154 so order changes don't cause unnecessary rebuilds.
5155
5156 - Strip $(-$) bracketed text from command lines. Use this to
5157 surround $_INCDIRS and $_LIBDIRS so we don't rebuild in response
5158 to changes to -I or -L options.
5159
5160 - Add the Ignore() method to ignore dependencies.
5161
5162 - Provide an error message when a nonexistent target is specified
5163 on the command line.
5164
5165 - Remove targets before building them, and add an Environment
5166 Precious() method to override that.
5167
5168 - Eliminate redundant calls to the same builder when the target is a
5169 list of targets: Add a ListBuilder class that wraps Builders to
5170 handle lists atomically. Extend the Task class to support building
5171 and updating multiple targets in a single Task. Simplify the
5172 interface between Task and Taskmaster.
5173
5174 - Add a --debug=pdb option to re-run SCons under the Python debugger.
5175
5176 - Only compute a build signature once for each node.
5177
5178 - Changes to our sys.path[] manipulation to support installation into
5179 an arbitrary --prefix value.
5180
5181 From Steve Leblanc:
5182
5183 - Add var=value command-line arguments.
5184
5185
5186
5187 RELEASE 0.03 - Fri, 11 Jan 2002 01:09:30 -0600
5188
5189 From Charles Crain:
5190
5191 - Performance improvements in the Node.FS and Sig.Calculator classes.
5192
5193 - Add the InstallAs() method.
5194
5195 - Execute commands through an external interpreter (sh, cmd.exe, or
5196 command.com) to handle redirection metacharacters.
5197
5198 - Allow the user to supply a command handler.
5199
5200 From Steven Knight:
5201
5202 - Search both /usr/lib and /usr/local/lib for scons directories by
5203 adding them both to sys.path, with whichever is in sys.prefix first.
5204
5205 - Fix interpreting strings of multiple white-space separated file names
5206 as separate file names, allowing prefixes and suffixes to be appended
5207 to each individually.
5208
5209 - Refactor to move CompositeBuilder initialization logic from the
5210 factory wrapper to the __init__() method, and allow a Builder to
5211 have both an action and a src_builder (or array of them).
5212
5213 - Refactor BuilderBase.__call__() to separate Node creation/lookup
5214 from initialization of the Node's builder information.
5215
5216 - Add a CFile Builder object that supports turning lex (.l) and
5217 yacc (.y) files into .c files.
5218
5219 - Document: variable interpretation attributes; how to propogate
5220 the user's environment variables to executed commands; how to
5221 build variants in multiple BuildDirs.
5222
5223 - Collect String, Dict, and List type-checking in common utility
5224 routines so we can accept User{String,Dict,List}s all over.
5225
5226 - Put the Action factory and classes into their own module.
5227
5228 - Use one CPlusPlusAction in the Object Builder's action dictionary,
5229 instead of letting it create multiple identical instances.
5230
5231 - Document the Install() and InstallAs() methods.
5232
5233 From Steve Leblanc:
5234
5235 - Require that a Builder be given a name argument, supplying a
5236 useful error message when it isn't.
5237
5238 From Anthony Roach:
5239
5240 - Add a "duplicate" keyword argument to BuildDir() that can be set
5241 to prevent linking/copying source files into build directories.
5242
5243 - Add a "--debug=tree" option to print an ASCII dependency tree.
5244
5245 - Fetch the location of the Microsoft Visual C++ compiler(s) from
5246 the Registry, instead of hard-coding the location.
5247
5248 - Made Scanner objects take Nodes, not path names.
5249
5250 - Have the C Scanner cache the #include file names instead of
5251 (re-)scanning the file each time it's called.
5252
5253 - Created a separate class for parent "nodes" of file system roots,
5254 eliminating the need for separate is-parent-null checks everywhere.
5255
5256 - Removed defined __hash__() and __cmp() methods from FS.Entry, in
5257 favor of Python's more efficient built-in identity comparisons.
5258
5259
5260
5261 RELEASE 0.02 - Sun, 23 Dec 2001 19:05:09 -0600
5262
5263 From Charles Crain:
5264
5265 - Added the Install(), BuildDir(), and Export() methods.
5266
5267 - Fix the -C option by delaying setting the top of the FS tree.
5268
5269 - Avoid putting the directory path on the libraries in the LIBS
5270 construction variable.
5271
5272 - Added a GetBuildPath() method to return the full path to the
5273 Node for a specified string.
5274
5275 - Fixed variable substitution in CPPPATH and LIBPATH.
5276
5277 From Steven Knight:
5278
5279 - Fixed the version comment in the scons.bat (the UNIX geek used
5280 # instead of @rem).
5281
5282 - Fix to setup.py so it doesn't require a sys.argv[1] argument.
5283
5284 - Provide make-like warning message for "command not found" and
5285 similar errors.
5286
5287 - Added an EXAMPLES section to the man page.
5288
5289 - Make Default() targets properly relative to their SConscript
5290 file's subdirectory.
5291
5292 From Anthony Roach:
5293
5294 - Documented CXXFLAGS, CXXCOM, and CPPPATH.
5295
5296 - Fixed SCONS_LIB_DIR to work as documented.
5297
5298 - Made Default() accept Nodes as arguments.
5299
5300 - Changed Export() to make it easier to use.
5301
5302 - Added the Import() and Return() methods.
5303
5304
5305
5306 RELEASE 0.01 - Thu Dec 13 19:25:23 CST 2001
5307
5308 A brief overview of important functionality available in release 0.01:
5309
5310 - C and C++ compilation on POSIX and Windows NT.
5311
5312 - Automatic scanning of C/C++ source files for #include dependencies.
5313
5314 - Support for building libraries; setting construction variables
5315 allows creation of shared libraries.
5316
5317 - Library and C preprocessor search paths.
5318
5319 - File changes detected using MD5 signatures.
5320
5321 - User-definable Builder objects for building files.
5322
5323 - User-definable Scanner objects for scanning for dependencies.
5324
5325 - Parallel build (-j) support.
5326
5327 - Dependency cycles detected.
5328
5329 - Linux packages available in RPM and Debian format.
5330
5331 - Windows installer available.
5332
5333 Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCo ns Foundation
5334 src/CHANGES.txt 5134 2010/08/16 23:02:40 bdeegan
OLDNEW
« no previous file with comments | « no previous file | scons-2.0.1/LICENSE » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698