Merged revisions 1884-1905 via svnmerge from
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 18 May 2007 05:40:31 +0000 (05:40 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 18 May 2007 05:40:31 +0000 (05:40 +0000)
http://scons.tigris.org/svn/scons/branches/core

........
  r1891 | stevenknight | 2007-04-24 08:57:03 -0500 (Tue, 24 Apr 2007) | 1 line

  0.96.D632 - Fix 0.96.96 reference count regression during parallel builds.
........
  r1892 | stevenknight | 2007-04-24 12:51:05 -0500 (Tue, 24 Apr 2007) | 1 line

  0.96.D633 - Fix documented default value(s) of $MSVS_USE_MFC_DIRS.
........
  r1893 | stevenknight | 2007-04-24 16:12:14 -0500 (Tue, 24 Apr 2007) | 1 line

  0.96.D634 - Make the DirEntryScanner tolerant of non-Dir nodes.
........
  r1898 | stevenknight | 2007-05-09 15:07:15 -0500 (Wed, 09 May 2007) | 1 line

  0.96.D635 - Portability fixes in test scripts.
........
  r1899 | stevenknight | 2007-05-12 08:19:13 -0500 (Sat, 12 May 2007) | 1 line

  0.96.D636 - Update documentation with rudimentary Tool module descriptions.
........
  r1901 | stevenknight | 2007-05-17 14:32:14 -0500 (Thu, 17 May 2007) | 1 line

  0.97.D001 - Initialize 0.97 for release.
........

git-svn-id: http://scons.tigris.org/svn/scons/trunk@1907 fdb21ef1-2011-0410-befe-b5e4ea1792b1

108 files changed:
HOWTO/release.txt
QMTest/TestSCons.py
README
SConstruct
bin/SConsDoc.py
bin/scons-proc.py
debian/changelog
doc/SConscript
doc/scons.mod
rpm/scons.spec.in
src/CHANGES.txt
src/README.txt
src/RELEASE.txt
src/engine/SCons/Node/NodeTests.py
src/engine/SCons/Node/__init__.py
src/engine/SCons/Scanner/Dir.py
src/engine/SCons/Scanner/DirTests.py
src/engine/SCons/Taskmaster.py
src/engine/SCons/TaskmasterTests.py
src/engine/SCons/Tool/386asm.xml
src/engine/SCons/Tool/BitKeeper.xml
src/engine/SCons/Tool/CVS.xml
src/engine/SCons/Tool/Perforce.xml
src/engine/SCons/Tool/RCS.xml
src/engine/SCons/Tool/SCCS.xml
src/engine/SCons/Tool/Subversion.xml
src/engine/SCons/Tool/aixc++.xml
src/engine/SCons/Tool/aixcc.xml
src/engine/SCons/Tool/aixf77.xml
src/engine/SCons/Tool/aixlink.xml
src/engine/SCons/Tool/applelink.xml
src/engine/SCons/Tool/ar.xml
src/engine/SCons/Tool/as.xml
src/engine/SCons/Tool/bcc32.xml
src/engine/SCons/Tool/c++.xml
src/engine/SCons/Tool/cc.xml
src/engine/SCons/Tool/cvf.xml
src/engine/SCons/Tool/default.xml
src/engine/SCons/Tool/dmd.xml
src/engine/SCons/Tool/dvi.xml
src/engine/SCons/Tool/dvipdf.xml
src/engine/SCons/Tool/dvips.xml
src/engine/SCons/Tool/f77.xml
src/engine/SCons/Tool/f90.xml
src/engine/SCons/Tool/f95.xml
src/engine/SCons/Tool/fortran.xml
src/engine/SCons/Tool/g++.xml
src/engine/SCons/Tool/g77.xml
src/engine/SCons/Tool/gas.xml
src/engine/SCons/Tool/gcc.xml
src/engine/SCons/Tool/gnulink.xml
src/engine/SCons/Tool/gs.xml
src/engine/SCons/Tool/hpc++.xml
src/engine/SCons/Tool/hpcc.xml
src/engine/SCons/Tool/hplink.xml
src/engine/SCons/Tool/icc.xml
src/engine/SCons/Tool/icl.xml
src/engine/SCons/Tool/ifl.xml
src/engine/SCons/Tool/ifort.xml
src/engine/SCons/Tool/ilink.xml
src/engine/SCons/Tool/ilink32.xml
src/engine/SCons/Tool/intelc.xml
src/engine/SCons/Tool/jar.xml
src/engine/SCons/Tool/javac.xml
src/engine/SCons/Tool/javah.xml
src/engine/SCons/Tool/latex.xml
src/engine/SCons/Tool/lex.xml
src/engine/SCons/Tool/link.xml
src/engine/SCons/Tool/linkloc.xml
src/engine/SCons/Tool/m4.xml
src/engine/SCons/Tool/masm.xml
src/engine/SCons/Tool/midl.xml
src/engine/SCons/Tool/mingw.xml
src/engine/SCons/Tool/mslib.xml
src/engine/SCons/Tool/mslink.xml
src/engine/SCons/Tool/msvc.xml
src/engine/SCons/Tool/msvs.xml
src/engine/SCons/Tool/mwcc.xml
src/engine/SCons/Tool/mwld.xml
src/engine/SCons/Tool/nasm.xml
src/engine/SCons/Tool/pdf.xml
src/engine/SCons/Tool/pdflatex.xml
src/engine/SCons/Tool/pdftex.xml
src/engine/SCons/Tool/qt.xml
src/engine/SCons/Tool/rmic.xml
src/engine/SCons/Tool/rpcgen.xml
src/engine/SCons/Tool/sgiar.xml
src/engine/SCons/Tool/sgic++.xml
src/engine/SCons/Tool/sgicc.xml
src/engine/SCons/Tool/sgilink.xml
src/engine/SCons/Tool/sunar.xml
src/engine/SCons/Tool/sunc++.xml
src/engine/SCons/Tool/suncc.xml
src/engine/SCons/Tool/sunlink.xml
src/engine/SCons/Tool/swig.xml
src/engine/SCons/Tool/tar.xml
src/engine/SCons/Tool/tex.xml
src/engine/SCons/Tool/tlib.xml
src/engine/SCons/Tool/yacc.xml
src/engine/SCons/Tool/zip.xml
src/setup.py
test/Dir/Dir.py [moved from test/Dir.py with 100% similarity]
test/Dir/mixed-targets.py [new file with mode: 0644]
test/Dir/source.py [moved from test/DirSource.py with 100% similarity]
test/Parallel/ref_count.py [new file with mode: 0644]
test/Perforce/Perforce.py
test/TEX/bibtex-latex-rerun.py
test/import.py

index a29b37bff8677c834e7706fa63b79ff8a13cd95e..ca46263912549dcdaf724f5508b7dbbefc1af473 100644 (file)
@@ -102,6 +102,9 @@ Things to do to release a new X.Y version of SCons:
         aecp QMTest/TestSCons.py
         vi QMTest/TestSCons.py
 
         aecp QMTest/TestSCons.py
         vi QMTest/TestSCons.py
 
+        aecp src/setup.py
+        vi src/setup.py
+
         # Read through and update the README files if necessary
         [optional] aecp README
         [optional] vi README
         # Read through and update the README files if necessary
         [optional] aecp README
         [optional] vi README
index 1b499deda4f4bc92b8673a65a4457e6fbe60a13e..196c24ef847fd5c8ecf6cf2def074d85fceb4536 100644 (file)
@@ -30,7 +30,7 @@ from TestCommon import __all__
 # to what we expect.  (If we derived the version number from the same
 # data driving the build we might miss errors if the logic breaks.)
 
 # to what we expect.  (If we derived the version number from the same
 # data driving the build we might miss errors if the logic breaks.)
 
-SConsVersion = '0.96.96'
+SConsVersion = '0.97'
 
 __all__.extend([ 'TestSCons',
                  'python',
 
 __all__.extend([ 'TestSCons',
                  'python',
diff --git a/README b/README
index 699d1b517adf1379d34e096bfa3699ece64e0129..6eecb8c40d29e74e18644d3e9e8ad8cdde473a2c 100644 (file)
--- a/README
+++ b/README
@@ -10,12 +10,12 @@ If all you want to do is install and run SCons, it will be easier for you
 to download and install the scons-{version}.tar.gz or scons-{version}.zip
 package rather than to work with the packaging logic in this tree.
 
 to download and install the scons-{version}.tar.gz or scons-{version}.zip
 package rather than to work with the packaging logic in this tree.
 
-To the extent that this tree is about building SCons packages, the
-*full* development cycle (enforced by Aegis) is not to test the code
-directly, but to package SCons, unpack the package, "install" SCons in
-a test subdirectory, and then to run the tests against the unpacked and
-installed software.  This helps eliminate problems caused by, for example,
-failure to update the list of files to be packaged.
+To the extent that this tree is about building SCons packages, the *full*
+development cycle is not just to test the code directly, but to package
+SCons, unpack the package, "install" SCons in a test subdirectory,
+and then to run the tests against the unpacked and installed software.
+This helps eliminate problems caused by, for example, failure to update
+the list of files to be packaged.
 
 For just working on making an individual change to the SCons source,
 however, you don't actually need to build or install SCons; you
 
 For just working on making an individual change to the SCons source,
 however, you don't actually need to build or install SCons; you
@@ -83,11 +83,11 @@ In this case, your options are:
     --  (Optional.)  Install from a pre-packaged SCons package that
         does not require distutils:
 
     --  (Optional.)  Install from a pre-packaged SCons package that
         does not require distutils:
 
-            Red Hat Linux       scons-0.96.96.noarch.rpm
+            Red Hat Linux       scons-0.97.noarch.rpm
 
             Debian GNU/Linux    use apt-get to get the official package
 
 
             Debian GNU/Linux    use apt-get to get the official package
 
-            Windows             scons-0.96.96.win32.exe
+            Windows             scons-0.97.win32.exe
 
     --  (Recommended.)  Download the latest distutils package from the
         following URL:
 
     --  (Recommended.)  Download the latest distutils package from the
         following URL:
@@ -132,7 +132,7 @@ bootstrap/ subdirectory and executing it from there.
 
 You can also execute the local SCons directly from the src/ subdirectory
 by first setting the SCONS_LIB_DIR environment variable to the local
 
 You can also execute the local SCons directly from the src/ subdirectory
 by first setting the SCONS_LIB_DIR environment variable to the local
-src/engine subdirectory, and then execute the local src/script/scons.py
+src/engine subdirectory, and then executing the local src/script/scons.py
 script to populate the build/scons/ subdirectory.  You would do this as
 follows on a Linux or UNIX system (using sh or a derivative like bash
 or ksh):
 script to populate the build/scons/ subdirectory.  You would do this as
 follows on a Linux or UNIX system (using sh or a derivative like bash
 or ksh):
@@ -159,7 +159,7 @@ And on Windows:
 
 By default, the above commands will do the following:
 
 
 By default, the above commands will do the following:
 
-    --  Install the version-numbered "scons-0.96.96" and "sconsign-0.96.96"
+    --  Install the version-numbered "scons-0.97" and "sconsign-0.97"
         scripts in the default system script directory (/usr/bin or
         C:\Python*\Scripts, for example).  This can be disabled by
         specifying the "--no-version-script" option on the command
         scripts in the default system script directory (/usr/bin or
         C:\Python*\Scripts, for example).  This can be disabled by
         specifying the "--no-version-script" option on the command
@@ -170,25 +170,27 @@ By default, the above commands will do the following:
         for example).  This can be disabled by specifying the
         "--no-scons-script" option on the command line, which is useful
         if you want to install and experiment with a new version before
         for example).  This can be disabled by specifying the
         "--no-scons-script" option on the command line, which is useful
         if you want to install and experiment with a new version before
-        making it the default on your system.  On UNIX or Linux systems,
-        you can have the "scons" and "sconsign" scripts be hard links or
-        symbolic links to the "scons-0.96.96" and "sconsign-0.96.96" scripts
-        by specifying the "--hardlink-scons" or "--symlink-scons"
-        options on the command line.
+        making it the default on your system.
 
 
-    --  Install "scons-0.96.96.bat" and "scons.bat" wrapper scripts in the
+        On UNIX or Linux systems, you can have the "scons" and "sconsign"
+        scripts be hard links or symbolic links to the "scons-0.97" and
+        "sconsign-0.97" scripts by specifying the "--hardlink-scons" or
+        "--symlink-scons" options on the command line.
+
+    --  Install "scons-0.97.bat" and "scons.bat" wrapper scripts in the
         Python prefix directory on Windows (C:\Python*, for example).
         This can be disabled by specifying the "--no-install-bat" option
         Python prefix directory on Windows (C:\Python*, for example).
         This can be disabled by specifying the "--no-install-bat" option
-        on the command line.  On UNIX or Linux systems, the
-        "--install-bat" option may be specified to have "scons-0.96.96.bat"
-        and "scons.bat" files installed in the default system script
-        directory, which is useful if you want to install SCons in a
-        shared file system directory that can be used to execute SCons
-        from both UNIX/Linux and Windows systems.
+        on the command line.
+
+        On UNIX or Linux systems, the "--install-bat" option may be
+        specified to have "scons-0.97.bat" and "scons.bat" files installed
+        in the default system script directory, which is useful if you
+        want to install SCons in a shared file system directory that can
+        be used to execute SCons from both UNIX/Linux and Windows systems.
 
     --  Install the SCons build engine (a Python module) in an
         appropriate version-numbered SCons library directory
 
     --  Install the SCons build engine (a Python module) in an
         appropriate version-numbered SCons library directory
-        (/usr/lib/scons-0.96.96 or C:\Python*\scons-0.96.96, for example).
+        (/usr/lib/scons-0.97 or C:\Python*\scons-0.97, for example).
         See below for more options related to installing the build
         engine library.
 
         See below for more options related to installing the build
         engine library.
 
@@ -244,9 +246,9 @@ the src/engine/SCons subdirectory hierarchy that contains all of the
 modules that make up SCons.  The src/script/scons.py wrapper script exists
 mainly to find the appropriate build engine library and then execute it.
 
 modules that make up SCons.  The src/script/scons.py wrapper script exists
 mainly to find the appropriate build engine library and then execute it.
 
-In order to make your own change locally and test them by hand, simply
-edit modules in the local src/engine/SCons subdirectory tree and
-either use the local bootstrap.py script:
+In order to make your own changes locally and test them by hand, simply
+edit modules in the local src/engine/SCons subdirectory tree and either
+use the local bootstrap.py script:
 
     $ python bootstrap.py [arguments]
 
 
     $ python bootstrap.py [arguments]
 
@@ -255,13 +257,13 @@ then execute the src/script/scons.py script.  Here is one way you can
 set up environment variables to do this on a UNIX or Linux system:
 
     $ setenv MYSCONS=`pwd`/src
 set up environment variables to do this on a UNIX or Linux system:
 
     $ setenv MYSCONS=`pwd`/src
-    $ setenv SCONS_LIB_DIR=$MYSCONS
+    $ setenv SCONS_LIB_DIR=$MYSCONS/engine
     $ python $MYSCONS/script/scons.py [arguments]
 
 Or on Windows:
 
     C:\scons>set MYSCONS=%cd%\src
     $ python $MYSCONS/script/scons.py [arguments]
 
 Or on Windows:
 
     C:\scons>set MYSCONS=%cd%\src
-    C:\scons>set SCONS_LIB_DIR=%MYSCONS%
+    C:\scons>set SCONS_LIB_DIR=%MYSCONS%\engine
     C:\scons>python %MYSCONS%\script\scons.py [arguments]
 
 You can use the -C option to have SCons change directory to another
     C:\scons>python %MYSCONS%\script\scons.py [arguments]
 
 You can use the -C option to have SCons change directory to another
@@ -329,7 +331,7 @@ will print messages to your console screen ("/dev/tty" on UNIX or Linux,
 "con" on Windows).  By adding Trace() calls to the SCons source code:
 
     def sample_method(self, value):
 "con" on Windows).  By adding Trace() calls to the SCons source code:
 
     def sample_method(self, value):
-        fromn SCons.Debug import Trace
+        from SCons.Debug import Trace
         Trace('called sample_method(%s, %s)\n' % (self, value))
 
 You can then run automated tests that print any arbitrary information
         Trace('called sample_method(%s, %s)\n' % (self, value))
 
 You can then run automated tests that print any arbitrary information
@@ -340,7 +342,7 @@ The Trace() function can also redirect its output to a file, rather than
 the screen:
 
     def sample_method(self, value):
 the screen:
 
     def sample_method(self, value):
-        fromn SCons.Debug import Trace
+        from SCons.Debug import Trace
         Trace('called sample_method(%s, %s)\n' % (self, value),
               file='trace.out')
 
         Trace('called sample_method(%s, %s)\n' % (self, value),
               file='trace.out')
 
@@ -461,7 +463,7 @@ development platform, Windows users can translate as appropriate)):
             ^D
             $
 
             ^D
             $
 
-   --   Now debug the test failures and fix them, either by changing
+    --  Now debug the test failures and fix them, either by changing
         SCons, or by making necessary changes to the tests (if, for
         example, you have a strong reason to change functionality, or
         if you find that the bug really is in the test script itself).
         SCons, or by making necessary changes to the tests (if, for
         example, you have a strong reason to change functionality, or
         if you find that the bug really is in the test script itself).
@@ -475,10 +477,10 @@ development platform, Windows users can translate as appropriate)):
         Repeat this until all of the tests that originally failed
         now pass.
 
         Repeat this until all of the tests that originally failed
         now pass.
 
-   --   Now you need to go back and validate that any changes you
-        made while getting the tests to pass didn't break the fix you
-        originally put in, or introduce any *additional* unintended side
-        effects that broke other tests:
+    --  Now you need to go back and validate that any changes you
+        made while getting the tests to pass didn't break the fix
+        you originally put in, and didn't introduce any *additional*
+        unintended side effects that broke other tests:
 
             $ python script/scons.py -C /home/me/broken_project .
             $ python runtest.py -a
 
             $ python script/scons.py -C /home/me/broken_project .
             $ python runtest.py -a
@@ -486,8 +488,8 @@ development platform, Windows users can translate as appropriate)):
         If you find any newly-broken tests, add them to your "failed.txt"
         file and go back to the previous step.
 
         If you find any newly-broken tests, add them to your "failed.txt"
         file and go back to the previous step.
 
-Of course, the above is only one suggested workflow.  In practice, there's
-a lot of room for judgment and experience to make things go quicker.
+Of course, the above is only one suggested workflow.  In practice, there
+is a lot of room for judgment and experience to make things go quicker.
 For example, if you're making a change to just the Java support, you
 might start looking for regressions by just running the test/Java/*.py
 tests instead of running all of "runtest.py -a".
 For example, if you're making a change to just the Java support, you
 might start looking for regressions by just running the test/Java/*.py
 tests instead of running all of "runtest.py -a".
@@ -525,18 +527,18 @@ On Windows:
 Depending on the utilities installed on your system, any or all of the
 following packages will be built:
 
 Depending on the utilities installed on your system, any or all of the
 following packages will be built:
 
-        build/dist/scons-0.96.96-1.noarch.rpm
-        build/dist/scons-0.96.96-1.src.rpm
-        build/dist/scons-0.96.96.linux-i686.tar.gz
-        build/dist/scons-0.96.96.tar.gz
-        build/dist/scons-0.96.96.win32.exe
-        build/dist/scons-0.96.96.zip
-        build/dist/scons-doc-0.96.96.tar.gz
-        build/dist/scons-local-0.96.96.tar.gz
-        build/dist/scons-local-0.96.96.zip
-        build/dist/scons-src-0.96.96.tar.gz
-        build/dist/scons-src-0.96.96.zip
-        build/dist/scons_0.96.96-1_all.deb
+        build/dist/scons-0.97-1.noarch.rpm
+        build/dist/scons-0.97-1.src.rpm
+        build/dist/scons-0.97.linux-i686.tar.gz
+        build/dist/scons-0.97.tar.gz
+        build/dist/scons-0.97.win32.exe
+        build/dist/scons-0.97.zip
+        build/dist/scons-doc-0.97.tar.gz
+        build/dist/scons-local-0.97.tar.gz
+        build/dist/scons-local-0.97.zip
+        build/dist/scons-src-0.97.tar.gz
+        build/dist/scons-src-0.97.zip
+        build/dist/scons_0.97-1_all.deb
 
 The SConstruct file is supposed to be smart enough to avoid trying to
 build packages for which you don't have the proper utilities installed.
 
 The SConstruct file is supposed to be smart enough to avoid trying to
 build packages for which you don't have the proper utilities installed.
@@ -609,6 +611,9 @@ bin/
                 SCons itself
             --  a copy of xml_export, which can retrieve project data
                 from SourceForge
                 SCons itself
             --  a copy of xml_export, which can retrieve project data
                 from SourceForge
+            --  scripts and a Python module for translating the SCons
+                home-brew XML documentation tags into DocBook and
+                man page format
 
 bootstrap.py
         A build script for use with Aegis.  This collects a current copy
 
 bootstrap.py
         A build script for use with Aegis.  This collects a current copy
@@ -636,12 +641,6 @@ doc/
         SCons documentation.  A variety of things here, in various
         stages of (in)completeness.
 
         SCons documentation.  A variety of things here, in various
         stages of (in)completeness.
 
-etc/
-        A subdirectory for miscellaneous things that we need.  Right
-        now, it has copies of Python modules that we use for testing,
-        and which we don't want to force people to have to install on
-        their own just to help out with SCons development.
-
 gentoo/
         Stuff to generate files for Gentoo Linux.
 
 gentoo/
         Stuff to generate files for Gentoo Linux.
 
@@ -661,6 +660,10 @@ LICENSE-local
         the licensing terms are for SCons itself, not any other
         package that includes SCons.
 
         the licensing terms are for SCons itself, not any other
         package that includes SCons.
 
+QMTest/
+        The Python modules we use for testing, some generic modules
+        originating elsewhere and some specific to SCons.
+
 README
         What you're looking at right now.
 
 README
         What you're looking at right now.
 
@@ -738,18 +741,18 @@ available at:
 REPORTING BUGS
 ==============
 
 REPORTING BUGS
 ==============
 
-Please report bugs by following the "Tracker - Bugs" link on the SCons
-project page and filling out the form:
+Please report bugs by following the detailed instructions on our Bug
+Submission page:
 
 
-        http://sourceforge.net/projects/scons/
+        http://scons.tigris.org/bug-submission.html
 
 
-You can also send mail to the SCons developers mailing list:
+You can also send mail to the SCons developers' mailing list:
 
 
-        scons-devel@lists.sourceforge.net
+        dev@scons.tigris.org
 
 
-But please make sure that you also submit a bug report to the project
-page bug tracker, because bug reports in email can sometimes get lost
-in the general flood of messages.
+But even if you send email to the mailing list please make sure that you
+ALSO submit a bug report to the project page bug tracker, because bug
+reports in email often get overlooked in the general flood of messages.
 
 
 MAILING LISTS
 
 
 MAILING LISTS
index f0d8c1a31df66dbe5ac9ca644467c5eeafbf1064..a81b37ba126bfdee2643a8f6a9839ef1a8c3582b 100644 (file)
@@ -45,7 +45,7 @@ import sys
 import time
 
 project = 'scons'
 import time
 
 project = 'scons'
-default_version = '0.96.96'
+default_version = '0.97'
 copyright = "Copyright (c) %s The SCons Foundation" % copyright_years
 
 SConsignFile()
 copyright = "Copyright (c) %s The SCons Foundation" % copyright_years
 
 SConsignFile()
index 57bf1d4d343b2f7aaefa5792de535b6b65471340..96625b46745edd2e60e036c6955192a0e10e0d08 100644 (file)
@@ -94,6 +94,7 @@ class Item:
         if self.sort_name[0] == '_':
             self.sort_name = self.sort_name[1:]
         self.summary = []
         if self.sort_name[0] == '_':
             self.sort_name = self.sort_name[1:]
         self.summary = []
+        self.sets = None
         self.uses = None
     def cmp_name(self, name):
         if name[0] == '_':
         self.uses = None
     def cmp_name(self, name):
         if name[0] == '_':
@@ -284,6 +285,14 @@ class SConsDocHandler(xml.sax.handler.ContentHandler,
         self.begin_collecting([])
     def end_uses(self):
         self.current_object.uses = ''.join(self.collect).split()
         self.begin_collecting([])
     def end_uses(self):
         self.current_object.uses = ''.join(self.collect).split()
+        self.current_object.uses.sort()
+        self.end_collecting()
+
+    def start_sets(self, attrs):
+        self.begin_collecting([])
+    def end_sets(self):
+        self.current_object.sets = ''.join(self.collect).split()
+        self.current_object.sets.sort()
         self.end_collecting()
 
     # Stuff for the ErrorHandler portion.
         self.end_collecting()
 
     # Stuff for the ErrorHandler portion.
index d55016fe6bf271ab1fe7005e68e76715f97113d0..fc60a9bd3d05d0e6bbb6c944742e6407836befc6 100644 (file)
@@ -23,8 +23,8 @@ import SConsDoc
 base_sys_path = [os.getcwd() + '/build/test-tar-gz/lib/scons'] + sys.path
 
 helpstr = """\
 base_sys_path = [os.getcwd() + '/build/test-tar-gz/lib/scons'] + sys.path
 
 helpstr = """\
-Usage: scons-proc.py [--man|--sgml] \
-                        [-b file(s)] [-t file(s)] [-v file(s)] [infile ...]
+Usage: scons-proc.py [--man|--sgml]
+                     [-b file(s)] [-t file(s)] [-v file(s)] [infile ...]
 Options:
   -b file(s)        dump builder information to the specified file(s)
   -t file(s)        dump tool information to the specified file(s)
 Options:
   -b file(s)        dump builder information to the specified file(s)
   -t file(s)        dump tool information to the specified file(s)
@@ -36,8 +36,9 @@ Options:
 """
 
 opts, args = getopt.getopt(sys.argv[1:],
 """
 
 opts, args = getopt.getopt(sys.argv[1:],
-                           "b:t:v:",
-                           ['builders=', 'man', 'sgml', 'tools=', 'variables='])
+                           "b:ht:v:",
+                           ['builders=', 'help',
+                            'man', 'sgml', 'tools=', 'variables='])
 
 buildersfiles = None
 output_type = '--sgml'
 
 buildersfiles = None
 output_type = '--sgml'
@@ -47,6 +48,9 @@ variablesfiles = None
 for o, a in opts:
     if o in ['-b', '--builders']:
         buildersfiles = a
 for o, a in opts:
     if o in ['-b', '--builders']:
         buildersfiles = a
+    elif o in ['-h', '--help']:
+        sys.stdout.write(helpstr)
+        sys.exit(0)
     elif o in ['--man', '--sgml']:
         output_type = o
     elif o in ['-t', '--tools']:
     elif o in ['--man', '--sgml']:
         output_type = o
     elif o in ['-t', '--tools']:
@@ -146,11 +150,16 @@ class SCons_XML_to_SGML(SCons_XML):
             f.write('<listitem>\n')
             for chunk in v.summary.body:
                 f.write(str(chunk))
             f.write('<listitem>\n')
             for chunk in v.summary.body:
                 f.write(str(chunk))
-            #if v.uses:
-            #    u = map(lambda x, s: '&%slink-%s;' % (s.prefix, x), v.uses)
-            #    f.write('<para>\n')
-            #    f.write('Uses:  ' + ', '.join(u) + '.\n')
-            #    f.write('</para>\n')
+            if v.sets:
+                s = map(lambda x: '&cv-link-%s;' % x, v.sets)
+                f.write('<para>\n')
+                f.write('Sets:  ' + ', '.join(s) + '.\n')
+                f.write('</para>\n')
+            if v.uses:
+                u = map(lambda x: '&cv-link-%s;' % x, v.uses)
+                f.write('<para>\n')
+                f.write('Uses:  ' + ', '.join(u) + '.\n')
+                f.write('</para>\n')
             f.write('</listitem>\n')
             f.write('</varlistentry>\n')
     def write_mod(self, filename):
             f.write('</listitem>\n')
             f.write('</varlistentry>\n')
     def write_mod(self, filename):
index 063cba417bc1e9911064554b0b7424daeb2e8211..441f57292bc2269c12123f60e197fdbaf4762981 100644 (file)
@@ -1,8 +1,8 @@
-scons (0.96-96) unstable; urgency=low
+scons (0.97) unstable; urgency=low
 
 
-  * Pre-release of eighth beta release.
+  * Eighth beta release.
 
 
- -- Steven Knight <knight@baldmt.com>  Thu, 12 Apr 2007 12:36:25 -0500
+ -- Steven Knight <knight@baldmt.com>  Thu, 17 May 2007 08:59:41 -0500
 
 
 scons (0.96-1) unstable; urgency=low
 
 
 scons (0.96-1) unstable; urgency=low
index 7617974358800f3ed4ee2d27fabd6be560634ce0..8316e6ee196dd395d038b03a9c023739cf943767 100644 (file)
@@ -295,7 +295,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE.  DO NOT EDIT.
             ]
             if tidy:
                 cmds.append("tidy -m -q $TARGET || true")
             ]
             if tidy:
                 cmds.append("tidy -m -q $TARGET || true")
-            env.Command(htmlindex, main, cmds)
+            env.Command(htmlindex, File(main), cmds)
             Local(htmlindex)
 
             cmds = [
             Local(htmlindex)
 
             cmds = [
@@ -305,7 +305,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE.  DO NOT EDIT.
             ]
             if tidy:
                 cmds.append("tidy -m -q $TARGET || true")
             ]
             if tidy:
                 cmds.append("tidy -m -q $TARGET || true")
-            env.Command(html, main, cmds)
+            env.Command(html, File(main), cmds)
             Local(html)
 
             env.Ignore([html, htmlindex], version_sgml)
             Local(html)
 
             env.Ignore([html, htmlindex], version_sgml)
index aa1a0b99dbad0ed7ffc1666a82cfb600583616ac..bbb20f07e4ec83a7e7db83fb2543b5aabf986468 100644 (file)
 
 -->
 
 
 -->
 
-<!ENTITY Aegis "<application>Aegis</application>">
-<!ENTITY Ant "<application>Ant</application>">
-<!ENTITY Autoconf "<application>Autoconf</application>">
-<!ENTITY Automake "<application>Automake</application>">
-<!ENTITY cc "<application>cc</application>">
-<!ENTITY Cons "<application>Cons</application>">
-<!ENTITY cp "<application>cp</application>">
-<!ENTITY csh "<application>csh</application>">
-<!ENTITY gcc "<application>gcc</application>">
-<!ENTITY Jam "<application>Jam</application>">
-<!ENTITY jar "<application>jar</application>">
-<!ENTITY javac "<application>javac</application>">
-<!ENTITY javah "<application>javah</application>">
-<!ENTITY Make "<application>Make</application>">
-<!ENTITY Makepp "<application>Make++</application>">
-<!ENTITY Python "<application>Python</application>">
-<!ENTITY ranlib "<application>ranlib</application>">
-<!ENTITY rmic "<application>rmic</application>">
-<!ENTITY SCons "<application>SCons</application>">
-<!ENTITY scons "<application>scons</application>">
-<!ENTITY ScCons "<application>ScCons</application>">
-<!ENTITY tar "<application>tar</application>">
-<!ENTITY touch "<application>touch</application>">
-<!ENTITY zip "<application>zip</application>">
+<!ENTITY Aegis          "<application>Aegis</application>">
+<!ENTITY Ant            "<application>Ant</application>">
+<!ENTITY ar             "<application>ar</application>">
+<!ENTITY as             "<application>as</application>">
+<!ENTITY Autoconf       "<application>Autoconf</application>">
+<!ENTITY Automake       "<application>Automake</application>">
+<!ENTITY cc             "<application>cc</application>">
+<!ENTITY Cons           "<application>Cons</application>">
+<!ENTITY cp             "<application>cp</application>">
+<!ENTITY csh            "<application>csh</application>">
+<!ENTITY gas            "<application>gas</application>">
+<!ENTITY gcc            "<application>gcc</application>">
+<!ENTITY g77            "<application>g77</application>">
+<!ENTITY gXX            "<application>gXX</application>">
+<!ENTITY Jam            "<application>Jam</application>">
+<!ENTITY jar            "<application>jar</application>">
+<!ENTITY javac          "<application>javac</application>">
+<!ENTITY javah          "<application>javah</application>">
+<!ENTITY latex          "<application>latex</application>">
+<!ENTITY lex            "<application>lex</application>">
+<!ENTITY m4             "<application>m4</application>">
+<!ENTITY Make           "<application>Make</application>">
+<!ENTITY Makepp         "<application>Make++</application>">
+<!ENTITY pdflatex       "<application>pdflatex</application>">
+<!ENTITY pdftex         "<application>pdftex</application>">
+<!ENTITY Python         "<application>Python</application>">
+<!ENTITY ranlib         "<application>ranlib</application>">
+<!ENTITY rmic           "<application>rmic</application>">
+<!ENTITY SCons          "<application>SCons</application>">
+<!ENTITY scons          "<application>scons</application>">
+<!ENTITY ScCons         "<application>ScCons</application>">
+<!ENTITY tar            "<application>tar</application>">
+<!ENTITY tex            "<application>tex</application>">
+<!ENTITY touch          "<application>touch</application>">
+<!ENTITY yacc           "<application>yacc</application>">
+<!ENTITY zip            "<application>zip</application>">
 
 
 <!--
 
 
 <!--
index 3b4865b7717efeabe53a6b3f816102e2d008ffdb..86cd7f558baef76bff470df51cd3bd106a8940ae 100644 (file)
@@ -1,5 +1,5 @@
 %define name scons
 %define name scons
-%define version 0.96.96
+%define version 0.97
 %define release 1
 
 Summary: an Open Source software construction tool
 %define release 1
 
 Summary: an Open Source software construction tool
index a52a6b7f1aa795c25f085b64eb56ee47d55245b1..a47992a70d26b9d95a69bb18ccdd38370b445813 100644 (file)
@@ -8,6 +8,20 @@
 
 
 
 
 
 
+RELEASE 0.97 - Thu, 17 May 2007 08:59:41 -0500
+
+  From Steven Knight:
+
+  - Fix a bug that would make parallel builds stop in their tracks if
+    Nodes that depended on lists that contained some Nodes built together
+    caused the reference count to drop below 0 if the Nodes were visited
+    and commands finished in the wrong order.
+
+  - Make sure the DirEntryScanner doesn't choke if it's handed something
+    that's not a directory (Node.FS.Dir) Node.
+
+
+
 RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
 
   NOTE:  This is (Yet) a(nother) pre-release of 0.97 for testing purposes.
 RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
 
   NOTE:  This is (Yet) a(nother) pre-release of 0.97 for testing purposes.
index a89690040293f97112bf76297cc9137fee54857b..8c7149810169b36377857fa295fd95b9020bc459 100644 (file)
@@ -99,21 +99,24 @@ By default, the above command will do the following:
         for example).  This can be disabled by specifying the
         "--no-scons-script" option on the command line, which is useful
         if you want to install and experiment with a new version before
         for example).  This can be disabled by specifying the
         "--no-scons-script" option on the command line, which is useful
         if you want to install and experiment with a new version before
-        making it the default on your system.  On UNIX or Linux systems,
-        you can have the "scons" and "sconsign" scripts be hard links or
-        symbolic links to the "scons-__VERSION__" and "sconsign-__VERSION__" scripts
-        by specifying the "--hardlink-scons" or "--symlink-scons"
-        options on the command line.
+        making it the default on your system.
+
+        On UNIX or Linux systems, you can have the "scons" and "sconsign"
+        scripts be hard links or symbolic links to the "scons-__VERSION__" and
+        "sconsign-__VERSION__" scripts by specifying the "--hardlink-scons"
+        or "--symlink-scons" options on the command line.
 
     --  Install "scons-__VERSION__.bat" and "scons.bat" wrapper scripts in the
         Python prefix directory on Windows (C:\Python*, for example).
         This can be disabled by specifying the "--no-install-bat" option
 
     --  Install "scons-__VERSION__.bat" and "scons.bat" wrapper scripts in the
         Python prefix directory on Windows (C:\Python*, for example).
         This can be disabled by specifying the "--no-install-bat" option
-        on the command line.  On UNIX or Linux systems, the
-        "--install-bat" option may be specified to have "scons-__VERSION__.bat"
-        and "scons.bat" files installed in the default system script
-        directory, which is useful if you want to install SCons in a
-        shared file system directory that can be used to execute SCons
-        from both UNIX/Linux and Windows systems.
+        on the command line.
+
+        On UNIX or Linux systems, the "--install-bat" option may be
+        specified to have "scons-__VERSION__.bat" and "scons.bat" files
+        installed in the default system script directory, which is useful
+        if you want to install SCons in a shared file system directory
+        that can be used to execute SCons from both UNIX/Linux and
+        Windows systems.
 
     --  Install the SCons build engine (a Python module) in an
         appropriate version-numbered SCons library directory
 
     --  Install the SCons build engine (a Python module) in an
         appropriate version-numbered SCons library directory
@@ -196,18 +199,18 @@ available at:
 REPORTING BUGS
 ==============
 
 REPORTING BUGS
 ==============
 
-Please report bugs by following the "Tracker - Bugs" link on the SCons
-project page and filling out the form:
+Please report bugs by following the detailed instructions on our Bug
+Submission page:
 
 
-        http://sourceforge.net/projects/scons/
+        http://scons.tigris.org/bug-submission.html
 
 
-You can also send mail to the SCons developers mailing list:
+You can also send mail to the SCons developers' mailing list:
 
 
-        scons-devel@lists.sourceforge.net
+        dev@scons.tigris.org
 
 
-But please make sure that you also submit a bug report to the project
-page bug tracker, because bug reports in email can sometimes get lost
-in the general flood of messages.
+But even if you send email to the mailing list please make sure that you
+ALSO submit a bug report to the project page bug tracker, because bug
+reports in email often get overlooked in the general flood of messages.
 
 
 MAILING LISTS
 
 
 MAILING LISTS
@@ -262,12 +265,9 @@ With plenty of help from the SCons Development team:
         Chad Austin
         Charles Crain
         Steve Leblanc
         Chad Austin
         Charles Crain
         Steve Leblanc
-        Baptiste Lepilleur
-        Elliot Murphy
+        Greg Noel
         Gary Oberbrunner
         Anthony Roach
         Gary Oberbrunner
         Anthony Roach
-        Greg Noel
-        Kevin Quick
         Greg Spencer
         Christoph Wiedemann
 
         Greg Spencer
         Christoph Wiedemann
 
index b7d701f809146110b0dcc78cb14bdc119fc0b50d..b19a39cd77bea9e49f704394d4fb39c2f5da61b7 100644 (file)
@@ -20,11 +20,10 @@ more effectively, please sign up for the scons-users mailing list at:
 
 
 
 
 
 
-RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
+RELEASE 0.97 - Thu, 12 Apr 2007 12:36:25 -0500
 
 
-  This is a pre-release for testing the eighth beta release of SCons.
-  Please consult the CHANGES.txt file for a list of specific changes
-  since last release.
+  This is the eighth beta release of SCons.  Please consult the
+  CHANGES.txt file for a list of specific changes since last release.
 
   Please note the following important changes since release 0.96.93:
 
 
   Please note the following important changes since release 0.96.93:
 
@@ -47,9 +46,9 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
         On all POSIX systems, the default execution PATH variable has had
         the /opt/bin directory added after the /usr/local/bin directory
         and before /bin and /usr/bin directories.  This may cause SCons
         On all POSIX systems, the default execution PATH variable has had
         the /opt/bin directory added after the /usr/local/bin directory
         and before /bin and /usr/bin directories.  This may cause SCons
-        to find and/or different compilers, linkers, etc. if you have
-        any same-named utilities installed in /opt/bin that it previously
-        found in /bin or /usr/bin.
+        to find and/or use different compilers, linkers, etc., if you
+        have any same-named utilities installed in /opt/bin that SCons
+        previously found in /bin or /usr/bin.
 
         On Mac OS X (Darwin) systems, the /sw/bin directory has been added
         to the end of the default execution PATH.  This may cause SCons
 
         On Mac OS X (Darwin) systems, the /sw/bin directory has been added
         to the end of the default execution PATH.  This may cause SCons
@@ -147,11 +146,12 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
 
           --  NORMALIZED PATHS IN SConsignFile() DATABASES ON WINDOWS
 
 
           --  NORMALIZED PATHS IN SConsignFile() DATABASES ON WINDOWS
 
-              When using an SConsignFile() database, instead of individual
-              .sconsign files in each directory, the path names are
-              stored in normalized form with / (forward slash) separating
-              the elements.  This may cause rebuilds on Windows systems
-              with hierarchical configurations.
+              When using an SConsignFile() database, instead of
+              individual .sconsign files in each directory, the path
+              names are stored in normalized form with / (forward slash)
+              separating the elements.  This may cause rebuilds when
+              upgrading to SCons 0.97 on Windows systems with hierarchical
+              build configurations.
 
           --  STORED DEPENDENCY PATHS ARE NOW RELATIVE TO THE TARGET
 
 
           --  STORED DEPENDENCY PATHS ARE NOW RELATIVE TO THE TARGET
 
@@ -163,26 +163,27 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
               causing unnecessary rebuilds due to an intermediate file in
               one build being treated as a source file in a nother build.
 
               causing unnecessary rebuilds due to an intermediate file in
               one build being treated as a source file in a nother build.
 
-              This a step towards making it possible to write a hierarchy
-              of SConstruct files that allow developers to build just
-              one portion of a tree wherever there's an SConstruct file.
-              (Note that this would still require some specific code at
-              the top of each SConstruct file, but we hope to make this
-              an easier/more naturally supported thing in the future.)
+              This is a step towards making it possible to write a
+              hierarchy of SConstruct files that allow developers
+              to build just one portion of a tree wherever there's an
+              SConstruct file.  (Note that this would still require some
+              specific code at the top of each SConstruct file, but we
+              hope to make this an easier/more naturally supported thing
+              in the future.)
 
           --  PYTHON FUNCTION ACTION SIGNATURES HAVE CHANGED TO AVOID
               FUTURE REBUILDS AND REBUILDS BETWEEN PYTHON VERSIONS
 
 
           --  PYTHON FUNCTION ACTION SIGNATURES HAVE CHANGED TO AVOID
               FUTURE REBUILDS AND REBUILDS BETWEEN PYTHON VERSIONS
 
-              SCons Actions for Python functions use the functions byte
-              code to generate their signature.  The byte code in older
-              versions of Python includes indications of the line numbers
-              at which the function's code appeared in its original
-              source file, which means that changes in the location of
-              an otherwise unmodified Python function would trigger
-              rebuilds.  The line number byte codes are now removed
-              from the signature, which will cause any targets built by
-              Python function Actions (including various pre-supplied
-              SCons Actions) be rebuilt.
+              SCons Actions for Python functions use the function's
+              byte code to generate their signature.  The byte code
+              in older versions of Python includes indications of the
+              line numbers at which the function's code appeared in
+              its original source file, which means that changes in the
+              location of an otherwise unmodified Python function would
+              trigger rebuilds.  The line number byte codes are now
+              removed from the signature, which will cause any targets
+              built by Python function Actions (including various
+              pre-supplied SCons Actions) to be rebuilt.
 
           --  REMOVED CONVERSION FROM PRE-0.96 .sconsign FORMATS
 
 
           --  REMOVED CONVERSION FROM PRE-0.96 .sconsign FORMATS
 
@@ -193,10 +194,11 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
 
           --  ORDER OF -o FLAGS ON CERTAIN LINK COMMAND LINES HAS CHANGED
 
 
           --  ORDER OF -o FLAGS ON CERTAIN LINK COMMAND LINES HAS CHANGED
 
-              The -o flag that specifies an output file has been moved on
-              certain linker command lines to place it consistently after
-              the link command itself.  This will cause recompilation
-              of target files created by these changed lines.
+              The -o flag that specifies an output file has been moved
+              on certain linker command lines to place it consistently
+              right after the link command itself.  This will cause
+              recompilation of target files created by these changed
+              lines.
 
     --  F95 AND F90 COMPILERS ARE NOW PREFERRED OVER F77
 
 
     --  F95 AND F90 COMPILERS ARE NOW PREFERRED OVER F77
 
@@ -561,10 +563,10 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
 
   KNOWN PROBLEMS IN THIS RELEASE:
 
 
   KNOWN PROBLEMS IN THIS RELEASE:
 
-    For a complete list of known problems, consult the SCons bug tracker
-    page at SourceForge:
+    For a complete list of known problems, consult the SCons Issue Tracker
+    at tigris.org:
 
 
-        http://sourceforge.net/tracker/?atid=398971&group_id=30337&func=browse
+        http://scons.tigris.org/project_issues.html
 
     - Support for parallel builds (-j) does not work on WIN32 systems
       prior to *official* Python release 2.2 (not 2.2 pre-releases).
 
     - Support for parallel builds (-j) does not work on WIN32 systems
       prior to *official* Python release 2.2 (not 2.2 pre-releases).
@@ -618,15 +620,6 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
 
     - Unicode characters in path names do not work in all circumstances.
 
 
     - Unicode characters in path names do not work in all circumstances.
 
-    - A stray source file in a BuildDir can prevent targets from being
-      (re)built when they should.
-
-    - SCons does not automatically rebuild LaTeX files when the file
-      has an undefined reference on the first build.
-
-    - Use of --implicit-cache with TargetSignatures('content') can,
-      for some changes, not rebuild a file when necessary.
-
     - SCons does not currently automatically check out SConstruct or
       SConscript files from SCCS, RCS or BitKeeper.
 
     - SCons does not currently automatically check out SConstruct or
       SConscript files from SCCS, RCS or BitKeeper.
 
index 50de2b0a265659677f4d3941beed059e1daa3492..ad9eb66064bfc34ee8510cec551d3e3c689053ed 100644 (file)
@@ -1314,8 +1314,11 @@ class NodeTestCase(unittest.TestCase):
         n1 = SCons.Node.Node()
         n2 = SCons.Node.Node()
         assert n1.waiting_parents == {}, n1.waiting_parents
         n1 = SCons.Node.Node()
         n2 = SCons.Node.Node()
         assert n1.waiting_parents == {}, n1.waiting_parents
-        n1.add_to_waiting_parents(n2)
+        r = n1.add_to_waiting_parents(n2)
+        assert r == 1, r
         assert n1.waiting_parents == {n2:1}, n1.waiting_parents
         assert n1.waiting_parents == {n2:1}, n1.waiting_parents
+        r = n1.add_to_waiting_parents(n2)
+        assert r == 0, r
 
     def test_call_for_all_waiting_parents(self):
         """Test the call_for_all_waiting_parents() method"""
 
     def test_call_for_all_waiting_parents(self):
         """Test the call_for_all_waiting_parents() method"""
index fa682a201fa225abaa48f95548b66e81594052d1..6644d7a5b706269bb259cf9c86f55045cea54f7a 100644 (file)
@@ -336,7 +336,20 @@ class Node:
         self.waiting_s_e[node] = 1
 
     def add_to_waiting_parents(self, node):
         self.waiting_s_e[node] = 1
 
     def add_to_waiting_parents(self, node):
-        self.waiting_parents[node] = 1
+        """
+        Returns the number of nodes added to our waiting parents list:
+        1 if we add a unique waiting parent, 0 if not.  (Note that the
+        returned values are intended to be used to increment a reference
+        count, so don't think you can "clean up" this function by using
+        True and False instead...)
+        """
+        wp = self.waiting_parents
+        if wp.has_key(node):
+            result = 0
+        else:
+            result = 1
+        wp[node] = 1
+        return result
 
     def call_for_all_waiting_parents(self, func):
         func(self)
 
     def call_for_all_waiting_parents(self, func):
         func(self)
index 535150a69664bf2fd351d1b6b6d6359337ae114c..9203fb270bf697ac6983624adf1084bb4569b86f 100644 (file)
@@ -92,6 +92,14 @@ def scan_in_memory(node, env, path=()):
     """
     "Scans" a Node.FS.Dir for its in-memory entries.
     """
     """
     "Scans" a Node.FS.Dir for its in-memory entries.
     """
-    entry_list = filter(do_not_scan, node.entries.keys())
+    try:
+        entries = node.entries
+    except AttributeError:
+        # It's not a Node.FS.Dir (or doesn't look enough like one for
+        # our purposes), which can happen if a target list containing
+        # mixed Node types (Dirs and Files, for example) has a Dir as
+        # the first entry.
+        return []
+    entry_list = filter(do_not_scan, entries.keys())
     entry_list.sort()
     entry_list.sort()
-    return map(lambda n, e=node.entries: e[n], entry_list)
+    return map(lambda n, e=entries: e[n], entry_list)
index 0dde95e3db7935e8ffb8aa806f74a69292471373..5f180bcb6b27d9ac3953354bd45179d98f583cf1 100644 (file)
@@ -50,6 +50,8 @@ class DummyEnvironment:
         return self.fs.Dir(name)
     def Entry(self, name):
         return self.fs.Entry(name)
         return self.fs.Dir(name)
     def Entry(self, name):
         return self.fs.Entry(name)
+    def File(self, name):
+        return self.fs.File(name)
     def get_factory(self, factory):
         return factory or self.fs.Entry
 
     def get_factory(self, factory):
         return factory or self.fs.Entry
 
@@ -77,7 +79,7 @@ class DirScannerTestBase(unittest.TestCase):
         self.test.write(['dir', 'sub', '.sconsign.dir'], "dir/.sconsign.dir\n")
         self.test.write(['dir', 'sub', '.sconsign.pag'], "dir/.sconsign.pag\n")
 
         self.test.write(['dir', 'sub', '.sconsign.dir'], "dir/.sconsign.dir\n")
         self.test.write(['dir', 'sub', '.sconsign.pag'], "dir/.sconsign.pag\n")
 
-class DirScannerTestCase1(DirScannerTestBase):
+class DirScannerTestCase(DirScannerTestBase):
     def runTest(self):
         env = DummyEnvironment(self.test.workpath())
 
     def runTest(self):
         env = DummyEnvironment(self.test.workpath())
 
@@ -100,7 +102,7 @@ class DirScannerTestCase1(DirScannerTestBase):
         sss = map(str, deps)
         assert sss == expect, sss
 
         sss = map(str, deps)
         assert sss == expect, sss
 
-class DirScannerTestCase2(DirScannerTestBase):
+class DirEntryScannerTestCase(DirScannerTestBase):
     def runTest(self):
         env = DummyEnvironment(self.test.workpath())
 
     def runTest(self):
         env = DummyEnvironment(self.test.workpath())
 
@@ -114,10 +116,15 @@ class DirScannerTestCase2(DirScannerTestBase):
         sss = map(str, deps)
         assert sss == [], sss
 
         sss = map(str, deps)
         assert sss == [], sss
 
+        # Make sure we don't blow up if handed a non-Dir node.
+        deps = s(env.File('dir/f1'), env, ())
+        sss = map(str, deps)
+        assert sss == [], sss
+
 def suite():
     suite = unittest.TestSuite()
 def suite():
     suite = unittest.TestSuite()
-    suite.addTest(DirScannerTestCase1())
-    suite.addTest(DirScannerTestCase2())
+    suite.addTest(DirScannerTestCase())
+    suite.addTest(DirEntryScannerTestCase())
     return suite
 
 if __name__ == "__main__":
     return suite
 
 if __name__ == "__main__":
index 4de35f0d68af71c5a657e7e409a6f17a4484becc..9a5011b3307c5913eaa8f0d5983cbdae454aa783 100644 (file)
@@ -52,6 +52,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
 import SCons.compat
 
 
 import SCons.compat
 
+import operator
 import string
 import sys
 import traceback
 import string
 import sys
 import traceback
@@ -577,8 +578,8 @@ class Taskmaster:
                 # when they've finished building, our implicit dependency
                 # list will get cleared and we'll re-scan the newly-built
                 # file(s) for updated implicit dependencies.
                 # when they've finished building, our implicit dependency
                 # list will get cleared and we'll re-scan the newly-built
                 # file(s) for updated implicit dependencies.
-                map(lambda n, P=node: n.add_to_waiting_parents(P), not_started)
-                node.ref_count = len(set(not_started))
+                added = map(lambda n, P=node: n.add_to_waiting_parents(P), not_started)
+                node.ref_count = node.ref_count + reduce(operator.add, added, 0)
 
                 # Now we add these derived targets to the candidates
                 # list so they can be examined and built.  We have to
 
                 # Now we add these derived targets to the candidates
                 # list so they can be examined and built.  We have to
@@ -612,8 +613,8 @@ class Taskmaster:
                 # so that when they've finished building, our implicit
                 # dependency list will get cleared and we'll re-scan the
                 # newly-built file(s) for updated implicit dependencies.
                 # so that when they've finished building, our implicit
                 # dependency list will get cleared and we'll re-scan the
                 # newly-built file(s) for updated implicit dependencies.
-                map(lambda n, P=node: n.add_to_waiting_parents(P), not_built)
-                node.ref_count = len(set(not_built))
+                added = map(lambda n, P=node: n.add_to_waiting_parents(P), not_built)
+                node.ref_count = node.ref_count + reduce(operator.add, added, 0)
 
                 if S: S.not_built = S.not_built + 1
                 if T:
 
                 if S: S.not_built = S.not_built + 1
                 if T:
index f74cf347392194b68fdbaacd817ad7eef832c44e..757306fc9a79fc557c91d5c56ef963a36a68f1e5 100644 (file)
@@ -54,6 +54,7 @@ class Node:
         self.csig = None
         self.state = SCons.Node.no_state
         self.prepared = None
         self.csig = None
         self.state = SCons.Node.no_state
         self.prepared = None
+        self.ref_count = 0
         self.waiting_parents = {}
         self.waiting_s_e = {}
         self.side_effect = 0
         self.waiting_parents = {}
         self.waiting_s_e = {}
         self.side_effect = 0
@@ -112,7 +113,13 @@ class Node:
         return self.name
 
     def add_to_waiting_parents(self, node):
         return self.name
 
     def add_to_waiting_parents(self, node):
-        self.waiting_parents[node] = 1
+        wp = self.waiting_parents
+        if wp.has_key(node):
+            result = 0
+        else:
+            result = 1
+        wp[node] = 1
+        return result
 
     def call_for_all_waiting_parents(self, func):
         func(self)
 
     def call_for_all_waiting_parents(self, func):
         func(self)
index bb36048259927856e1812f7769ab1f499962d76a..824e060e567a35e3320b28ce36f79e743f9669a6 100644 (file)
@@ -6,6 +6,20 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="386asm">
 <summary>
 -->
 <tool name="386asm">
 <summary>
-XXX
+Sets construction variables for the 386ASM assembler
+for the Phar Lap ETS embedded operating system.
 </summary>
 </summary>
+<sets>
+AS
+ASFLAGS
+ASPPFLAGS
+ASCOM
+ASPPCOM
+</sets>
+<uses>
+CC
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
 </tool>
 </tool>
index 8ab704977a1295213377daff4c85bd37a866dda8..d0e42d725d89c070df7785177600d34b31a075e6 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="BitKeeper">
 <summary>
 -->
 <tool name="BitKeeper">
 <summary>
-XXX
+Sets construction variables for the BitKeeper
+source code control system.
 </summary>
 </summary>
+<sets>
+BITKEEPER
+BITKEEPERGET
+BITKEEPERGETFLAGS
+BITKEEPERCOM
+</sets>
+<uses>
+BITKEEPERCOMSTR
+</uses>
 </tool>
 
 <cvar name="BITKEEPER">
 </tool>
 
 <cvar name="BITKEEPER">
index fb666e8ffeba67b1d9cc2e19e1f12f61ad676868..3d8c055ec06351b0dcdc5475f587ba3c91b5a2b2 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="CVS">
 <summary>
 -->
 <tool name="CVS">
 <summary>
-XXX
+Sets construction variables for the CVS source code
+management system.
 </summary>
 </summary>
+<sets>
+CVS
+CVSCOM
+CVSFLAGS
+CVSCOFLAGS
+</sets>
+<uses>
+CVSCOMSTR
+</uses>
 </tool>
 
 <cvar name="CVS">
 </tool>
 
 <cvar name="CVS">
index b8824ed0b8cdb8a5f78db07267cb8db3b39dd02e..bc7ffed33569911cde47ab526fc5b2fa30f32e42 100644 (file)
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="Perforce">
 <summary>
 -->
 <tool name="Perforce">
 <summary>
-XXX
+Sets construction variables for interacting with the
+Perforce source code management system.
 </summary>
 </summary>
+<sets>
+P4
+P4FLAGS
+P4COM
+</sets>
+<uses>
+P4COMSTR
+</uses>
 </tool>
 
 <cvar name="P4">
 </tool>
 
 <cvar name="P4">
index 2c89a5b69cb0924b434b45a7d3d4715baf5f6dc0..c81cf940cd195d0458f5e6a7d5cb7481db0515bb 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="RCS">
 <summary>
 -->
 <tool name="RCS">
 <summary>
-XXX
+Sets construction variables for the interaction
+with the Revision Control System.
 </summary>
 </summary>
+<sets>
+RCS
+RCS_CO
+RCS_COFLAGS
+RCS_COCOM
+</sets>
+<uses>
+RCS_COCOMSTR
+</uses>
 </tool>
 
 <cvar name="RCS">
 </tool>
 
 <cvar name="RCS">
index 9f7539df06ce0b2cbec197058a69e29698cfa4b0..5a55bdae660f8a3ccd14200d577903f4d768e87a 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="SCCS">
 <summary>
 -->
 <tool name="SCCS">
 <summary>
-XXX
+Sets construction variables for interacting with the
+Source Code Control System.
 </summary>
 </summary>
+<sets>
+SCCS
+SCCSFLAGS
+SCCSGETFLAGS
+SCCSCOM
+</sets>
+<uses>
+SCCSCOMSTR
+</uses>
 </tool>
 
 <cvar name="SCCS">
 </tool>
 
 <cvar name="SCCS">
index c3a4f5f22961606c3ed51236a14276fbf3579596..adbd2b725723fb0edf05fb6a4850eaa0e59b2ba1 100644 (file)
@@ -4,11 +4,21 @@ __COPYRIGHT__
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
+<!--
 <tool name="Subversion">
 <summary>
 <tool name="Subversion">
 <summary>
-XXX
+Sets construction variables for interacting with Subversion.
 </summary>
 </summary>
+<sets>
+SVN
+SVNFLAGS
+SVNCOM
+</sets>
+<uses>
+SVNCOMSTR
+</uses>
 </tool>
 </tool>
+-->
 
 <!--
 <cvar name="SVN">
 
 <!--
 <cvar name="SVN">
index 2f03aa65d1a6df88d7e6ce6b3bce1d128d59e733..05b4dd64f810ec90b189a439de3b0d520f9c2bee 100644 (file)
@@ -6,6 +6,14 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="aixc++">
 <summary>
 -->
 <tool name="aixc++">
 <summary>
-XXX
+Sets construction variables for the IMB xlc / Visual Age C++ compiler.
 </summary>
 </summary>
+<sets>
+CXX
+SHCXX
+CXXVERSION
+SHOBJSUFFIX
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index a7a043c5fc7fce687fa40dacc4e295bef29dbd22..8ec301b26e18a5d0dc8909e1953c100a363dff25 100644 (file)
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="aixcc">
 <summary>
 -->
 <tool name="aixcc">
 <summary>
-XXX
+Sets construction variables for the IBM xlc / Visual Age C compiler.
 </summary>
 </summary>
+<sets>
+CC
+SHCC
+CCVERSION
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index 9043b66fe01f891be36f349d366a8dd42df19029..14274f32a50df85ec836696c6335ffdbaf5144c2 100644 (file)
@@ -6,6 +6,12 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="aixf77">
 <summary>
 -->
 <tool name="aixf77">
 <summary>
-XXX
+Sets construction variables for the IBM Visual Age f77 Fortran compiler.
 </summary>
 </summary>
+<sets>
+F77
+SHF77
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index a1aa05bfb134c007cd0ffa6902c53574177bedc6..567882b890d703268dbf10ff02499b3135f62fda 100644 (file)
@@ -6,6 +6,14 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="aixlink">
 <summary>
 -->
 <tool name="aixlink">
 <summary>
-XXX
+Sets construction variables for the IBM Visual Age linker.
 </summary>
 </summary>
+<sets>
+<!--SMARTLINKFLAGS-->
+LINKFLAGS
+SHLINKFLAGS
+SHLIBSUFFIX
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index d5fadbbb110d634a18ddbceee533b4dbbc284880..10b4559877051f5064ec202b6c23ee556cd5f416 100644 (file)
@@ -4,6 +4,28 @@ __COPYRIGHT__
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
+<tool name="applelink">
+<summary>
+Sets construction variables for the Apple linker
+(similar to the GNU linker).
+</summary>
+<sets>
+FRAMEWORKPATHPREFIX
+_FRAMEWORKPATH
+_FRAMEWORKS
+LINKCOM
+SHLINKFLAGS
+SHLINKCOM
+LDMODULEPREFIX
+LDMODULESUFFIX
+LDMODULEFLAGS
+LDMODULECOM
+</sets>
+<uses>
+FRAMEWORKSFLAGS
+</uses>
+</tool>
+
 <cvar name="FRAMEWORKSFLAGS">">
 <summary>
 On Mac OS X with gcc,
 <cvar name="FRAMEWORKSFLAGS">">
 <summary>
 On Mac OS X with gcc,
index b26f6343a73ff9ea32522bf2c5eafd937f3569c9..1fe9a5742e2b2a313a8c272a9579973ec9a88caf 100644 (file)
@@ -6,8 +6,20 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="ar">
 <summary>
 -->
 <tool name="ar">
 <summary>
-XXX
+Sets construction variables for the &ar; library archiver.
 </summary>
 </summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+LIBPREFIX
+LIBSUFFIX
+RANLIB
+RANLIBFLAGS
+RANLIBCOM
+</sets>
+<uses>
+</uses>
 </tool>
 
 <cvar name="AR">
 </tool>
 
 <cvar name="AR">
index f61d26a5edb9addd806b95ad1c5e9ec73c01ab46..b771d0e4582352ae09a57c9a5b2927d70cdf44e3 100644 (file)
@@ -6,8 +6,21 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="as">
 <summary>
 -->
 <tool name="as">
 <summary>
-XXX
+Sets construction variables for the &as; assembler.
 </summary>
 </summary>
+<sets>
+AS
+ASFLAGS
+ASCOM
+ASPPFLAGS
+ASPPCOM
+</sets>
+<uses>
+CC
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
 </tool>
 
 <cvar name="AS">
 </tool>
 
 <cvar name="AS">
index 1cdb9c0b36318788e1d5ee25f19abe9d2520501d..38ded356c7ac893a8ab542f7a5fe34ccc27b9507 100644 (file)
@@ -6,6 +6,27 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="bcc32">
 <summary>
 -->
 <tool name="bcc32">
 <summary>
-XXX
+Sets construction variables for the bcc32 compiler.
 </summary>
 </summary>
+<sets>
+CC
+CCFLAGS
+CFLAGS
+CCCOM
+SHCC
+SHCCFLAGS
+SHCFLAGS
+SHCCCOM
+CPPDEFPREFIX
+CPPDEFSUFFIX
+INCPREFIX
+INCSUFFIX
+SHOBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+CFILESUFFIX
+</sets>
+<uses>
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
 </tool>
 </tool>
index 2dc7bb2c39c80cd4ca5ba98902920d5061f342a9..02530da04532edbe87930a7f805175dfa77784aa 100644 (file)
@@ -4,10 +4,29 @@ __COPYRIGHT__
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
-<tool name="c++">
+<tool name="cXX">
 <summary>
 <summary>
-XXX
+Sets construction variables for generic POSIX C++ compilers.
 </summary>
 </summary>
+<sets>
+CXX
+CXXFLAGS
+CXXCOM
+SHCXX
+SHCXXFLAGS
+SHCXXCOM
+CPPDEFPREFIX
+CPPDEFSUFFIX
+INCPREFIX
+INCSUFFIX
+SHOBJSUFFIX
+OBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+CXXFILESUFFIX
+</sets>
+<uses>
+CXXCOMSTR
+</uses>
 </tool>
 
 <cvar name="CXX">
 </tool>
 
 <cvar name="CXX">
index b7ff65a4107c26ee4f311674a7c4e973c68823a4..a89182a3247683ad13ed940334c0be972884b856 100644 (file)
@@ -6,22 +6,31 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="cc">
 <summary>
 -->
 <tool name="cc">
 <summary>
-&cv-link-CC;
-&cv-link-CFLAGS;
-&cv-link-CCCOM;
-&cv-link-SHCC;
-&cv-link-SHCFLAGS;
-&cv-link-SHCCCOM;
-
-&cv-link-CPPDEFPREFIX;
-&cv-link-CPPDEFSUFFIX;
-&cv-link-INCPREFIX;
-&cv-link-INCSUFFIX;
-&cv-link-SHOBJSUFFIX;
-<!-- &cv-link-STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME; -->
-
-&cv-link-CFILESUFFIX;
+Sets construction variables for generic POSIX C copmilers.
 </summary>
 </summary>
+<sets>
+<!--_CCCOMCOM-->
+FRAMEWORKS
+FRAMEWORKPATH
+CC
+CFLAGS
+CCFLAGS
+CCCOM
+SHCC
+SHCFLAGS
+SHCCFLAGS
+SHCCCOM
+CPPDEFPREFIX
+CPPDEFSUFFIX
+INCPREFIX
+INCSUFFIX
+SHOBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+CFILESUFFIX
+</sets>
+<uses>
+PLATFORM
+</uses>
 </tool>
 
 <cvar name="CC">
 </tool>
 
 <cvar name="CC">
index 9acde9b59da2462ef01cda54273b539068e1776a..a8011e17cd737954136afd8a5d2b826509f4a5cf 100644 (file)
@@ -6,6 +6,25 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="cvf">
 <summary>
 -->
 <tool name="cvf">
 <summary>
-XXX
+Sets construction variables for the Compaq Visual Fortran compiler.
 </summary>
 </summary>
+<sets>
+FORTRAN
+FORTRANCOM
+FORTRANPPCOM
+SHFORTRANCOM
+SHFORTRANPPCOM
+OBJSUFFIX
+FORTRANMODDIR
+FORTRANMODDIRPREFIX
+FORTRANMODDIRSUFFIX
+</sets>
+<uses>
+FORTRANFLAGS
+SHFORTRANFLAGS
+_FORTRANMODFLAG
+_FORTRANINCFLAGS
+CPPFLAGS
+_CPPDEFFLAGS
+</uses>
 </tool>
 </tool>
index a4da87a007cb4eaefded3e3221fe50f481385cdb..e14f9f728262cbc7dcdde46141c274b741ddcd0b 100644 (file)
@@ -6,6 +6,7 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="default">
 <summary>
 -->
 <tool name="default">
 <summary>
-XXX
+Sets variables by calling a default list of Tool modules
+for the platform on which SCons is running.
 </summary>
 </tool>
 </summary>
 </tool>
index 62ab78e597f8f50cf91becd02f93f748f72a2bc8..cab3ab47d26d300d80c61bb595a0613543efd328 100644 (file)
@@ -6,6 +6,47 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="dmd">
 <summary>
 -->
 <tool name="dmd">
 <summary>
-XXX
+Sets construction variables for the Digital Mars D compiler.
 </summary>
 </summary>
+<sets>
+<!--
+DC
+DCOM
+_DINCFLAGS
+_DVERFLAGS
+_DDEBUGFLAGS
+_DFLAGS
+DPATH
+DFLAGS
+DVERSIONS
+DDEBUG
+DINCPREFIX
+DINCSUFFIX
+DVERPREFIX
+DVERSUFFIX
+DDEBUGPREFIX
+DDEBUGSUFFIX
+DFLAGPREFIX
+DFLAGSUFFIX
+DFLESUFFIX
+DLINK
+DLINKCOM
+DLIB
+DLIBCOM
+_DLINKLIBFLAGS
+_DLIBFLAGS
+DLINKFLAGS
+DLIBLINKPREFIX
+DLIBLINKSUFFIX
+DLIBFLAGPREFIX
+DLIBFLAGSUFFIX
+DLINKFLAGPREFIX
+DLINKFLAGSUFFIX
+LINKCOM
+ARCOM
+LIBS
+-->
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index 26fdd43b93c4a9b6a58539bb4b28fb652680ea6e..8285a54f1ff346cf3455f7d01229f63bb538e8c9 100644 (file)
@@ -4,6 +4,17 @@ __COPYRIGHT__
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
+<tool name="dvi">
+<summary>
+Attaches the &b-DVI; builder to the
+construction environment.
+</summary>
+<sets>
+</sets>
+<uses>
+</uses>
+</tool>
+
 <builder name="DVI">
 <summary>
 Builds a <filename>.dvi</filename> file
 <builder name="DVI">
 <summary>
 Builds a <filename>.dvi</filename> file
index f0679b313cc34f214d618ece6f05a3f086905e22..7f5b160d1ed8d47719a67fe353c9bf3b74412246 100644 (file)
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="dvipdf">
 <summary>
 -->
 <tool name="dvipdf">
 <summary>
-XXX
+Sets construction variables for the dvipdf utility.
 </summary>
 </summary>
+<sets>
+DVIPDF
+DVIPDFFLAGS
+DVIPDFCOM
+</sets>
+<uses>
+DVIPDFCOMSTR
+</uses>
 </tool>
 
 <cvar name="DVIPDF">
 </tool>
 
 <cvar name="DVIPDF">
index dbfcaf35edf28ed60283635ed9be48e5d4a31eaa..328bb46a3573e6ba2125f76d37f194743aa3bf97 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="dvips">
 <summary>
 -->
 <tool name="dvips">
 <summary>
-XXX
+Sets construction variables for the dvips utility.
 </summary>
 </summary>
+<sets>
+DVIPS
+DVIPSFLAGS
+PSCOM
+PSPREFIX
+PSSUFFIX
+</sets>
+<uses>
+PSCOMSTR
+</uses>
 </tool>
 
 <builder name="PostScript">
 </tool>
 
 <builder name="PostScript">
index a1d3c3417ca6de63ccb329cab4c5f4968597e3a1..3281bd614d1a3f36aba54e550c841429a0f5e789 100644 (file)
@@ -6,8 +6,36 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="f77">
 <summary>
 -->
 <tool name="f77">
 <summary>
-XXX
+Set construction variables for generic POSIX Fortran 77 compilers.
 </summary>
 </summary>
+<sets>
+F77
+F77FLAGS
+F77COM
+F77PPCOM
+FORTRAN
+FORTRANFLAGS
+FORTRANCOM
+SHF77
+SHF77FLAGS
+SHF77COM
+SHF77PPCOM
+SHFORTRAN
+SHFORTRANFLAGS
+SHFORTRANCOM
+SHFORTRANPPCOM
+_F77INCFLAGS
+</sets>
+<uses>
+F77COMSTR
+F77PPCOMSTR
+FORTRANCOMSTR
+FORTRANPPCOMSTR
+SHF77COMSTR
+SHF77PPCOMSTR
+SHFORTRANCOMSTR
+SHFORTRANPPCOMSTR
+</uses>
 </tool>
 
 <cvar name="F77">
 </tool>
 
 <cvar name="F77">
@@ -140,6 +168,16 @@ for all Fortran versions.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
+<cvar name="F77PPCOMSTR">
+<summary>
+The string displayed when a Fortran 77 source file
+is compiled to an object file
+after first running the file through the C preprocessor.
+If this is not set, then &cv-link-F77PPCOM; or &cv-link-FORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
 <cvar name="SHF77">
 <summary>
 The Fortran 77 compiler used for generating shared-library objects.
 <cvar name="SHF77">
 <summary>
 The Fortran 77 compiler used for generating shared-library objects.
@@ -199,3 +237,13 @@ which specifies the default C-preprocessor command line
 for all Fortran versions.
 </summary>
 </cvar>
 for all Fortran versions.
 </summary>
 </cvar>
+
+<cvar name="SHF77PPCOMSTR">
+<summary>
+The string displayed when a Fortran 77 source file
+is compiled to a shared-library object file
+after first running the file through the C preprocessor.
+If this is not set, then &cv-link-SHF77PPCOM; or &cv-link-SHFORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
index 9159a24d1a6be1c8c9267b8fa312a2dbb8824609..18135a34c8da7b702a9f68f6061b6bd9685b8870 100644 (file)
@@ -6,8 +6,25 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="f90">
 <summary>
 -->
 <tool name="f90">
 <summary>
-XXX
+Set construction variables for generic POSIX Fortran 90 compilers.
 </summary>
 </summary>
+<sets>
+F90
+F90FLAGS
+F90COM
+F90PPCOM
+SHF90
+SHF90FLAGS
+SHF90COM
+SHF90PPCOM
+_F90INCFLAGS
+</sets>
+<uses>
+F90COMSTR
+F90PPCOMSTR
+SHF90COMSTR
+SHF90PPCOMSTR
+</uses>
 </tool>
 
 <cvar name="F90">
 </tool>
 
 <cvar name="F90">
@@ -140,6 +157,15 @@ for all Fortran versions.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
+<cvar name="F90PPCOMSTR">
+<summary>
+The string displayed when a Fortran 90 source file
+is compiled after first running the file through the C preprocessor.
+If this is not set, then &cv-link-F90PPCOM; or &cv-link-FORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
 <cvar name="SHF90">
 <summary>
 The Fortran 90 compiler used for generating shared-library objects.
 <cvar name="SHF90">
 <summary>
 The Fortran 90 compiler used for generating shared-library objects.
@@ -199,3 +225,13 @@ which specifies the default C-preprocessor command line
 for all Fortran versions.
 </summary>
 </cvar>
 for all Fortran versions.
 </summary>
 </cvar>
+
+<cvar name="SHF90PPCOMSTR">
+<summary>
+The string displayed when a Fortran 90 source file
+is compiled to a shared-library object file
+after first running the file through the C preprocessor.
+If this is not set, then &cv-link-SHF90PPCOM; or &cv-link-SHFORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
index e3c026ea083b3801cd8eba025db4d79a9e025926..0882a4546054e2f5888112e3cabe0558fabff5d7 100644 (file)
@@ -6,8 +6,25 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="f95">
 <summary>
 -->
 <tool name="f95">
 <summary>
-XXX
+Set construction variables for generic POSIX Fortran 95 compilers.
 </summary>
 </summary>
+<sets>
+F95
+F95FLAGS
+F95COM
+F95PPCOM
+SHF95
+SHF95FLAGS
+SHF95COM
+SHF95PPCOM
+_F95INCFLAGS
+</sets>
+<uses>
+F95COMSTR
+F95PPCOMSTR
+SHF95COMSTR
+SHF95PPCOMSTR
+</uses>
 </tool>
 
 <cvar name="F95">
 </tool>
 
 <cvar name="F95">
@@ -140,6 +157,16 @@ for all Fortran versions.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
+<cvar name="F95PPCOMSTR">
+<summary>
+The string displayed when a Fortran 95 source file
+is compiled to an object file
+after first running the file through the C preprocessor.
+If this is not set, then &cv-link-F95PPCOM; or &cv-link-FORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
 <cvar name="SHF95">
 <summary>
 The Fortran 95 compiler used for generating shared-library objects.
 <cvar name="SHF95">
 <summary>
 The Fortran 95 compiler used for generating shared-library objects.
@@ -199,3 +226,13 @@ which specifies the default C-preprocessor command line
 for all Fortran versions.
 </summary>
 </cvar>
 for all Fortran versions.
 </summary>
 </cvar>
+
+<cvar name="SHF95PPCOMSTR">
+<summary>
+The string displayed when a Fortran 95 source file
+is compiled to a shared-library object file
+after first running the file through the C preprocessor.
+If this is not set, then &cv-link-SHF95PPCOM; or &cv-link-SHFORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
index c7000af6107645d8a23d1936ef01c334802535ca..6dbe7b0b3bdc783b734dec58d1b84bf2a82ca132 100644 (file)
@@ -6,8 +6,23 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="fortran">
 <summary>
 -->
 <tool name="fortran">
 <summary>
-XXX
+Set construction variables for generic POSIX Fortran compilers.
 </summary>
 </summary>
+<sets>
+FORTRAN
+FORTRANFLAGS
+FORTRANCOM
+SHFORTRAN
+SHFORTRANFLAGS
+SHFORTRANCOM
+SHFORTRANPPCOM
+</sets>
+<uses>
+FORTRANCOMSTR
+FORTRANPPCOMSTR
+SHFORTRANCOMSTR
+SHFORTRANPPCOMSTR
+</uses>
 </tool>
 
 <cvar name="FORTRAN">
 </tool>
 
 <cvar name="FORTRAN">
@@ -197,6 +212,16 @@ construction variables are included on this command line.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
+<cvar name="FORTRANPPCOMSTR">
+<summary>
+The string displayed when a Fortran source file
+is compiled to an object file
+after first running the file throught the C preprocessor.
+If this is not set, then &cv-link-FORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
 <cvar name="FORTRANSUFFIXES">
 <summary>
 The list of suffixes of files that will be scanned
 <cvar name="FORTRANSUFFIXES">
 <summary>
 The list of suffixes of files that will be scanned
@@ -251,3 +276,13 @@ in the &cv-link-SHFORTRANFLAGS; and
 are included on this command line.
 </summary>
 </cvar>
 are included on this command line.
 </summary>
 </cvar>
+
+<cvar name="SHFORTRANPPCOMSTR">
+<summary>
+The string displayed when a Fortran source file
+is compiled to a shared-library object file
+after first running the file throught the C preprocessor.
+If this is not set, then &cv-link-SHFORTRANPPCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
index 4991811956b40cd8046fac70ebd2c766ec45c104..79444b9afc1ff8c67bc49ba3a7f1963f08d1cd16 100644 (file)
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="g++">
 <summary>
 -->
 <tool name="g++">
 <summary>
-XXX
+Set construction variables for the &gXX; C++ compiler.
 </summary>
 </summary>
+<sets>
+CXX
+SHCXXFLAGS
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+SHOBJSUFFIX
+CXXVERSION
+</sets>
 </tool>
 </tool>
index 6357f94d5fdf6f63358dc42c2e6fb50b7166b02b..96d6f874d96a2a39845970903cc9aa798d89fad1 100644 (file)
@@ -6,6 +6,8 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="g77">
 <summary>
 -->
 <tool name="g77">
 <summary>
-XXX
+Set construction variables for the &g77; Fortran compiler.
+Calls the &t-f77; Tool module
+to set variables.
 </summary>
 </tool>
 </summary>
 </tool>
index 19ad1a902ff0482c13848de52dd80af76e2a2e41..62bad7b3761587091b86584884ba153f2bcd7fe7 100644 (file)
@@ -6,6 +6,10 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="gas">
 <summary>
 -->
 <tool name="gas">
 <summary>
-XXX
+Sets construction variables for the &gas; assembler.
+Calls the &t-as; module.
 </summary>
 </summary>
+<sets>
+AS
+</sets>
 </tool>
 </tool>
index 15f19cf0f144e15833b14649211b46d7196bd55d..f36a5ebf325ebd38b5cc61e3406206cef1d587c7 100644 (file)
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="gcc">
 <summary>
 -->
 <tool name="gcc">
 <summary>
-XXX
+Set construction variables for the &gcc; C compiler.
 </summary>
 </summary>
+<sets>
+CC
+SHCCFLAGS
+CCVERSION
+</sets>
 </tool>
 </tool>
index d454af445770f5cef5243c5fe093d946eac5c9f0..d822081dea1058c63364dba23d13fdac2d91429a 100644 (file)
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="gnulink">
 <summary>
 -->
 <tool name="gnulink">
 <summary>
-XXX
+Set construction variables for GNU linker/loader.
 </summary>
 </summary>
+<sets>
+SHLINKFLAGS
+RPATHPREFIX
+RPATHSUFFIX
+</sets>
 </tool>
 </tool>
index 9a63e94d28ad708c5869111de363633ea37f24dc..2376735dd84966f955ba5eb170c2d084dfc2989c 100644 (file)
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="gs">
 <summary>
 -->
 <tool name="gs">
 <summary>
-XXX
+Set construction variables for Ghostscript.
 </summary>
 </summary>
+<sets>
+GS
+GSFLAGS
+GSCOM
+</sets>
+<uses>
+GSCOMSTR
+</uses>
 </tool>
 
 <cvar name="GS">
 </tool>
 
 <cvar name="GS">
index ca0314c9dbd82d69e349b6b5bdd23159ef4ccc26..893907a6f63238807218289db759cfcf4a0a472e 100644 (file)
@@ -6,6 +6,6 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="hpc++">
 <summary>
 -->
 <tool name="hpc++">
 <summary>
-XXX
+Set construction variables for the compilers aCC on HP/UX systems.
 </summary>
 </tool>
 </summary>
 </tool>
index 9f63b5538dde5874f50f3250b265637e9710d74e..62a1ca43d31fd9201dea032694ef1e9c224a9e97 100644 (file)
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="hpcc">
 <summary>
 -->
 <tool name="hpcc">
 <summary>
-XXX
+Set construction variables for the
+<application>aCC</application> on HP/UX systems.
+Calls the &t-cXX; tool for additional variables.
 </summary>
 </summary>
+<sets>
+CXX
+SHCXXFLAGS
+CXXVERSION
+</sets>
 </tool>
 </tool>
index 1bd3b78afa2b3558a1d61fd6baf9e2b9434b7b33..6a450179f05f32ef10af5898f754f7574fe0a243 100644 (file)
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="hplink">
 <summary>
 -->
 <tool name="hplink">
 <summary>
-XXX
+Sets construction variables for the linker on HP/UX systems.
 </summary>
 </summary>
+<sets>
+LINKFLAGS
+SHLINKFLAGS
+SHLIBSUFFIX
+</sets>
 </tool>
 </tool>
index c41486e6d537fb9cafec09e9dafad7dbc44e0b9e..a585f3f21a8fb9ec1960eaba214bee5a4e96dc5f 100644 (file)
@@ -6,6 +6,25 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="icc">
 <summary>
 -->
 <tool name="icc">
 <summary>
-XXX
+Sets construction variables for the
+<application>icc</application> compiler on OS/2 systems.
 </summary>
 </summary>
+<sets>
+CC
+CCCOM
+CXXCOM
+CPPDEFPREFIX
+CPPDEFSUFFIX
+INCPREFIX
+INCSUFFIX
+CFILESUFFIX
+CXXFILESUFFIX
+</sets>
+<uses>
+CFLAGS
+CCFLAGS
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
 </tool>
 </tool>
index 5b8c3559241cede721077d5baae63bba45fcfe0a..13b63926ad8d1e7b4329e4e8c3c4c5fa3c7afda0 100644 (file)
@@ -6,6 +6,7 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="icl">
 <summary>
 -->
 <tool name="icl">
 <summary>
-XXX
+Sets construction variables for the Intel C/C++ compiler.
+Calls the &t-intelc; Tool module to set its variables.
 </summary>
 </tool>
 </summary>
 </tool>
index 4b5b912dcf6e763eeff6e47bd15216679f4c58e4..06f242757704c1625cfad719f98ac2f42393b5a7 100644 (file)
@@ -6,6 +6,19 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="ifl">
 <summary>
 -->
 <tool name="ifl">
 <summary>
-XXX
+Sets construction variables for the Intel Fortran compiler.
 </summary>
 </summary>
+<sets>
+FORTRAN
+FORTRANCOM
+FORTRANPPCOM
+SHFORTRANCOM
+SHFORTRANPPCOM
+</sets>
+<uses>
+FORTRANFLAGS
+_FORTRANINCFLAGS
+CPPFLAGS
+_CPPDEFFLAGS
+</uses>
 </tool>
 </tool>
index 0303dec5897813a3445189d35a1c3679f36210eb..20950f80260e53f20c530082115cb2b802192004 100644 (file)
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="ifort">
 <summary>
 -->
 <tool name="ifort">
 <summary>
-XXX
+Sets construction variables for newer versions
+of the Intel Fortran compiler for Linux.
 </summary>
 </summary>
+<sets>
+SHLINK
+SHLINKFLAGS
+</sets>
 </tool>
 </tool>
index 03acfa4af932671be1038e06f9919e57ecb785ac..2b29b30c4bbbc2afe2896b72c47936b194a7f1a5 100644 (file)
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="ilink">
 <summary>
 -->
 <tool name="ilink">
 <summary>
-XXX
+Sets construction variables for the
+<application>ilink</application> linker on OS/2 systems.
 </summary>
 </summary>
+<sets>
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index 370d0464a05adb2bfc95eea7f946eccbd3e96280..49e868b9553cdd21837b468eacd7101ada8df71f 100644 (file)
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="ilink32">
 <summary>
 -->
 <tool name="ilink32">
 <summary>
-XXX
+Sets construction variables for the Borland
+<application>ilink32</application> linker.
 </summary>
 </summary>
+<sets>
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index 0141c22f89666713fa4dff384b94d5194b1e7d15..0abc2a7eade38fed09cebaa0b0a2ce811806218d 100644 (file)
@@ -6,8 +6,22 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="intelc">
 <summary>
 -->
 <tool name="intelc">
 <summary>
-XXX
+Sets construction variables for the Intel C/C++ compiler
+(Linux and Windows, version 7 and later).
+Calls the &t-gcc; or &t-msvc;
+(on Linux and Windows, respectively)
+to set underlying variables.
 </summary>
 </summary>
+<sets>
+CC
+CXX
+LINK
+AR
+<!--LD-->
+INTEL_C_COMPILER_VERSION
+</sets>
+<uses>
+</uses>
 </tool>
 
 <cvar name="INTEL_C_COMPILER_VERSION">
 </tool>
 
 <cvar name="INTEL_C_COMPILER_VERSION">
index 488459b7fd3afe648b4bf60c3d35464fc4011f60..0deaaaeb9ad575087bb2433b6fc4453d21ceb719 100644 (file)
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="jar">
 <summary>
 -->
 <tool name="jar">
 <summary>
-XXX
+Sets construction variables for the &jar; utility.
 </summary>
 </summary>
+<sets>
+JAR
+JARFLAGS
+JARCOM
+JARSUFFIX
+</sets>
+<uses>
+JARCOMSTR
+</uses>
 </tool>
 
 <builder name="Jar">
 </tool>
 
 <builder name="Jar">
index 400a23b273d961910fc454d1cbafcc6b8bd7662f..6c28e8cca789c55519226e6208d23ee6d88999f5 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="javac">
 <summary>
 -->
 <tool name="javac">
 <summary>
-XXX
+Sets construction variables for the &javac; compiler.
 </summary>
 </summary>
+<sets>
+JAVAC
+JAVACFLAGS
+JAVACCOM
+JAVACLASSSUFFIX
+JAVASUFFIX
+</sets>
+<uses>
+JAVACCOMSTR
+</uses>
 </tool>
 
 <builder name="Java">
 </tool>
 
 <builder name="Java">
index 75d0efb59ae113c50074a95ace2ccd5cc9d3463e..c6487e7c279387e5bfc18b7c90d189c51d29cafc 100644 (file)
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="javah">
 <summary>
 -->
 <tool name="javah">
 <summary>
-XXX
+Sets construction variables for the &javah; tool.
 </summary>
 </summary>
+<sets>
+JAVAH
+JAVAHFLAGS
+JAVAHCOM
+JAVACLASSSUFFIX
+</sets>
+<uses>
+JAVAHCOMSTR
+</uses>
 </tool>
 
 <builder name="JavaH">
 </tool>
 
 <builder name="JavaH">
index 35eea30a5e5ef8c2b77b21accf8a56e59183736c..1584e0fe35e991741c073e44f373cdcf0f55ffe0 100644 (file)
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="latex">
 <summary>
 -->
 <tool name="latex">
 <summary>
-XXX
+Sets construction variables for the &latex; utility.
 </summary>
 </summary>
+<sets>
+LATEX
+LATEXFLAGS
+LATEXCOM
+</sets>
+<uses>
+LATEXCOMSTR
+</uses>
 </tool>
 
 <cvar name="LATEX">
 </tool>
 
 <cvar name="LATEX">
index d67feb08f70696418df84a3fc9d7f3fa91ddc6b8..d7d86d02ba3c360a2fd2ed3f417ba73f4b6ec759 100644 (file)
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="lex">
 <summary>
 -->
 <tool name="lex">
 <summary>
-XXX
+Sets construction variables for the &lex; lexical analyser.
 </summary>
 </summary>
+<sets>
+LEX
+LEXFLAGS
+LEXCOM
+</sets>
+<uses>
+LEXCOMSTR
+</uses>
 </tool>
 
 <cvar name="LEX">
 </tool>
 
 <cvar name="LEX">
index 0728ddaddef8842e4413a1c97773ca12ed8438a3..8737bea4d3d5b14f23d759f850a346e0e6bfcfcc 100644 (file)
@@ -6,8 +6,31 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="link">
 <summary>
 -->
 <tool name="link">
 <summary>
-XXX
+Sets construction variables for generic POSIX linkers.
 </summary>
 </summary>
+<sets>
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+SHLIBSUFFIX
+LDMODULE
+LDMODULEPREFIX
+LDMODULESUFFIX
+LDMODULEFLAGS
+LDMODULECOM
+</sets>
+<uses>
+SHLINKCOMSTR
+LINKCOMSTR
+LDMODULECOMSTR
+</uses>
 </tool>
 
 <cvar name="LDMODULE">
 </tool>
 
 <cvar name="LDMODULE">
index 58ffc483a78ca276da87e881b3c467ba3cdb737d..e8a54f496dea871ed2a4429117c5734a37245fc8 100644 (file)
@@ -6,6 +6,26 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="linkloc">
 <summary>
 -->
 <tool name="linkloc">
 <summary>
-XXX
+Sets construction variables for the
+<application>LinkLoc</application>
+linker for the Phar Lap ETS embedded operating system.
 </summary>
 </summary>
+<sets>
+<!--SUBST_CMD_FILE-->
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+<!--SHLINKEMITTER-->
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+</sets>
+<uses>
+SHLINKCOMSTR
+LINKCOMSTR
+</uses>
 </tool>
 </tool>
index 0ee421e543e30ce620ac33c52f22480fa3009c6f..63d16bee1c84855290945f677321461f91b5d34d 100644 (file)
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="m4">
 <summary>
 -->
 <tool name="m4">
 <summary>
-XXX
+Sets construction variables for the &m4; macro processor.
 </summary>
 </summary>
+<sets>
+M4
+M4FLAGS
+M4COM
+</sets>
+<uses>
+M4COMSTR
+</uses>
 </tool>
 
 <builder name="M4">
 </tool>
 
 <builder name="M4">
index ee1ed1d7d428a619b41e414faba247cefee35fac..614da1fc27df94c8ef12f7ecfd5f775c39ce1c57 100644 (file)
@@ -6,6 +6,21 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="masm">
 <summary>
 -->
 <tool name="masm">
 <summary>
-XXX
+Sets construction variables for the Microsoft assembler.
 </summary>
 </summary>
+<sets>
+AS
+ASFLAGS
+ASPPFLAGS
+ASCOM
+ASPPCOM
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+</sets>
+<uses>
+ASCOMSTR
+ASPPCOMSTR
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
 </tool>
 </tool>
index 8885785fad7359d427f31863dc0131f012dbf2b1..2698aa6955ff5667234cf0cbc89815081fa75c49 100644 (file)
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="midl">
 <summary>
 -->
 <tool name="midl">
 <summary>
-XXX
+Sets construction variables for the Microsoft IDL compiler.
 </summary>
 </summary>
+<sets>
+MIDL
+MIDLFLAGS
+MIDLCOM
+</sets>
+<uses>
+MIDLCOMSTR
+</uses>
 </tool>
 
 <builder name="TypeLibrary">
 </tool>
 
 <builder name="TypeLibrary">
@@ -32,3 +40,29 @@ and
 files.
 </summary>
 </builder>
 files.
 </summary>
 </builder>
+
+<cvar name="MIDL">
+<summary>
+The Microsoft IDL compiler.
+</summary>
+</cvar>
+
+<cvar name="MIDLCOM">
+<summary>
+The command line used to pass files to the Microsoft IDL compiler.
+</summary>
+</cvar>
+
+<cvar name="MIDLCOMSTR">
+<summary>
+The string displayed when
+the Microsoft IDL copmiler is called.
+If this is not set, then &cv-link-MIDLCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="MIDLFLAGS">
+<summary>
+General options passed to the Microsoft IDL compiler.
+</summary>
+</cvar>
index 9f9cf1f365383a60f6ced9b7f1b1d7ee939d6a43..048124c91efb8f780d02c5a8575a31a7877e23d5 100644 (file)
@@ -6,6 +6,32 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="mingw">
 <summary>
 -->
 <tool name="mingw">
 <summary>
-XXX
+Sets construction variables for MinGW (Minimal Gnu on Windows).
 </summary>
 </summary>
+<sets>
+CC
+SHCCFLAGS
+CXX
+SHCXXFLAGS
+SHLINKFLAGS
+SHLINKCOM
+AS
+WINDOWSDEFPREFIX
+WINDOWSDEFSUFFIX
+SHOBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+RC
+RCFLAGS
+RCINCFLAGS
+RCINCPREFIX
+RCINCSUFFIX
+RCCOM
+OBJSUFFIX
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+SHLINKCOMSTR
+RCCOMSTR
+</uses>
 </tool>
 </tool>
index 9d56fd5c24412d13cf42d8534165964de17ddd34..014ca9b5087c465a05b1c12a81c7375ace20de6d 100644 (file)
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="mslib">
 <summary>
 -->
 <tool name="mslib">
 <summary>
-XXX
+Sets construction variables for the Microsoft
+<application>mslib</application>
+library archiver.
 </summary>
 </summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+</uses>
 </tool>
 </tool>
index 160d415089c6e5d9b77437c4f35e53fff1bec6ea..6ad9dead0ab927966bb2044c5e0345f7f65dad31 100644 (file)
@@ -6,8 +6,49 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="mslink">
 <summary>
 -->
 <tool name="mslink">
 <summary>
-XXX
-</summary>
+Sets construction variables for the Microsoft linker.
+</summary>
+<sets>
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+WIN32DEFPREFIX
+WIN32DEFSUFFIX
+WINDOWSDEFPREFIX
+WINDOWSDEFSUFFIX
+WINDOWS_INSERT_DEF
+WIN32EXPPREFIX
+WIN32EXPSUFFIX
+WINDOWSEXPPREFIX
+WINDOWSEXPSUFFIX
+WINDOWSSHLIBMANIFESTPREFIX
+WINDOWSSHLIBMANIFESTSUFFIX
+WINDOWSPROGMANIFESTPREFIX
+WINDOWSPROGMANIFESTSUFFIX
+<!--REGSVRACTION-->
+REGSVR
+REGSVRFLAGS
+REGSVRCOM
+LDMODULE
+LDMODULEPREFIX
+LDMODULESUFFIX
+LDMODULEFLAGS
+LDMODULECOM
+</sets>
+<uses>
+SHLINKCOMSTR
+LINKCOMSTR
+REGSVRCOMSTR
+MSVS_IGNORE_IDE_PATHS
+LDMODULECOMSTR
+</uses>
 </tool>
 
 <cvar name="no_import_lib">
 </tool>
 
 <cvar name="no_import_lib">
index 0ea260269014118dc7fa4abd5a3209d9589c0440..b85c7aa0cf87b826beace08760a8c3f5da338f5f 100644 (file)
@@ -6,8 +6,50 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="msvc">
 <summary>
 -->
 <tool name="msvc">
 <summary>
-XXX
+Sets construction variables for the Microsoft Visual C/C++ compiler.
 </summary>
 </summary>
+<sets>
+CCPDBFLAGS
+CCPCHFLAGS
+<!--CCCOMFLAGS-->
+CC
+CCFLAGS
+CFLAGS
+CCCOM
+SHCC
+SHCCFLAGS
+SHCFLAGS
+SHCCCOM
+CXX
+CXXFLAGS
+CXXCOM
+SHCXX
+SHCXXFLAGS
+SHCXXCOM
+CPPDEFPREFIX
+CPPDEFSUFFIX
+INCPREFIX
+INCSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+RC
+RCFLAGS
+RCCOM
+BUILDERS
+OBJPREFIX
+OBJSUFFIX
+SHOBJPREFIX
+SHOBJSUFFIX
+CFILESUFFIX
+CXXFILESUFFIX
+PCHPDBFLAGS
+PCHCOM
+</sets>
+<uses>
+CCCOMSTR
+SHCCCOMSTR
+CXXCOMSTR
+SHCXXCOMSTR
+</uses>
 </tool>
 
 <builder name="PCH">
 </tool>
 
 <builder name="PCH">
@@ -127,6 +169,14 @@ If this is not set, then &cv-link-PCHCOM; (the command line) is displayed.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
+<cvar name="PCHPDBFLAGS">
+<summary>
+A construction variable that, when expanded,
+adds the <literal>/yD</literal> flag to the command line
+only if the &cv-PDB; construction variable is set.
+</summary>
+</cvar>
+
 <cvar name="PCHSTOP">
 <summary>
 This variable specifies how much of a source file is precompiled. This
 <cvar name="PCHSTOP">
 <summary>
 This variable specifies how much of a source file is precompiled. This
@@ -169,3 +219,36 @@ If this is not set, then &cv-link-RCCOM; (the command line) is displayed.
 The flags passed to the resource compiler by the RES builder.
 </summary>
 </cvar>
 The flags passed to the resource compiler by the RES builder.
 </summary>
 </cvar>
+
+<cvar name="RCINCFLAGS">
+<summary>
+An automatically-generated construction variable
+containing the command-line options
+for specifying directories to be searched
+by the resource compiler.
+The value of &cv-RCINCFLAGS; is created
+by appending &cv-RCINCPREFIX; and &cv-RCINCSUFFIX;
+to the beginning and end
+of each directory in &cv-CPPPATH;.
+</summary>
+</cvar>
+
+<cvar name="RCINCPREFIX">
+<summary>
+The prefix (flag) used to specify an include directory
+on the resource compiler command line.
+This will be appended to the beginning of each directory
+in the &cv-CPPPATH; construction variable
+when the &cv-RCINCFLAGS; variable is expanded.
+</summary>
+</cvar>
+
+<cvar name="RCINCSUFFIX">
+<summary>
+The suffix used to specify an include directory
+on the resource compiler command line.
+This will be appended to the end of each directory
+in the &cv-CPPPATH; construction variable
+when the &cv-RCINCFLAGS; variable is expanded.
+</summary>
+</cvar>
index 07fda0c39d4864328ed2b16f1614bb590632fec4..2bf02f8d269178516e174c24be83a1004efd9e4a 100644 (file)
@@ -6,8 +6,22 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="msvs">
 <summary>
 -->
 <tool name="msvs">
 <summary>
-XXX
+Sets construction variables for Microsoft Visual Studio.
 </summary>
 </summary>
+<sets>
+MSVSPROJECTCOM
+MSVSSOLUTIONCOM
+MSVSSCONSCRIPT
+MSVSSCONS
+MSVSSCONSFLAGS
+MSVSSCONSCOM
+MSVSBUILDCOM
+MSVSREBUILDCOM
+MSVSCLEANCOM
+MSVSENCODING
+</sets>
+<uses>
+</uses>
 </tool>
 
 <builder name ="MSVSProject">
 </tool>
 
 <builder name ="MSVSProject">
@@ -373,9 +387,15 @@ There is no default value.
 Tells the MS Visual Studio tool(s) to use
 the MFC directories in its default paths
 for compiling and linking.
 Tells the MS Visual Studio tool(s) to use
 the MFC directories in its default paths
 for compiling and linking.
-Under MSVS version 6,
+The &cv-MSVS_USE_MFC_DIRS; variable has no effect if the
+<envar>INCLUDE</envar>
+or
+<envar>LIB</envar>
+environment variables are set explictly.
+
+Under Visual Studio version 6,
 setting
 setting
-<envar>MSVS_USE_MFC_DIRS</envar>
+&cv-MSVS_USE_MFC_DIRS;
 to a non-zero value
 adds the
 <filename>ATL\include</filename>
 to a non-zero value
 adds the
 <filename>ATL\include</filename>
@@ -386,42 +406,57 @@ the default
 <envar>INCLUDE</envar>
 external environment variable,
 and adds the
 <envar>INCLUDE</envar>
 external environment variable,
 and adds the
-<envar>MFC\lib</envar>
+<filename>MFC\lib</filename>
 directory to
 the default
 <envar>LIB</envar>
 external environment variable.
 directory to
 the default
 <envar>LIB</envar>
 external environment variable.
-Under MSVS version 7,
+
+Under Visual Studio version 7,
 setting
 setting
-<envar>MSVS_USE_MFC_DIRS</envar>
+&cv-MSVS_USE_MFC_DIRS;
 to a non-zero value
 adds the
 to a non-zero value
 adds the
-<envar>atlmfc\include</envar>
+<filename>atlmfc\include</filename>
 directory to the default
 <envar>INCLUDE</envar>
 external environment variable,
 and adds the
 directory to the default
 <envar>INCLUDE</envar>
 external environment variable,
 and adds the
-<envar>atlmfc\lib</envar>
+<filename>atlmfc\lib</filename>
 directory to the default
 <envar>LIB</envar>
 external environment variable.
 directory to the default
 <envar>LIB</envar>
 external environment variable.
-The current default value is
-<literal>1</literal>,
-which means these directories
-are added to the paths by default.
-This default value is likely to change
-in a future release,
-so users who want the ATL and MFC
-values included in their paths
-are encouraged to enable the
-<envar>MSVS_USE_MFC_DIRS</envar>
-value explicitly
-to avoid future incompatibility.
-This variable has no effect if the
+
+Under Visual Studio version 8,
+setting
+&cv-MSVS_USE_MFC_DIRS;
+to a non-zero value will,
+by default,
+add the
+<filename>atlmfc\include</filename>
+directory to the default
 <envar>INCLUDE</envar>
 <envar>INCLUDE</envar>
-or
+external environment variable,
+and the
+<filename>atlmfc\lib</filename>
+directory to the default
 <envar>LIB</envar>
 <envar>LIB</envar>
-environment variables are set explictly.
+external environment variable.
+If, however, the
+<envar>['MSVS']['PLATFORMSDKDIR']</envar>
+variable is set,
+then the
+<filename>mfc</filename>
+and the
+<filename>atl</filename>
+subdirectories of the
+<envar>PLATFORMSDKDIR</envar>
+are added to the default value of the
+<envar>INCLUDE</envar>
+external environment variable,
+and the default value of the
+<envar>LIB</envar>
+external environment variable is left untouched.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
index 443eda75637a5fdbcdeef3d4faba58486471e8fe..5ea07ee3e83f4ca5c170fc034f95567983235a8f 100644 (file)
@@ -6,8 +6,36 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="mwcc">
 <summary>
 -->
 <tool name="mwcc">
 <summary>
-XXX
+Sets construction variables for the Metrowerks CodeWarrior compiler.
 </summary>
 </summary>
+<sets>
+MWCW_VERSIONS
+MWCW_VERSION
+<!--CCCOMFLAGS-->
+CC
+CCCOM
+CXX
+CXXCOM
+SHCC
+SHCCFLAGS
+SHCFLAGS
+SHCCCOM
+SHCXX
+SHCXXFLAGS
+SHCXXCOM
+CFILESUFFIX
+CXXFILESUFFIX
+CPPDEFPREFIX
+CPPDEFSUFFIX
+INCPREFIX
+INCSUFFIX
+</sets>
+<uses>
+CCCOMSTR
+CXXCOMSTR
+SHCCCOMSTR
+SHCXXCOMSTR
+</uses>
 </tool>
 
 <cvar name="MWCW_VERSION">
 </tool>
 
 <cvar name="MWCW_VERSION">
index 9943927eb65a9b85a1cbdf3fd4d56f4c6a0afdbc..c2b0d6359e866d5a3c477fa87ad7595f879e9d43 100644 (file)
@@ -6,6 +6,22 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="mwld">
 <summary>
 -->
 <tool name="mwld">
 <summary>
-XXX
+Sets construction variables for the Metrowerks CodeWarrior linker.
 </summary>
 </summary>
+<sets>
+AR
+ARCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+LINK
+LINKCOM
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+<!--SHLIBEMITTER-->
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index 071f5378013f7d423ab9dcd49ac7f9f484712365..d2cb5c2b52ff1a09cc3e64c5dd608ad217c6a652 100644 (file)
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="nasm">
 <summary>
 -->
 <tool name="nasm">
 <summary>
-XXX
+Sets construction variables for the
+<application>nasm</application> Netwide Assembler.
 </summary>
 </summary>
+<sets>
+AS
+ASFLAGS
+ASPPFLAGS
+ASCOM
+ASPPCOM
+</sets>
+<uses>
+ASCOMSTR
+ASPPCOMSTR
+</uses>
 </tool>
 </tool>
index 1e447dda073db8bcd3b9b832e633437f2e826e43..c3a4eed2fd22d3940820a6d01aea1b06ea6ecaea 100644 (file)
@@ -4,6 +4,16 @@ __COPYRIGHT__
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
 This file is processed by the bin/SConsDoc.py module.
 See its __doc__ string for a discussion of the format.
 -->
+<tool name="pdf">
+<summary>
+Sets construction variables for the Portable Document Format builder.
+</summary>
+<sets>
+PDFPREFIX
+PDFSUFFIX
+</sets>
+</tool>
+
 <builder name="PDF">
 <summary>
 Builds a <filename>.pdf</filename> file
 <builder name="PDF">
 <summary>
 Builds a <filename>.pdf</filename> file
index e9fe793ed36ffd6bfb0170e0e90a4ff760d26034..71f625611f7424ab62703c86d403de592cd8c2b8 100644 (file)
@@ -6,6 +6,44 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="pdflatex">
 <summary>
 -->
 <tool name="pdflatex">
 <summary>
-XXX
+Sets construction variables for the &pdflatex; utility.
 </summary>
 </summary>
+<sets>
+PDFLATEX
+PDFLATEXFLAGS
+PDFLATEXCOM
+LATEXRETRIES
+</sets>
+<uses>
+PDFLATEXCOMSTR
+</uses>
 </tool>
 </tool>
+
+<cvar name="PDFLATEX">
+<summary>
+The &pdflatex; utility.
+</summary>
+</cvar>
+
+<cvar name="PDFLATEXCOM">
+<summary>
+The command line used to call the &pdflatex; utility.
+</summary>
+</cvar>
+
+<cvar name="PDFLATEXCOMSTR">
+<summary>
+The string displayed when calling the &pdflatex; utility.
+If this is not set, then &cv-link-PDFLATEXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(PDFLATEX;COMSTR = "Building $TARGET from LaTeX input $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="PDFLATEXFLAGS">
+<summary>
+General options passed to the &pdflatex; utility.
+</summary>
+</cvar>
index 47e4138a298d9d340fd16fad6452a1f5da6698bc..a895d6f3ac0546fd1f76ac4d3ac2273fdcdde8b5 100644 (file)
@@ -6,6 +6,48 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="pdftex">
 <summary>
 -->
 <tool name="pdftex">
 <summary>
-XXX
+Sets construction variables for the &pdftex; utility.
 </summary>
 </summary>
+<sets>
+PDFTEX
+PDFTEXFLAGS
+PDFTEXCOM
+PDFLATEX
+PDFLATEXFLAGS
+PDFLATEXCOM
+LATEXRETRIES
+</sets>
+<uses>
+PDFTEXCOMSTR
+PDFLATEXCOMSTR
+</uses>
 </tool>
 </tool>
+
+<cvar name="PDFTEX">
+<summary>
+The &pdftex; utility.
+</summary>
+</cvar>
+
+<cvar name="PDFTEXCOM">
+<summary>
+The command line used to call the &pdftex; utility.
+</summary>
+</cvar>
+
+<cvar name="PDFTEXCOMSTR">
+<summary>
+The string displayed when calling the &pdftex; utility.
+If this is not set, then &cv-link-PDFTEXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(PDFTEXCOMSTR = "Building $TARGET from TeX input $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="PDFTEXFLAGS">
+<summary>
+General options passed to the &pdftex; utility.
+</summary>
+</cvar>
index 4b11cbcc5e1eee1262551a698202023cfcb5a675..66fe5545b7cc16372d937b5770a71853311c441f 100644 (file)
@@ -6,8 +6,36 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="qt">
 <summary>
 -->
 <tool name="qt">
 <summary>
-XXX
+Sets construction variables for building Qt applications.
 </summary>
 </summary>
+<sets>
+QTDIR
+QT_BINPATH
+QT_CPPPATH
+QT_LIBPATH
+QT_MOC
+QT_UIC
+QT_LIB
+QT_AUTOSCAN
+QT_UICIMPLFLAGS
+QT_UICDECLFLAGS
+QT_MOCFROMHFLAGS
+QT_MOCFROMCXXFLAGS
+QT_UICDECLPREFIX
+QT_UICDECLSUFFIX
+QT_UICIMPLPREFIX
+QT_UICIMPLSUFFIX
+QT_MOCHPREFIX
+QT_MOCHSUFFIX
+QT_MOCCXXPREFIX
+QT_MOCCXXSUFFIX
+QT_UISUFFIX
+QT_UICCOM
+QT_MOCFROMHCOM
+QT_MOCFROMCXXCOM
+</sets>
+<uses>
+</uses>
 </tool>
 
 <builder name="Moc">
 </tool>
 
 <builder name="Moc">
@@ -168,10 +196,10 @@ file.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
-<cvar name="QT_MOCFROMCPPFLAGS">
+<cvar name="QT_MOCFROMCXXFLAGS">
 <summary>
 Default value is '-i'. These flags are passed to moc, when moccing a
 <summary>
 Default value is '-i'. These flags are passed to moc, when moccing a
-cpp file.
+C++ file.
 </summary>
 </cvar>
 
 </summary>
 </cvar>
 
index 63511e54dbe4155a21a3a1578b0f4ad813b6351a..ff13f48f936376856098e8ded7452938ddf56bff 100644 (file)
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="rmic">
 <summary>
 -->
 <tool name="rmic">
 <summary>
-XXX
+Sets construction variables for the &rmic; utility.
 </summary>
 </summary>
+<sets>
+RMIC
+RMICFLAGS
+RMICCOM
+JAVACLASSSUFFIX
+</sets>
+<uses>
+RMICCOMSTR
+</uses>
 </tool>
 
 <builder name="RMIC">
 </tool>
 
 <builder name="RMIC">
index a3adb224d4b8d2acff8d603c8238f8684212059a..dd774168f8e74d79ea74db4a359f28327ee6bcfe 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="rpcgen">
 <summary>
 -->
 <tool name="rpcgen">
 <summary>
-XXX
+Sets construction variables for building with RPCGEN.
 </summary>
 </summary>
+<sets>
+RPCGEN
+RPCGENFLAGS
+RPCGENCLIENTFLAGS
+RPCGENHEADERFLAGS
+RPCGENSERVICEFLAGS
+RPCGENXDRFLAGS
+</sets>
+<uses>
+</uses>
 </tool>
 
 <builder name="RPCGenClient">
 </tool>
 
 <builder name="RPCGenClient">
index ccea1ca800e8ec1ba2e3fb6d533b11a1cac5c6e1..63debc43463b2b11f5c2a10eef83d02a00cdc765 100644 (file)
@@ -6,6 +6,19 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="sgiar">
 <summary>
 -->
 <tool name="sgiar">
 <summary>
-XXX
+Sets construction variables for the SGI library archiver.
 </summary>
 </summary>
+<sets>
+AR
+ARFLAGS
+ARCOMSTR
+SHLINK
+SHLINKFLAGS
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+SHLINKCOMSTR
+</uses>
 </tool>
 </tool>
index a507f7948a9a2e6e70f3091faec910c4f3033be3..a933ac2ddb0561063e420ac5c08353ae7dbc3f5f 100644 (file)
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="sgic++">
 <summary>
 -->
 <tool name="sgic++">
 <summary>
-XXX
+Sets construction variables for the SGI C++ compiler.
 </summary>
 </summary>
+<sets>
+CXX
+CXXFLAGS
+SHCXX
+SHOBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+</sets>
 </tool>
 </tool>
index 285ae8c51960cb60091dbcbc565c70e113275ed7..152b841c7910955bdbfca6d64f383ad144810ca9 100644 (file)
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="sgicc">
 <summary>
 -->
 <tool name="sgicc">
 <summary>
-XXX
+Sets construction variables for the SGI C compiler.
 </summary>
 </summary>
+<sets>
+CXX
+SHOBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+</sets>
+<uses>
+</uses>
 </tool>
 </tool>
index 8fa8f7d7cd3e4ccc8bf2b2e7c70d790327137902..23039725ed58341f84dc5446202399aeb6707459 100644 (file)
@@ -6,6 +6,12 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="sgilink">
 <summary>
 -->
 <tool name="sgilink">
 <summary>
-XXX
+Sets construction variables for the SGI linker.
 </summary>
 </summary>
+<sets>
+LINK
+SHLINKFLAGS
+RPATHPREFIX
+RPATHSUFFIX
+</sets>
 </tool>
 </tool>
index e22563d8dcd7e221a86ceb7a7bd337bd001842d5..884a8644d4df0fdfc9d25cf580e44f566c2c4bf1 100644 (file)
@@ -6,6 +6,20 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="sunar">
 <summary>
 -->
 <tool name="sunar">
 <summary>
-XXX
+Sets construction variables for the Sun library archiver.
 </summary>
 </summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+SHLINKCOMSTR
+</uses>
 </tool>
 </tool>
index c18dd9090ba703625b7f63fa51d68cb83a911797..6eb2920d20306b1baaa38cb043ef5628efbb9d97 100644 (file)
@@ -6,6 +6,14 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="sunc++">
 <summary>
 -->
 <tool name="sunc++">
 <summary>
-XXX
+Sets construction variables for the Sun C++ compiler.
 </summary>
 </summary>
+<sets>
+CXX
+SHCXX
+CXXVERSION
+SHCXXFLAGS
+SHOBJPREFIX
+SHOBJSUFFIX
+</sets>
 </tool>
 </tool>
index 9f6d3408eb8667c6ea1c59192d78162dae809268..da91d1240f384454d73e2558ceee36382f214892 100644 (file)
@@ -6,6 +6,12 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="suncc">
 <summary>
 -->
 <tool name="suncc">
 <summary>
-XXX
+Sets construction variables for the Sun C compiler.
 </summary>
 </summary>
+<sets>
+CXX
+SHCCFLAGS
+SHOBJPREFIX
+SHOBJSUFFIX
+</sets>
 </tool>
 </tool>
index 6cad24f7d4830e7972a478aa300f3898f1307053..083d4289a32b6244e153f631c3c055e7bc7ae5da 100644 (file)
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="sunlink">
 <summary>
 -->
 <tool name="sunlink">
 <summary>
-XXX
+Sets construction variables for the Sun linker.
 </summary>
 </summary>
+<sets>
+SHLINKFLAGS
+RPATHPREFIX
+RPATHSUFFIX
+</sets>
 </tool>
 </tool>
index 05faff2e0fe5b3b492525a0acd7e880286c41c91..d277d64277e9d0c7a9585983511fdcdd500359b5 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="swig">
 <summary>
 -->
 <tool name="swig">
 <summary>
-XXX
+Sets construction variables for the SWIG interface generator.
 </summary>
 </summary>
+<sets>
+SWIG
+SWIGFLAGS
+SWIGCFILESUFFIX
+SWIGCXXFILESUFFIX
+SWIGCOM
+</sets>
+<uses>
+SWIGCOMSTR
+</uses>
 </tool>
 
 <cvar name="SWIG">
 </tool>
 
 <cvar name="SWIG">
index 763df545ee2e55ec91303b46efec58c4231f743a..8cf407d9687adad28df1199aebc7ad62654f6679 100644 (file)
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="tar">
 <summary>
 -->
 <tool name="tar">
 <summary>
-XXX
+Sets construction variables for the &tar; archiver.
 </summary>
 </summary>
+<sets>
+TAR
+TARFLAGS
+TARCOM
+TARSUFFIX
+</sets>
+<uses>
+TARCOMSTR
+</uses>
 </tool>
 
 <builder name="Tar">
 </tool>
 
 <builder name="Tar">
index 4cfc252c15fb38946b41246bb677f6e5749204da..80a84cc1988efbaed2ee40647f83563c3a6d9299 100644 (file)
@@ -6,8 +6,28 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="tex">
 <summary>
 -->
 <tool name="tex">
 <summary>
-XXX
+Sets construction variables for the TeX formatter and typesetter.
 </summary>
 </summary>
+<sets>
+TEX
+TEXFLAGS
+TEXCOM
+LATEX
+LATEXFLAGS
+LATEXCOM
+BIBTEX
+BIBTEXFLAGS
+BIBTEXCOM
+MAKEINDEX
+MAKEINDEXFLAGS
+MAKEINDEXCOM
+</sets>
+<uses>
+TEXCOMSTR
+LATEXCOMSTR
+BIBTEXCOMSTR
+MAKEINDEXCOMSTR
+</uses>
 </tool>
 
 <cvar name="BIBTEX">
 </tool>
 
 <cvar name="BIBTEX">
index 9415c7d319d9ebf9e3fe82a2e41fa6db8957e40d..55179d3a07d79f6e52993a52f7bcf9fb21e8c057 100644 (file)
@@ -6,6 +6,17 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="tlib">
 <summary>
 -->
 <tool name="tlib">
 <summary>
-XXX
+Sets construction variables for the Borlan
+<application>tib</application> library archiver.
 </summary>
 </summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+</uses>
 </tool>
 </tool>
index a6ad9b4b6686622bb7c256099ee55845c4bb6bab..2db06030dfcd6ec5932739a67113ea55310997f8 100644 (file)
@@ -6,8 +6,19 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="yacc">
 <summary>
 -->
 <tool name="yacc">
 <summary>
-XXX
+Sets construction variables for the &yacc; parse generator.
 </summary>
 </summary>
+<sets>
+YACC
+YACCFLAGS
+YACCCOM
+YACCHFILESUFFIX
+YACCHXXFILESUFFIX
+YACCVCGFILESUFFIX
+</sets>
+<uses>
+YACCCOMSTR
+</uses>
 </tool>
 
 <cvar name="YACC">
 </tool>
 
 <cvar name="YACC">
index 909a4c40ea97935647d6d2745a59fc10d47ae7da..c7c233eaa52ad69140c9162fc8f063757c7c279c 100644 (file)
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
 -->
 <tool name="zip">
 <summary>
 -->
 <tool name="zip">
 <summary>
-XXX
+Sets construction variables for the &zip; archiver.
 </summary>
 </summary>
+<sets>
+ZIP
+ZIPFLAGS
+ZIPCOM
+ZIPCOMPRESSION
+ZIPSUFFIX
+</sets>
+<uses>
+ZIPCOMSTR
+</uses>
 </tool>
 
 <builder name="Zip">
 </tool>
 
 <builder name="Zip">
@@ -92,3 +102,9 @@ module is otherwise unavailable.
 General options passed to the zip utility.
 </summary>
 </cvar>
 General options passed to the zip utility.
 </summary>
 </cvar>
+
+<cvar name="ZIPSUFFIX">
+<summary>
+The suffix used for zip file names.
+</summary>
+</cvar>
index d79aed78024cbefe2181c22c2c9a053461b8db27..5614adba48a6299492dfe70ef14dfa0df5943620 100644 (file)
@@ -29,7 +29,7 @@ import stat
 import string
 import sys
 
 import string
 import sys
 
-Version = "0.96.96"
+Version = "0.97"
 
 man_pages = [
     'scons.1',
 
 man_pages = [
     'scons.1',
similarity index 100%
rename from test/Dir.py
rename to test/Dir/Dir.py
diff --git a/test/Dir/mixed-targets.py b/test/Dir/mixed-targets.py
new file mode 100644 (file)
index 0000000..52f9f0a
--- /dev/null
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Make sure that target lists of intermixed Node.FS.Dir and Node.FS.File
+Nodes work with a DirEntryScanner.
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.subdir('src', ['src', 'dir'])
+
+test.write('SConstruct', """\
+import os
+import shutil
+
+import SCons.Defaults
+
+def copier(target, source, env):
+    os.rmdir('build')
+    shutil.copytree(str(source[0]), 'build')
+    return 0
+
+Copier = Builder(action = copier,
+                 target_scanner = SCons.Defaults.DirEntryScanner,
+                 target_factory = Entry,
+                 source_factory = Entry)
+
+env = Environment(BUILDERS = {'Copier': Copier})
+env.Copier(['build/dir', 'build/file1'], ['src'])
+""")
+
+test.write(['src', 'file1'],            "src/file1\n")
+
+test.write(['src', 'dir', 'file2'],     "src/dir/file2\n")
+test.write(['src', 'dir', 'file3'],     "src/dir/file3\n")
+
+test.run(arguments = '.')
+
+test.must_match(['build', 'file1'],         "src/file1\n")
+
+test.must_match(['build', 'dir', 'file2'],  "src/dir/file2\n")
+test.must_match(['build', 'dir', 'file3'],  "src/dir/file3\n")
+
+test.pass_test()
similarity index 100%
rename from test/DirSource.py
rename to test/Dir/source.py
diff --git a/test/Parallel/ref_count.py b/test/Parallel/ref_count.py
new file mode 100644 (file)
index 0000000..93b6142
--- /dev/null
@@ -0,0 +1,153 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test for a specific race condition that used to stop a build cold when
+a Node's ref_count would get decremented past 0 and "disappear" from
+the Taskmaster's walk of the dependency graph.
+
+Note that this test does not fail every time, but would at least fail
+more than 60%-70% of the time on the system(s) I tested.
+
+The rather complicated set up here creates a condition where,
+after building four "object files" simultaneously while running with
+-j4, sets up a race condition amongst the three dependencies of the
+c6146/cpumanf.out file, where two of the dependencies are built at the
+same time (that is, by the same command) and one is built separately.
+
+We used to detect Nodes that had been started but not finished building
+and just set the waiting ref_count to the number of Nodes.  In this case,
+if we got unlucky, we'd re-visit the Nodes for the two files first and
+set the ref_count to two *before* the command that built individual node
+completed and decremented the ref_count from two to one.  Then when the
+two files completed, we'd update the ref_count to 1 - 2 = -1, which would
+cause the Taskmaster to *not* "wake up" the Node because it's ref_count
+hadn't actually reached 0.
+
+(The solution was to not set the ref_count, but to add to it only the
+Nodes that were, in fact, added to the waiting_parents lists of various
+child Nodes.)
+"""
+
+import TestSCons
+
+_python_ = TestSCons._python_
+
+test = TestSCons.TestSCons()
+
+test.write('build.py', """\
+import string
+import sys
+import time
+args = sys.argv[1:]
+outputs = []
+while args:
+    if args[0][0] != '-':
+        break
+    arg = args.pop(0)
+    if arg == '-o':
+        outputs.append(args.pop(0))
+        continue
+    if arg == '-s':
+        time.sleep(int(args.pop(0)))
+contents = ''
+for ifile in args:
+    contents = contents + open(ifile, 'rb').read()
+for ofile in outputs:
+    ofp = open(ofile, 'wb')
+    ofp.write('%s:  building from %s\\n' % (ofile, string.join(args)))
+    ofp.write(contents)
+    ofp.close()
+""")
+
+#
+#
+#
+
+test.write('SConstruct', """\
+env = Environment()
+cmd = r'%(_python_)s build.py -o $TARGET $SOURCES'
+f1 = env.Command('c6416/cpumanf/file1.obj', 'file1.c', cmd)
+f2 = env.Command('c6416/cpumanf/file2.obj', 'file2.c', cmd)
+f3 = env.Command('c6416/cpumanf/file3.obj', 'file3.c', cmd)
+f4 = env.Command('c6416/cpumanf/file4.obj', 'file4.c', cmd)
+f5 = env.Command('c6416/cpumanf/file5.obj', 'file5.c', cmd)
+f6 = env.Command('c6416/cpumanf/file6.obj', 'file6.c', cmd)
+
+objs = f1 + f2 + f3 + f4 + f5 + f6
+
+btc = env.Command('build/target/cpumanf.out', 'c6416/cpumanf.out', cmd)
+
+addcheck_obj = env.Command('addcheck.obj', 'addcheck.c', cmd)
+
+addcheck_exe = env.Command('addcheck.exe', addcheck_obj, cmd)
+
+cmd2 = r'%(_python_)s build.py -s 2 -o ${TARGETS[0]} -o ${TARGETS[1]} $SOURCES'
+
+cksums = env.Command(['c6416/cpumanf_pre_cksum.out',
+                     'c6416/cpumanf_pre_cksum.map'],
+                    objs,
+                    cmd2)
+
+cpumanf_out = env.Command('c6416/cpumanf.out',
+                          cksums + addcheck_exe,
+                          cmd)
+
+cpumanf = env.Alias('cpumanf', objs + btc)
+
+env.Command('after.out', cpumanf, r'%(_python_)s build.py -o $TARGET after.in')
+""" % locals())
+
+test.write('file1.c', "file1.c\n")
+test.write('file2.c', "file2.c\n")
+test.write('file3.c', "file3.c\n")
+test.write('file4.c', "file4.c\n")
+test.write('file5.c', "file5.c\n")
+test.write('file6.c', "file6.c\n")
+
+test.write('addcheck.c', "addcheck.c\n")
+
+test.write('after.in', "after.in\n")
+
+test.run(arguments = '-j4 after.out')
+
+test.must_match('after.out', """\
+after.out:  building from after.in
+after.in
+""")
+
+test.write('file5.c', "file5.c modified\n")
+
+test.write('after.in', "after.in modified\n")
+
+test.run(arguments = '-j4 after.out')
+
+test.must_match('after.out', """\
+after.out:  building from after.in
+after.in modified
+""")
+
+test.pass_test()
index 0133ced1813cf9d2231faa672b43845dd66e157f..a24c65da5a3b7b9f8eedcf2ae030411ae743c3e3 100644 (file)
@@ -81,7 +81,17 @@ class TestPerforce(TestSCons.TestSCons):
                 spawnv(os.P_NOWAIT, self.p4d, args)
                 self.sleep(2)
         else:
                 spawnv(os.P_NOWAIT, self.p4d, args)
                 self.sleep(2)
         else:
-            self.p4portflags = ['-p', self.host + ':1666']
+            import socket
+            s = socket.socket()
+            host_port = (self.host, 1666)
+            try:
+                s.connect(host_port)
+            except socket.error:
+                self.skip_test("No Perforce server found; skipping test(s).\n")
+            else:
+                s.close()
+
+            self.p4portflags = ['-p', '%s:%s' % host_port]
             try:
                 self.p4('obliterate -y //%s/...' % self.depot)
                 self.p4('depot -d %s' % self.depot)
             try:
                 self.p4('obliterate -y //%s/...' % self.depot)
                 self.p4('depot -d %s' % self.depot)
index 22932162960191daa2704538c1023349f05e15ef..353d9a4264f50c32bbaa7745a8649b66b36fb784 100644 (file)
@@ -36,8 +36,14 @@ import TestSCons
 
 test = TestSCons.TestSCons()
 
 
 test = TestSCons.TestSCons()
 
+pdflatex = test.where_is('pdflatex')
+
+if not pdflatex:
+    test.skip_test("Could not find pdflatex; skipping test(s).\n")
+
 test.write(['SConstruct'], """\
 test.write(['SConstruct'], """\
-PDF( 'bibtest.tex' )
+env = Environment(tools=['pdflatex', 'tex'])
+env.PDF( 'bibtest.tex' )
 """)
 
 test.write(['bibtest.tex'], r"""
 """)
 
 test.write(['bibtest.tex'], r"""
index d267f00ddfebdc798009eb46f486a6a2941fd7fe..7debffc3d3c31da8f6dddfb3e340486afd7e7274 100644 (file)
@@ -143,11 +143,12 @@ tools = [
     'zip',
 ]
 
     'zip',
 ]
 
-if sys.platform == 'win32':
-    tools.extend([
-        '386asm',
-        'linkloc',
-    ])
+#if sys.platform == 'win32':
+# Just comment out (for now?) due to registry dependency.
+#    tools.extend([
+#        '386asm',
+#        'linkloc',
+#    ])
 
 # Intel no compiler warning..
 intel_no_compiler_warning = """
 
 # Intel no compiler warning..
 intel_no_compiler_warning = """