summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2007-05-18 05:40:31 (GMT)
committerSteven Knight <knight@baldmt.com>2007-05-18 05:40:31 (GMT)
commit691da3ed8ba25b0e776d83b4404993925a876071 (patch)
tree4d532be0f91384214c930e1150d7e6becd44a92d /src/engine
parentf020c85e62e3e5c53c2b09a803baac67c06ff14a (diff)
downloadSCons-691da3ed8ba25b0e776d83b4404993925a876071.zip
SCons-691da3ed8ba25b0e776d83b4404993925a876071.tar.gz
SCons-691da3ed8ba25b0e776d83b4404993925a876071.tar.bz2
Merged revisions 1884-1905 via svnmerge from
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. ........
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Node/NodeTests.py5
-rw-r--r--src/engine/SCons/Node/__init__.py15
-rw-r--r--src/engine/SCons/Scanner/Dir.py12
-rw-r--r--src/engine/SCons/Scanner/DirTests.py15
-rw-r--r--src/engine/SCons/Taskmaster.py9
-rw-r--r--src/engine/SCons/TaskmasterTests.py9
-rw-r--r--src/engine/SCons/Tool/386asm.xml16
-rw-r--r--src/engine/SCons/Tool/BitKeeper.xml12
-rw-r--r--src/engine/SCons/Tool/CVS.xml12
-rw-r--r--src/engine/SCons/Tool/Perforce.xml11
-rw-r--r--src/engine/SCons/Tool/RCS.xml12
-rw-r--r--src/engine/SCons/Tool/SCCS.xml12
-rw-r--r--src/engine/SCons/Tool/Subversion.xml12
-rw-r--r--src/engine/SCons/Tool/aixc++.xml10
-rw-r--r--src/engine/SCons/Tool/aixcc.xml9
-rw-r--r--src/engine/SCons/Tool/aixf77.xml8
-rw-r--r--src/engine/SCons/Tool/aixlink.xml10
-rw-r--r--src/engine/SCons/Tool/applelink.xml22
-rw-r--r--src/engine/SCons/Tool/ar.xml14
-rw-r--r--src/engine/SCons/Tool/as.xml15
-rw-r--r--src/engine/SCons/Tool/bcc32.xml23
-rw-r--r--src/engine/SCons/Tool/c++.xml23
-rw-r--r--src/engine/SCons/Tool/cc.xml39
-rw-r--r--src/engine/SCons/Tool/cvf.xml21
-rw-r--r--src/engine/SCons/Tool/default.xml3
-rw-r--r--src/engine/SCons/Tool/dmd.xml43
-rw-r--r--src/engine/SCons/Tool/dvi.xml11
-rw-r--r--src/engine/SCons/Tool/dvipdf.xml10
-rw-r--r--src/engine/SCons/Tool/dvips.xml12
-rw-r--r--src/engine/SCons/Tool/f77.xml50
-rw-r--r--src/engine/SCons/Tool/f90.xml38
-rw-r--r--src/engine/SCons/Tool/f95.xml39
-rw-r--r--src/engine/SCons/Tool/fortran.xml37
-rw-r--r--src/engine/SCons/Tool/g++.xml9
-rw-r--r--src/engine/SCons/Tool/g77.xml4
-rw-r--r--src/engine/SCons/Tool/gas.xml6
-rw-r--r--src/engine/SCons/Tool/gcc.xml7
-rw-r--r--src/engine/SCons/Tool/gnulink.xml7
-rw-r--r--src/engine/SCons/Tool/gs.xml10
-rw-r--r--src/engine/SCons/Tool/hpc++.xml2
-rw-r--r--src/engine/SCons/Tool/hpcc.xml9
-rw-r--r--src/engine/SCons/Tool/hplink.xml7
-rw-r--r--src/engine/SCons/Tool/icc.xml21
-rw-r--r--src/engine/SCons/Tool/icl.xml3
-rw-r--r--src/engine/SCons/Tool/ifl.xml15
-rw-r--r--src/engine/SCons/Tool/ifort.xml7
-rw-r--r--src/engine/SCons/Tool/ilink.xml14
-rw-r--r--src/engine/SCons/Tool/ilink32.xml14
-rw-r--r--src/engine/SCons/Tool/intelc.xml16
-rw-r--r--src/engine/SCons/Tool/jar.xml11
-rw-r--r--src/engine/SCons/Tool/javac.xml12
-rw-r--r--src/engine/SCons/Tool/javah.xml11
-rw-r--r--src/engine/SCons/Tool/latex.xml10
-rw-r--r--src/engine/SCons/Tool/lex.xml10
-rw-r--r--src/engine/SCons/Tool/link.xml25
-rw-r--r--src/engine/SCons/Tool/linkloc.xml22
-rw-r--r--src/engine/SCons/Tool/m4.xml10
-rw-r--r--src/engine/SCons/Tool/masm.xml17
-rw-r--r--src/engine/SCons/Tool/midl.xml36
-rw-r--r--src/engine/SCons/Tool/mingw.xml28
-rw-r--r--src/engine/SCons/Tool/mslib.xml14
-rw-r--r--src/engine/SCons/Tool/mslink.xml45
-rw-r--r--src/engine/SCons/Tool/msvc.xml85
-rw-r--r--src/engine/SCons/Tool/msvs.xml81
-rw-r--r--src/engine/SCons/Tool/mwcc.xml30
-rw-r--r--src/engine/SCons/Tool/mwld.xml18
-rw-r--r--src/engine/SCons/Tool/nasm.xml14
-rw-r--r--src/engine/SCons/Tool/pdf.xml10
-rw-r--r--src/engine/SCons/Tool/pdflatex.xml40
-rw-r--r--src/engine/SCons/Tool/pdftex.xml44
-rw-r--r--src/engine/SCons/Tool/qt.xml34
-rw-r--r--src/engine/SCons/Tool/rmic.xml11
-rw-r--r--src/engine/SCons/Tool/rpcgen.xml12
-rw-r--r--src/engine/SCons/Tool/sgiar.xml15
-rw-r--r--src/engine/SCons/Tool/sgic++.xml9
-rw-r--r--src/engine/SCons/Tool/sgicc.xml9
-rw-r--r--src/engine/SCons/Tool/sgilink.xml8
-rw-r--r--src/engine/SCons/Tool/sunar.xml16
-rw-r--r--src/engine/SCons/Tool/sunc++.xml10
-rw-r--r--src/engine/SCons/Tool/suncc.xml8
-rw-r--r--src/engine/SCons/Tool/sunlink.xml7
-rw-r--r--src/engine/SCons/Tool/swig.xml12
-rw-r--r--src/engine/SCons/Tool/tar.xml11
-rw-r--r--src/engine/SCons/Tool/tex.xml22
-rw-r--r--src/engine/SCons/Tool/tlib.xml13
-rw-r--r--src/engine/SCons/Tool/yacc.xml13
-rw-r--r--src/engine/SCons/Tool/zip.xml18
87 files changed, 1410 insertions, 131 deletions
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py
index 50de2b0..ad9eb66 100644
--- a/src/engine/SCons/Node/NodeTests.py
+++ b/src/engine/SCons/Node/NodeTests.py
@@ -1314,8 +1314,11 @@ class NodeTestCase(unittest.TestCase):
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
+ 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"""
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index fa682a2..6644d7a 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -336,7 +336,20 @@ class 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)
diff --git a/src/engine/SCons/Scanner/Dir.py b/src/engine/SCons/Scanner/Dir.py
index 535150a..9203fb2 100644
--- a/src/engine/SCons/Scanner/Dir.py
+++ b/src/engine/SCons/Scanner/Dir.py
@@ -92,6 +92,14 @@ def scan_in_memory(node, env, path=()):
"""
"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()
- return map(lambda n, e=node.entries: e[n], entry_list)
+ return map(lambda n, e=entries: e[n], entry_list)
diff --git a/src/engine/SCons/Scanner/DirTests.py b/src/engine/SCons/Scanner/DirTests.py
index 0dde95e..5f180bc 100644
--- a/src/engine/SCons/Scanner/DirTests.py
+++ b/src/engine/SCons/Scanner/DirTests.py
@@ -50,6 +50,8 @@ class DummyEnvironment:
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
@@ -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")
-class DirScannerTestCase1(DirScannerTestBase):
+class DirScannerTestCase(DirScannerTestBase):
def runTest(self):
env = DummyEnvironment(self.test.workpath())
@@ -100,7 +102,7 @@ class DirScannerTestCase1(DirScannerTestBase):
sss = map(str, deps)
assert sss == expect, sss
-class DirScannerTestCase2(DirScannerTestBase):
+class DirEntryScannerTestCase(DirScannerTestBase):
def runTest(self):
env = DummyEnvironment(self.test.workpath())
@@ -114,10 +116,15 @@ class DirScannerTestCase2(DirScannerTestBase):
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()
- suite.addTest(DirScannerTestCase1())
- suite.addTest(DirScannerTestCase2())
+ suite.addTest(DirScannerTestCase())
+ suite.addTest(DirEntryScannerTestCase())
return suite
if __name__ == "__main__":
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py
index 4de35f0..9a5011b 100644
--- a/src/engine/SCons/Taskmaster.py
+++ b/src/engine/SCons/Taskmaster.py
@@ -52,6 +52,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.compat
+import operator
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.
- 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
@@ -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.
- 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:
diff --git a/src/engine/SCons/TaskmasterTests.py b/src/engine/SCons/TaskmasterTests.py
index f74cf34..757306f 100644
--- a/src/engine/SCons/TaskmasterTests.py
+++ b/src/engine/SCons/TaskmasterTests.py
@@ -54,6 +54,7 @@ class Node:
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
@@ -112,7 +113,13 @@ class 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)
diff --git a/src/engine/SCons/Tool/386asm.xml b/src/engine/SCons/Tool/386asm.xml
index bb36048..824e060 100644
--- a/src/engine/SCons/Tool/386asm.xml
+++ b/src/engine/SCons/Tool/386asm.xml
@@ -6,6 +6,20 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="386asm">
<summary>
-XXX
+Sets construction variables for the 386ASM assembler
+for the Phar Lap ETS embedded operating system.
</summary>
+<sets>
+AS
+ASFLAGS
+ASPPFLAGS
+ASCOM
+ASPPCOM
+</sets>
+<uses>
+CC
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/BitKeeper.xml b/src/engine/SCons/Tool/BitKeeper.xml
index 8ab7049..d0e42d7 100644
--- a/src/engine/SCons/Tool/BitKeeper.xml
+++ b/src/engine/SCons/Tool/BitKeeper.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="BitKeeper">
<summary>
-XXX
+Sets construction variables for the BitKeeper
+source code control system.
</summary>
+<sets>
+BITKEEPER
+BITKEEPERGET
+BITKEEPERGETFLAGS
+BITKEEPERCOM
+</sets>
+<uses>
+BITKEEPERCOMSTR
+</uses>
</tool>
<cvar name="BITKEEPER">
diff --git a/src/engine/SCons/Tool/CVS.xml b/src/engine/SCons/Tool/CVS.xml
index fb666e8..3d8c055 100644
--- a/src/engine/SCons/Tool/CVS.xml
+++ b/src/engine/SCons/Tool/CVS.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="CVS">
<summary>
-XXX
+Sets construction variables for the CVS source code
+management system.
</summary>
+<sets>
+CVS
+CVSCOM
+CVSFLAGS
+CVSCOFLAGS
+</sets>
+<uses>
+CVSCOMSTR
+</uses>
</tool>
<cvar name="CVS">
diff --git a/src/engine/SCons/Tool/Perforce.xml b/src/engine/SCons/Tool/Perforce.xml
index b8824ed..bc7ffed 100644
--- a/src/engine/SCons/Tool/Perforce.xml
+++ b/src/engine/SCons/Tool/Perforce.xml
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="Perforce">
<summary>
-XXX
+Sets construction variables for interacting with the
+Perforce source code management system.
</summary>
+<sets>
+P4
+P4FLAGS
+P4COM
+</sets>
+<uses>
+P4COMSTR
+</uses>
</tool>
<cvar name="P4">
diff --git a/src/engine/SCons/Tool/RCS.xml b/src/engine/SCons/Tool/RCS.xml
index 2c89a5b..c81cf94 100644
--- a/src/engine/SCons/Tool/RCS.xml
+++ b/src/engine/SCons/Tool/RCS.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="RCS">
<summary>
-XXX
+Sets construction variables for the interaction
+with the Revision Control System.
</summary>
+<sets>
+RCS
+RCS_CO
+RCS_COFLAGS
+RCS_COCOM
+</sets>
+<uses>
+RCS_COCOMSTR
+</uses>
</tool>
<cvar name="RCS">
diff --git a/src/engine/SCons/Tool/SCCS.xml b/src/engine/SCons/Tool/SCCS.xml
index 9f7539d..5a55bda 100644
--- a/src/engine/SCons/Tool/SCCS.xml
+++ b/src/engine/SCons/Tool/SCCS.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="SCCS">
<summary>
-XXX
+Sets construction variables for interacting with the
+Source Code Control System.
</summary>
+<sets>
+SCCS
+SCCSFLAGS
+SCCSGETFLAGS
+SCCSCOM
+</sets>
+<uses>
+SCCSCOMSTR
+</uses>
</tool>
<cvar name="SCCS">
diff --git a/src/engine/SCons/Tool/Subversion.xml b/src/engine/SCons/Tool/Subversion.xml
index c3a4f5f..adbd2b7 100644
--- a/src/engine/SCons/Tool/Subversion.xml
+++ b/src/engine/SCons/Tool/Subversion.xml
@@ -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.
-->
+<!--
<tool name="Subversion">
<summary>
-XXX
+Sets construction variables for interacting with Subversion.
</summary>
+<sets>
+SVN
+SVNFLAGS
+SVNCOM
+</sets>
+<uses>
+SVNCOMSTR
+</uses>
</tool>
+-->
<!--
<cvar name="SVN">
diff --git a/src/engine/SCons/Tool/aixc++.xml b/src/engine/SCons/Tool/aixc++.xml
index 2f03aa6..05b4dd6 100644
--- a/src/engine/SCons/Tool/aixc++.xml
+++ b/src/engine/SCons/Tool/aixc++.xml
@@ -6,6 +6,14 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="aixc++">
<summary>
-XXX
+Sets construction variables for the IMB xlc / Visual Age C++ compiler.
</summary>
+<sets>
+CXX
+SHCXX
+CXXVERSION
+SHOBJSUFFIX
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/aixcc.xml b/src/engine/SCons/Tool/aixcc.xml
index a7a043c..8ec301b 100644
--- a/src/engine/SCons/Tool/aixcc.xml
+++ b/src/engine/SCons/Tool/aixcc.xml
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="aixcc">
<summary>
-XXX
+Sets construction variables for the IBM xlc / Visual Age C compiler.
</summary>
+<sets>
+CC
+SHCC
+CCVERSION
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/aixf77.xml b/src/engine/SCons/Tool/aixf77.xml
index 9043b66..14274f3 100644
--- a/src/engine/SCons/Tool/aixf77.xml
+++ b/src/engine/SCons/Tool/aixf77.xml
@@ -6,6 +6,12 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="aixf77">
<summary>
-XXX
+Sets construction variables for the IBM Visual Age f77 Fortran compiler.
</summary>
+<sets>
+F77
+SHF77
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/aixlink.xml b/src/engine/SCons/Tool/aixlink.xml
index a1aa05b..567882b 100644
--- a/src/engine/SCons/Tool/aixlink.xml
+++ b/src/engine/SCons/Tool/aixlink.xml
@@ -6,6 +6,14 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="aixlink">
<summary>
-XXX
+Sets construction variables for the IBM Visual Age linker.
</summary>
+<sets>
+<!--SMARTLINKFLAGS-->
+LINKFLAGS
+SHLINKFLAGS
+SHLIBSUFFIX
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/applelink.xml b/src/engine/SCons/Tool/applelink.xml
index d5fadbb..10b4559 100644
--- a/src/engine/SCons/Tool/applelink.xml
+++ b/src/engine/SCons/Tool/applelink.xml
@@ -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.
-->
+<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,
diff --git a/src/engine/SCons/Tool/ar.xml b/src/engine/SCons/Tool/ar.xml
index b26f634..1fe9a57 100644
--- a/src/engine/SCons/Tool/ar.xml
+++ b/src/engine/SCons/Tool/ar.xml
@@ -6,8 +6,20 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="ar">
<summary>
-XXX
+Sets construction variables for the &ar; library archiver.
</summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+LIBPREFIX
+LIBSUFFIX
+RANLIB
+RANLIBFLAGS
+RANLIBCOM
+</sets>
+<uses>
+</uses>
</tool>
<cvar name="AR">
diff --git a/src/engine/SCons/Tool/as.xml b/src/engine/SCons/Tool/as.xml
index f61d26a..b771d0e 100644
--- a/src/engine/SCons/Tool/as.xml
+++ b/src/engine/SCons/Tool/as.xml
@@ -6,8 +6,21 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="as">
<summary>
-XXX
+Sets construction variables for the &as; assembler.
</summary>
+<sets>
+AS
+ASFLAGS
+ASCOM
+ASPPFLAGS
+ASPPCOM
+</sets>
+<uses>
+CC
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
</tool>
<cvar name="AS">
diff --git a/src/engine/SCons/Tool/bcc32.xml b/src/engine/SCons/Tool/bcc32.xml
index 1cdb9c0..38ded35 100644
--- a/src/engine/SCons/Tool/bcc32.xml
+++ b/src/engine/SCons/Tool/bcc32.xml
@@ -6,6 +6,27 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="bcc32">
<summary>
-XXX
+Sets construction variables for the bcc32 compiler.
</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>
diff --git a/src/engine/SCons/Tool/c++.xml b/src/engine/SCons/Tool/c++.xml
index 2dc7bb2..02530da 100644
--- a/src/engine/SCons/Tool/c++.xml
+++ b/src/engine/SCons/Tool/c++.xml
@@ -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.
-->
-<tool name="c++">
+<tool name="cXX">
<summary>
-XXX
+Sets construction variables for generic POSIX C++ compilers.
</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">
diff --git a/src/engine/SCons/Tool/cc.xml b/src/engine/SCons/Tool/cc.xml
index b7ff65a..a89182a 100644
--- a/src/engine/SCons/Tool/cc.xml
+++ b/src/engine/SCons/Tool/cc.xml
@@ -6,22 +6,31 @@ See its __doc__ string for a discussion of the format.
-->
<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>
+<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">
diff --git a/src/engine/SCons/Tool/cvf.xml b/src/engine/SCons/Tool/cvf.xml
index 9acde9b..a8011e1 100644
--- a/src/engine/SCons/Tool/cvf.xml
+++ b/src/engine/SCons/Tool/cvf.xml
@@ -6,6 +6,25 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="cvf">
<summary>
-XXX
+Sets construction variables for the Compaq Visual Fortran compiler.
</summary>
+<sets>
+FORTRAN
+FORTRANCOM
+FORTRANPPCOM
+SHFORTRANCOM
+SHFORTRANPPCOM
+OBJSUFFIX
+FORTRANMODDIR
+FORTRANMODDIRPREFIX
+FORTRANMODDIRSUFFIX
+</sets>
+<uses>
+FORTRANFLAGS
+SHFORTRANFLAGS
+_FORTRANMODFLAG
+_FORTRANINCFLAGS
+CPPFLAGS
+_CPPDEFFLAGS
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/default.xml b/src/engine/SCons/Tool/default.xml
index a4da87a..e14f9f7 100644
--- a/src/engine/SCons/Tool/default.xml
+++ b/src/engine/SCons/Tool/default.xml
@@ -6,6 +6,7 @@ See its __doc__ string for a discussion of the format.
-->
<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>
diff --git a/src/engine/SCons/Tool/dmd.xml b/src/engine/SCons/Tool/dmd.xml
index 62ab78e..cab3ab4 100644
--- a/src/engine/SCons/Tool/dmd.xml
+++ b/src/engine/SCons/Tool/dmd.xml
@@ -6,6 +6,47 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="dmd">
<summary>
-XXX
+Sets construction variables for the Digital Mars D compiler.
</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>
diff --git a/src/engine/SCons/Tool/dvi.xml b/src/engine/SCons/Tool/dvi.xml
index 26fdd43..8285a54 100644
--- a/src/engine/SCons/Tool/dvi.xml
+++ b/src/engine/SCons/Tool/dvi.xml
@@ -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.
-->
+<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
diff --git a/src/engine/SCons/Tool/dvipdf.xml b/src/engine/SCons/Tool/dvipdf.xml
index f0679b3..7f5b160 100644
--- a/src/engine/SCons/Tool/dvipdf.xml
+++ b/src/engine/SCons/Tool/dvipdf.xml
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="dvipdf">
<summary>
-XXX
+Sets construction variables for the dvipdf utility.
</summary>
+<sets>
+DVIPDF
+DVIPDFFLAGS
+DVIPDFCOM
+</sets>
+<uses>
+DVIPDFCOMSTR
+</uses>
</tool>
<cvar name="DVIPDF">
diff --git a/src/engine/SCons/Tool/dvips.xml b/src/engine/SCons/Tool/dvips.xml
index dbfcaf3..328bb46 100644
--- a/src/engine/SCons/Tool/dvips.xml
+++ b/src/engine/SCons/Tool/dvips.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="dvips">
<summary>
-XXX
+Sets construction variables for the dvips utility.
</summary>
+<sets>
+DVIPS
+DVIPSFLAGS
+PSCOM
+PSPREFIX
+PSSUFFIX
+</sets>
+<uses>
+PSCOMSTR
+</uses>
</tool>
<builder name="PostScript">
diff --git a/src/engine/SCons/Tool/f77.xml b/src/engine/SCons/Tool/f77.xml
index a1d3c34..3281bd6 100644
--- a/src/engine/SCons/Tool/f77.xml
+++ b/src/engine/SCons/Tool/f77.xml
@@ -6,8 +6,36 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="f77">
<summary>
-XXX
+Set construction variables for generic POSIX Fortran 77 compilers.
</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">
@@ -140,6 +168,16 @@ for all Fortran versions.
</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.
@@ -199,3 +237,13 @@ which specifies the default C-preprocessor command line
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>
diff --git a/src/engine/SCons/Tool/f90.xml b/src/engine/SCons/Tool/f90.xml
index 9159a24..18135a3 100644
--- a/src/engine/SCons/Tool/f90.xml
+++ b/src/engine/SCons/Tool/f90.xml
@@ -6,8 +6,25 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="f90">
<summary>
-XXX
+Set construction variables for generic POSIX Fortran 90 compilers.
</summary>
+<sets>
+F90
+F90FLAGS
+F90COM
+F90PPCOM
+SHF90
+SHF90FLAGS
+SHF90COM
+SHF90PPCOM
+_F90INCFLAGS
+</sets>
+<uses>
+F90COMSTR
+F90PPCOMSTR
+SHF90COMSTR
+SHF90PPCOMSTR
+</uses>
</tool>
<cvar name="F90">
@@ -140,6 +157,15 @@ for all Fortran versions.
</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.
@@ -199,3 +225,13 @@ which specifies the default C-preprocessor command line
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>
diff --git a/src/engine/SCons/Tool/f95.xml b/src/engine/SCons/Tool/f95.xml
index e3c026e..0882a45 100644
--- a/src/engine/SCons/Tool/f95.xml
+++ b/src/engine/SCons/Tool/f95.xml
@@ -6,8 +6,25 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="f95">
<summary>
-XXX
+Set construction variables for generic POSIX Fortran 95 compilers.
</summary>
+<sets>
+F95
+F95FLAGS
+F95COM
+F95PPCOM
+SHF95
+SHF95FLAGS
+SHF95COM
+SHF95PPCOM
+_F95INCFLAGS
+</sets>
+<uses>
+F95COMSTR
+F95PPCOMSTR
+SHF95COMSTR
+SHF95PPCOMSTR
+</uses>
</tool>
<cvar name="F95">
@@ -140,6 +157,16 @@ for all Fortran versions.
</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.
@@ -199,3 +226,13 @@ which specifies the default C-preprocessor command line
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>
diff --git a/src/engine/SCons/Tool/fortran.xml b/src/engine/SCons/Tool/fortran.xml
index c7000af..6dbe7b0 100644
--- a/src/engine/SCons/Tool/fortran.xml
+++ b/src/engine/SCons/Tool/fortran.xml
@@ -6,8 +6,23 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="fortran">
<summary>
-XXX
+Set construction variables for generic POSIX Fortran compilers.
</summary>
+<sets>
+FORTRAN
+FORTRANFLAGS
+FORTRANCOM
+SHFORTRAN
+SHFORTRANFLAGS
+SHFORTRANCOM
+SHFORTRANPPCOM
+</sets>
+<uses>
+FORTRANCOMSTR
+FORTRANPPCOMSTR
+SHFORTRANCOMSTR
+SHFORTRANPPCOMSTR
+</uses>
</tool>
<cvar name="FORTRAN">
@@ -197,6 +212,16 @@ construction variables are included on this command line.
</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
@@ -251,3 +276,13 @@ in the &cv-link-SHFORTRANFLAGS; and
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>
diff --git a/src/engine/SCons/Tool/g++.xml b/src/engine/SCons/Tool/g++.xml
index 4991811..79444b9 100644
--- a/src/engine/SCons/Tool/g++.xml
+++ b/src/engine/SCons/Tool/g++.xml
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="g++">
<summary>
-XXX
+Set construction variables for the &gXX; C++ compiler.
</summary>
+<sets>
+CXX
+SHCXXFLAGS
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+SHOBJSUFFIX
+CXXVERSION
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/g77.xml b/src/engine/SCons/Tool/g77.xml
index 6357f94..96d6f87 100644
--- a/src/engine/SCons/Tool/g77.xml
+++ b/src/engine/SCons/Tool/g77.xml
@@ -6,6 +6,8 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="g77">
<summary>
-XXX
+Set construction variables for the &g77; Fortran compiler.
+Calls the &t-f77; Tool module
+to set variables.
</summary>
</tool>
diff --git a/src/engine/SCons/Tool/gas.xml b/src/engine/SCons/Tool/gas.xml
index 19ad1a9..62bad7b 100644
--- a/src/engine/SCons/Tool/gas.xml
+++ b/src/engine/SCons/Tool/gas.xml
@@ -6,6 +6,10 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="gas">
<summary>
-XXX
+Sets construction variables for the &gas; assembler.
+Calls the &t-as; module.
</summary>
+<sets>
+AS
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/gcc.xml b/src/engine/SCons/Tool/gcc.xml
index 15f19cf..f36a5eb 100644
--- a/src/engine/SCons/Tool/gcc.xml
+++ b/src/engine/SCons/Tool/gcc.xml
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="gcc">
<summary>
-XXX
+Set construction variables for the &gcc; C compiler.
</summary>
+<sets>
+CC
+SHCCFLAGS
+CCVERSION
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/gnulink.xml b/src/engine/SCons/Tool/gnulink.xml
index d454af4..d822081 100644
--- a/src/engine/SCons/Tool/gnulink.xml
+++ b/src/engine/SCons/Tool/gnulink.xml
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="gnulink">
<summary>
-XXX
+Set construction variables for GNU linker/loader.
</summary>
+<sets>
+SHLINKFLAGS
+RPATHPREFIX
+RPATHSUFFIX
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/gs.xml b/src/engine/SCons/Tool/gs.xml
index 9a63e94..2376735 100644
--- a/src/engine/SCons/Tool/gs.xml
+++ b/src/engine/SCons/Tool/gs.xml
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="gs">
<summary>
-XXX
+Set construction variables for Ghostscript.
</summary>
+<sets>
+GS
+GSFLAGS
+GSCOM
+</sets>
+<uses>
+GSCOMSTR
+</uses>
</tool>
<cvar name="GS">
diff --git a/src/engine/SCons/Tool/hpc++.xml b/src/engine/SCons/Tool/hpc++.xml
index ca0314c..893907a 100644
--- a/src/engine/SCons/Tool/hpc++.xml
+++ b/src/engine/SCons/Tool/hpc++.xml
@@ -6,6 +6,6 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="hpc++">
<summary>
-XXX
+Set construction variables for the compilers aCC on HP/UX systems.
</summary>
</tool>
diff --git a/src/engine/SCons/Tool/hpcc.xml b/src/engine/SCons/Tool/hpcc.xml
index 9f63b55..62a1ca4 100644
--- a/src/engine/SCons/Tool/hpcc.xml
+++ b/src/engine/SCons/Tool/hpcc.xml
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
-->
<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>
+<sets>
+CXX
+SHCXXFLAGS
+CXXVERSION
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/hplink.xml b/src/engine/SCons/Tool/hplink.xml
index 1bd3b78..6a45017 100644
--- a/src/engine/SCons/Tool/hplink.xml
+++ b/src/engine/SCons/Tool/hplink.xml
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="hplink">
<summary>
-XXX
+Sets construction variables for the linker on HP/UX systems.
</summary>
+<sets>
+LINKFLAGS
+SHLINKFLAGS
+SHLIBSUFFIX
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/icc.xml b/src/engine/SCons/Tool/icc.xml
index c41486e..a585f3f 100644
--- a/src/engine/SCons/Tool/icc.xml
+++ b/src/engine/SCons/Tool/icc.xml
@@ -6,6 +6,25 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="icc">
<summary>
-XXX
+Sets construction variables for the
+<application>icc</application> compiler on OS/2 systems.
</summary>
+<sets>
+CC
+CCCOM
+CXXCOM
+CPPDEFPREFIX
+CPPDEFSUFFIX
+INCPREFIX
+INCSUFFIX
+CFILESUFFIX
+CXXFILESUFFIX
+</sets>
+<uses>
+CFLAGS
+CCFLAGS
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/icl.xml b/src/engine/SCons/Tool/icl.xml
index 5b8c355..13b6392 100644
--- a/src/engine/SCons/Tool/icl.xml
+++ b/src/engine/SCons/Tool/icl.xml
@@ -6,6 +6,7 @@ See its __doc__ string for a discussion of the format.
-->
<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>
diff --git a/src/engine/SCons/Tool/ifl.xml b/src/engine/SCons/Tool/ifl.xml
index 4b5b912..06f2427 100644
--- a/src/engine/SCons/Tool/ifl.xml
+++ b/src/engine/SCons/Tool/ifl.xml
@@ -6,6 +6,19 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="ifl">
<summary>
-XXX
+Sets construction variables for the Intel Fortran compiler.
</summary>
+<sets>
+FORTRAN
+FORTRANCOM
+FORTRANPPCOM
+SHFORTRANCOM
+SHFORTRANPPCOM
+</sets>
+<uses>
+FORTRANFLAGS
+_FORTRANINCFLAGS
+CPPFLAGS
+_CPPDEFFLAGS
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/ifort.xml b/src/engine/SCons/Tool/ifort.xml
index 0303dec..20950f8 100644
--- a/src/engine/SCons/Tool/ifort.xml
+++ b/src/engine/SCons/Tool/ifort.xml
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="ifort">
<summary>
-XXX
+Sets construction variables for newer versions
+of the Intel Fortran compiler for Linux.
</summary>
+<sets>
+SHLINK
+SHLINKFLAGS
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/ilink.xml b/src/engine/SCons/Tool/ilink.xml
index 03acfa4..2b29b30 100644
--- a/src/engine/SCons/Tool/ilink.xml
+++ b/src/engine/SCons/Tool/ilink.xml
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="ilink">
<summary>
-XXX
+Sets construction variables for the
+<application>ilink</application> linker on OS/2 systems.
</summary>
+<sets>
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/ilink32.xml b/src/engine/SCons/Tool/ilink32.xml
index 370d046..49e868b 100644
--- a/src/engine/SCons/Tool/ilink32.xml
+++ b/src/engine/SCons/Tool/ilink32.xml
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="ilink32">
<summary>
-XXX
+Sets construction variables for the Borland
+<application>ilink32</application> linker.
</summary>
+<sets>
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/intelc.xml b/src/engine/SCons/Tool/intelc.xml
index 0141c22..0abc2a7 100644
--- a/src/engine/SCons/Tool/intelc.xml
+++ b/src/engine/SCons/Tool/intelc.xml
@@ -6,8 +6,22 @@ See its __doc__ string for a discussion of the format.
-->
<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>
+<sets>
+CC
+CXX
+LINK
+AR
+<!--LD-->
+INTEL_C_COMPILER_VERSION
+</sets>
+<uses>
+</uses>
</tool>
<cvar name="INTEL_C_COMPILER_VERSION">
diff --git a/src/engine/SCons/Tool/jar.xml b/src/engine/SCons/Tool/jar.xml
index 488459b..0deaaae 100644
--- a/src/engine/SCons/Tool/jar.xml
+++ b/src/engine/SCons/Tool/jar.xml
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="jar">
<summary>
-XXX
+Sets construction variables for the &jar; utility.
</summary>
+<sets>
+JAR
+JARFLAGS
+JARCOM
+JARSUFFIX
+</sets>
+<uses>
+JARCOMSTR
+</uses>
</tool>
<builder name="Jar">
diff --git a/src/engine/SCons/Tool/javac.xml b/src/engine/SCons/Tool/javac.xml
index 400a23b..6c28e8c 100644
--- a/src/engine/SCons/Tool/javac.xml
+++ b/src/engine/SCons/Tool/javac.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="javac">
<summary>
-XXX
+Sets construction variables for the &javac; compiler.
</summary>
+<sets>
+JAVAC
+JAVACFLAGS
+JAVACCOM
+JAVACLASSSUFFIX
+JAVASUFFIX
+</sets>
+<uses>
+JAVACCOMSTR
+</uses>
</tool>
<builder name="Java">
diff --git a/src/engine/SCons/Tool/javah.xml b/src/engine/SCons/Tool/javah.xml
index 75d0efb..c6487e7 100644
--- a/src/engine/SCons/Tool/javah.xml
+++ b/src/engine/SCons/Tool/javah.xml
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="javah">
<summary>
-XXX
+Sets construction variables for the &javah; tool.
</summary>
+<sets>
+JAVAH
+JAVAHFLAGS
+JAVAHCOM
+JAVACLASSSUFFIX
+</sets>
+<uses>
+JAVAHCOMSTR
+</uses>
</tool>
<builder name="JavaH">
diff --git a/src/engine/SCons/Tool/latex.xml b/src/engine/SCons/Tool/latex.xml
index 35eea30..1584e0f 100644
--- a/src/engine/SCons/Tool/latex.xml
+++ b/src/engine/SCons/Tool/latex.xml
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="latex">
<summary>
-XXX
+Sets construction variables for the &latex; utility.
</summary>
+<sets>
+LATEX
+LATEXFLAGS
+LATEXCOM
+</sets>
+<uses>
+LATEXCOMSTR
+</uses>
</tool>
<cvar name="LATEX">
diff --git a/src/engine/SCons/Tool/lex.xml b/src/engine/SCons/Tool/lex.xml
index d67feb0..d7d86d0 100644
--- a/src/engine/SCons/Tool/lex.xml
+++ b/src/engine/SCons/Tool/lex.xml
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="lex">
<summary>
-XXX
+Sets construction variables for the &lex; lexical analyser.
</summary>
+<sets>
+LEX
+LEXFLAGS
+LEXCOM
+</sets>
+<uses>
+LEXCOMSTR
+</uses>
</tool>
<cvar name="LEX">
diff --git a/src/engine/SCons/Tool/link.xml b/src/engine/SCons/Tool/link.xml
index 0728dda..8737bea 100644
--- a/src/engine/SCons/Tool/link.xml
+++ b/src/engine/SCons/Tool/link.xml
@@ -6,8 +6,31 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="link">
<summary>
-XXX
+Sets construction variables for generic POSIX linkers.
</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">
diff --git a/src/engine/SCons/Tool/linkloc.xml b/src/engine/SCons/Tool/linkloc.xml
index 58ffc48..e8a54f4 100644
--- a/src/engine/SCons/Tool/linkloc.xml
+++ b/src/engine/SCons/Tool/linkloc.xml
@@ -6,6 +6,26 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="linkloc">
<summary>
-XXX
+Sets construction variables for the
+<application>LinkLoc</application>
+linker for the Phar Lap ETS embedded operating system.
</summary>
+<sets>
+<!--SUBST_CMD_FILE-->
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+<!--SHLINKEMITTER-->
+LINK
+LINKFLAGS
+LINKCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+</sets>
+<uses>
+SHLINKCOMSTR
+LINKCOMSTR
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/m4.xml b/src/engine/SCons/Tool/m4.xml
index 0ee421e..63d16be 100644
--- a/src/engine/SCons/Tool/m4.xml
+++ b/src/engine/SCons/Tool/m4.xml
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="m4">
<summary>
-XXX
+Sets construction variables for the &m4; macro processor.
</summary>
+<sets>
+M4
+M4FLAGS
+M4COM
+</sets>
+<uses>
+M4COMSTR
+</uses>
</tool>
<builder name="M4">
diff --git a/src/engine/SCons/Tool/masm.xml b/src/engine/SCons/Tool/masm.xml
index ee1ed1d..614da1f 100644
--- a/src/engine/SCons/Tool/masm.xml
+++ b/src/engine/SCons/Tool/masm.xml
@@ -6,6 +6,21 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="masm">
<summary>
-XXX
+Sets construction variables for the Microsoft assembler.
</summary>
+<sets>
+AS
+ASFLAGS
+ASPPFLAGS
+ASCOM
+ASPPCOM
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+</sets>
+<uses>
+ASCOMSTR
+ASPPCOMSTR
+CPPFLAGS
+_CPPDEFFLAGS
+_CPPINCFLAGS
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/midl.xml b/src/engine/SCons/Tool/midl.xml
index 8885785..2698aa6 100644
--- a/src/engine/SCons/Tool/midl.xml
+++ b/src/engine/SCons/Tool/midl.xml
@@ -6,8 +6,16 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="midl">
<summary>
-XXX
+Sets construction variables for the Microsoft IDL compiler.
</summary>
+<sets>
+MIDL
+MIDLFLAGS
+MIDLCOM
+</sets>
+<uses>
+MIDLCOMSTR
+</uses>
</tool>
<builder name="TypeLibrary">
@@ -32,3 +40,29 @@ and
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>
diff --git a/src/engine/SCons/Tool/mingw.xml b/src/engine/SCons/Tool/mingw.xml
index 9f9cf1f..048124c 100644
--- a/src/engine/SCons/Tool/mingw.xml
+++ b/src/engine/SCons/Tool/mingw.xml
@@ -6,6 +6,32 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="mingw">
<summary>
-XXX
+Sets construction variables for MinGW (Minimal Gnu on Windows).
</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>
diff --git a/src/engine/SCons/Tool/mslib.xml b/src/engine/SCons/Tool/mslib.xml
index 9d56fd5..014ca9b 100644
--- a/src/engine/SCons/Tool/mslib.xml
+++ b/src/engine/SCons/Tool/mslib.xml
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="mslib">
<summary>
-XXX
+Sets construction variables for the Microsoft
+<application>mslib</application>
+library archiver.
</summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/mslink.xml b/src/engine/SCons/Tool/mslink.xml
index 160d415..6ad9dea 100644
--- a/src/engine/SCons/Tool/mslink.xml
+++ b/src/engine/SCons/Tool/mslink.xml
@@ -6,8 +6,49 @@ See its __doc__ string for a discussion of the format.
-->
<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">
diff --git a/src/engine/SCons/Tool/msvc.xml b/src/engine/SCons/Tool/msvc.xml
index 0ea2602..b85c7aa 100644
--- a/src/engine/SCons/Tool/msvc.xml
+++ b/src/engine/SCons/Tool/msvc.xml
@@ -6,8 +6,50 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="msvc">
<summary>
-XXX
+Sets construction variables for the Microsoft Visual C/C++ compiler.
</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">
@@ -127,6 +169,14 @@ If this is not set, then &cv-link-PCHCOM; (the command line) is displayed.
</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
@@ -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>
+
+<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>
diff --git a/src/engine/SCons/Tool/msvs.xml b/src/engine/SCons/Tool/msvs.xml
index 07fda0c..2bf02f8 100644
--- a/src/engine/SCons/Tool/msvs.xml
+++ b/src/engine/SCons/Tool/msvs.xml
@@ -6,8 +6,22 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="msvs">
<summary>
-XXX
+Sets construction variables for Microsoft Visual Studio.
</summary>
+<sets>
+MSVSPROJECTCOM
+MSVSSOLUTIONCOM
+MSVSSCONSCRIPT
+MSVSSCONS
+MSVSSCONSFLAGS
+MSVSSCONSCOM
+MSVSBUILDCOM
+MSVSREBUILDCOM
+MSVSCLEANCOM
+MSVSENCODING
+</sets>
+<uses>
+</uses>
</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.
-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
-<envar>MSVS_USE_MFC_DIRS</envar>
+&cv-MSVS_USE_MFC_DIRS;
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>MFC\lib</envar>
+<filename>MFC\lib</filename>
directory to
the default
<envar>LIB</envar>
external environment variable.
-Under MSVS version 7,
+
+Under Visual Studio version 7,
setting
-<envar>MSVS_USE_MFC_DIRS</envar>
+&cv-MSVS_USE_MFC_DIRS;
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
-<envar>atlmfc\lib</envar>
+<filename>atlmfc\lib</filename>
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>
-or
+external environment variable,
+and the
+<filename>atlmfc\lib</filename>
+directory to the default
<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>
diff --git a/src/engine/SCons/Tool/mwcc.xml b/src/engine/SCons/Tool/mwcc.xml
index 443eda7..5ea07ee 100644
--- a/src/engine/SCons/Tool/mwcc.xml
+++ b/src/engine/SCons/Tool/mwcc.xml
@@ -6,8 +6,36 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="mwcc">
<summary>
-XXX
+Sets construction variables for the Metrowerks CodeWarrior compiler.
</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">
diff --git a/src/engine/SCons/Tool/mwld.xml b/src/engine/SCons/Tool/mwld.xml
index 9943927..c2b0d63 100644
--- a/src/engine/SCons/Tool/mwld.xml
+++ b/src/engine/SCons/Tool/mwld.xml
@@ -6,6 +6,22 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="mwld">
<summary>
-XXX
+Sets construction variables for the Metrowerks CodeWarrior linker.
</summary>
+<sets>
+AR
+ARCOM
+LIBDIRPREFIX
+LIBDIRSUFFIX
+LIBLINKPREFIX
+LIBLINKSUFFIX
+LINK
+LINKCOM
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+<!--SHLIBEMITTER-->
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/nasm.xml b/src/engine/SCons/Tool/nasm.xml
index 071f537..d2cb5c2 100644
--- a/src/engine/SCons/Tool/nasm.xml
+++ b/src/engine/SCons/Tool/nasm.xml
@@ -6,6 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="nasm">
<summary>
-XXX
+Sets construction variables for the
+<application>nasm</application> Netwide Assembler.
</summary>
+<sets>
+AS
+ASFLAGS
+ASPPFLAGS
+ASCOM
+ASPPCOM
+</sets>
+<uses>
+ASCOMSTR
+ASPPCOMSTR
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/pdf.xml b/src/engine/SCons/Tool/pdf.xml
index 1e447dd..c3a4eed 100644
--- a/src/engine/SCons/Tool/pdf.xml
+++ b/src/engine/SCons/Tool/pdf.xml
@@ -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.
-->
+<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
diff --git a/src/engine/SCons/Tool/pdflatex.xml b/src/engine/SCons/Tool/pdflatex.xml
index e9fe793..71f6256 100644
--- a/src/engine/SCons/Tool/pdflatex.xml
+++ b/src/engine/SCons/Tool/pdflatex.xml
@@ -6,6 +6,44 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="pdflatex">
<summary>
-XXX
+Sets construction variables for the &pdflatex; utility.
</summary>
+<sets>
+PDFLATEX
+PDFLATEXFLAGS
+PDFLATEXCOM
+LATEXRETRIES
+</sets>
+<uses>
+PDFLATEXCOMSTR
+</uses>
</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>
diff --git a/src/engine/SCons/Tool/pdftex.xml b/src/engine/SCons/Tool/pdftex.xml
index 47e4138..a895d6f 100644
--- a/src/engine/SCons/Tool/pdftex.xml
+++ b/src/engine/SCons/Tool/pdftex.xml
@@ -6,6 +6,48 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="pdftex">
<summary>
-XXX
+Sets construction variables for the &pdftex; utility.
</summary>
+<sets>
+PDFTEX
+PDFTEXFLAGS
+PDFTEXCOM
+PDFLATEX
+PDFLATEXFLAGS
+PDFLATEXCOM
+LATEXRETRIES
+</sets>
+<uses>
+PDFTEXCOMSTR
+PDFLATEXCOMSTR
+</uses>
</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>
diff --git a/src/engine/SCons/Tool/qt.xml b/src/engine/SCons/Tool/qt.xml
index 4b11cbc..66fe554 100644
--- a/src/engine/SCons/Tool/qt.xml
+++ b/src/engine/SCons/Tool/qt.xml
@@ -6,8 +6,36 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="qt">
<summary>
-XXX
+Sets construction variables for building Qt applications.
</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">
@@ -168,10 +196,10 @@ file.
</summary>
</cvar>
-<cvar name="QT_MOCFROMCPPFLAGS">
+<cvar name="QT_MOCFROMCXXFLAGS">
<summary>
Default value is '-i'. These flags are passed to moc, when moccing a
-cpp file.
+C++ file.
</summary>
</cvar>
diff --git a/src/engine/SCons/Tool/rmic.xml b/src/engine/SCons/Tool/rmic.xml
index 63511e5..ff13f48 100644
--- a/src/engine/SCons/Tool/rmic.xml
+++ b/src/engine/SCons/Tool/rmic.xml
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="rmic">
<summary>
-XXX
+Sets construction variables for the &rmic; utility.
</summary>
+<sets>
+RMIC
+RMICFLAGS
+RMICCOM
+JAVACLASSSUFFIX
+</sets>
+<uses>
+RMICCOMSTR
+</uses>
</tool>
<builder name="RMIC">
diff --git a/src/engine/SCons/Tool/rpcgen.xml b/src/engine/SCons/Tool/rpcgen.xml
index a3adb22..dd77416 100644
--- a/src/engine/SCons/Tool/rpcgen.xml
+++ b/src/engine/SCons/Tool/rpcgen.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="rpcgen">
<summary>
-XXX
+Sets construction variables for building with RPCGEN.
</summary>
+<sets>
+RPCGEN
+RPCGENFLAGS
+RPCGENCLIENTFLAGS
+RPCGENHEADERFLAGS
+RPCGENSERVICEFLAGS
+RPCGENXDRFLAGS
+</sets>
+<uses>
+</uses>
</tool>
<builder name="RPCGenClient">
diff --git a/src/engine/SCons/Tool/sgiar.xml b/src/engine/SCons/Tool/sgiar.xml
index ccea1ca..63debc4 100644
--- a/src/engine/SCons/Tool/sgiar.xml
+++ b/src/engine/SCons/Tool/sgiar.xml
@@ -6,6 +6,19 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="sgiar">
<summary>
-XXX
+Sets construction variables for the SGI library archiver.
</summary>
+<sets>
+AR
+ARFLAGS
+ARCOMSTR
+SHLINK
+SHLINKFLAGS
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+SHLINKCOMSTR
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/sgic++.xml b/src/engine/SCons/Tool/sgic++.xml
index a507f79..a933ac2 100644
--- a/src/engine/SCons/Tool/sgic++.xml
+++ b/src/engine/SCons/Tool/sgic++.xml
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="sgic++">
<summary>
-XXX
+Sets construction variables for the SGI C++ compiler.
</summary>
+<sets>
+CXX
+CXXFLAGS
+SHCXX
+SHOBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/sgicc.xml b/src/engine/SCons/Tool/sgicc.xml
index 285ae8c..152b841 100644
--- a/src/engine/SCons/Tool/sgicc.xml
+++ b/src/engine/SCons/Tool/sgicc.xml
@@ -6,6 +6,13 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="sgicc">
<summary>
-XXX
+Sets construction variables for the SGI C compiler.
</summary>
+<sets>
+CXX
+SHOBJSUFFIX
+<!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME-->
+</sets>
+<uses>
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/sgilink.xml b/src/engine/SCons/Tool/sgilink.xml
index 8fa8f7d..2303972 100644
--- a/src/engine/SCons/Tool/sgilink.xml
+++ b/src/engine/SCons/Tool/sgilink.xml
@@ -6,6 +6,12 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="sgilink">
<summary>
-XXX
+Sets construction variables for the SGI linker.
</summary>
+<sets>
+LINK
+SHLINKFLAGS
+RPATHPREFIX
+RPATHSUFFIX
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/sunar.xml b/src/engine/SCons/Tool/sunar.xml
index e22563d..884a864 100644
--- a/src/engine/SCons/Tool/sunar.xml
+++ b/src/engine/SCons/Tool/sunar.xml
@@ -6,6 +6,20 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="sunar">
<summary>
-XXX
+Sets construction variables for the Sun library archiver.
</summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+SHLINK
+SHLINKFLAGS
+SHLINKCOM
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+SHLINKCOMSTR
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/sunc++.xml b/src/engine/SCons/Tool/sunc++.xml
index c18dd90..6eb2920 100644
--- a/src/engine/SCons/Tool/sunc++.xml
+++ b/src/engine/SCons/Tool/sunc++.xml
@@ -6,6 +6,14 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="sunc++">
<summary>
-XXX
+Sets construction variables for the Sun C++ compiler.
</summary>
+<sets>
+CXX
+SHCXX
+CXXVERSION
+SHCXXFLAGS
+SHOBJPREFIX
+SHOBJSUFFIX
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/suncc.xml b/src/engine/SCons/Tool/suncc.xml
index 9f6d340..da91d12 100644
--- a/src/engine/SCons/Tool/suncc.xml
+++ b/src/engine/SCons/Tool/suncc.xml
@@ -6,6 +6,12 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="suncc">
<summary>
-XXX
+Sets construction variables for the Sun C compiler.
</summary>
+<sets>
+CXX
+SHCCFLAGS
+SHOBJPREFIX
+SHOBJSUFFIX
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/sunlink.xml b/src/engine/SCons/Tool/sunlink.xml
index 6cad24f..083d428 100644
--- a/src/engine/SCons/Tool/sunlink.xml
+++ b/src/engine/SCons/Tool/sunlink.xml
@@ -6,6 +6,11 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="sunlink">
<summary>
-XXX
+Sets construction variables for the Sun linker.
</summary>
+<sets>
+SHLINKFLAGS
+RPATHPREFIX
+RPATHSUFFIX
+</sets>
</tool>
diff --git a/src/engine/SCons/Tool/swig.xml b/src/engine/SCons/Tool/swig.xml
index 05faff2..d277d64 100644
--- a/src/engine/SCons/Tool/swig.xml
+++ b/src/engine/SCons/Tool/swig.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="swig">
<summary>
-XXX
+Sets construction variables for the SWIG interface generator.
</summary>
+<sets>
+SWIG
+SWIGFLAGS
+SWIGCFILESUFFIX
+SWIGCXXFILESUFFIX
+SWIGCOM
+</sets>
+<uses>
+SWIGCOMSTR
+</uses>
</tool>
<cvar name="SWIG">
diff --git a/src/engine/SCons/Tool/tar.xml b/src/engine/SCons/Tool/tar.xml
index 763df54..8cf407d 100644
--- a/src/engine/SCons/Tool/tar.xml
+++ b/src/engine/SCons/Tool/tar.xml
@@ -6,8 +6,17 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="tar">
<summary>
-XXX
+Sets construction variables for the &tar; archiver.
</summary>
+<sets>
+TAR
+TARFLAGS
+TARCOM
+TARSUFFIX
+</sets>
+<uses>
+TARCOMSTR
+</uses>
</tool>
<builder name="Tar">
diff --git a/src/engine/SCons/Tool/tex.xml b/src/engine/SCons/Tool/tex.xml
index 4cfc252..80a84cc 100644
--- a/src/engine/SCons/Tool/tex.xml
+++ b/src/engine/SCons/Tool/tex.xml
@@ -6,8 +6,28 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="tex">
<summary>
-XXX
+Sets construction variables for the TeX formatter and typesetter.
</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">
diff --git a/src/engine/SCons/Tool/tlib.xml b/src/engine/SCons/Tool/tlib.xml
index 9415c7d..55179d3 100644
--- a/src/engine/SCons/Tool/tlib.xml
+++ b/src/engine/SCons/Tool/tlib.xml
@@ -6,6 +6,17 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="tlib">
<summary>
-XXX
+Sets construction variables for the Borlan
+<application>tib</application> library archiver.
</summary>
+<sets>
+AR
+ARFLAGS
+ARCOM
+LIBPREFIX
+LIBSUFFIX
+</sets>
+<uses>
+ARCOMSTR
+</uses>
</tool>
diff --git a/src/engine/SCons/Tool/yacc.xml b/src/engine/SCons/Tool/yacc.xml
index a6ad9b4..2db0603 100644
--- a/src/engine/SCons/Tool/yacc.xml
+++ b/src/engine/SCons/Tool/yacc.xml
@@ -6,8 +6,19 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="yacc">
<summary>
-XXX
+Sets construction variables for the &yacc; parse generator.
</summary>
+<sets>
+YACC
+YACCFLAGS
+YACCCOM
+YACCHFILESUFFIX
+YACCHXXFILESUFFIX
+YACCVCGFILESUFFIX
+</sets>
+<uses>
+YACCCOMSTR
+</uses>
</tool>
<cvar name="YACC">
diff --git a/src/engine/SCons/Tool/zip.xml b/src/engine/SCons/Tool/zip.xml
index 909a4c4..c7c233e 100644
--- a/src/engine/SCons/Tool/zip.xml
+++ b/src/engine/SCons/Tool/zip.xml
@@ -6,8 +6,18 @@ See its __doc__ string for a discussion of the format.
-->
<tool name="zip">
<summary>
-XXX
+Sets construction variables for the &zip; archiver.
</summary>
+<sets>
+ZIP
+ZIPFLAGS
+ZIPCOM
+ZIPCOMPRESSION
+ZIPSUFFIX
+</sets>
+<uses>
+ZIPCOMSTR
+</uses>
</tool>
<builder name="Zip">
@@ -92,3 +102,9 @@ module is otherwise unavailable.
General options passed to the zip utility.
</summary>
</cvar>
+
+<cvar name="ZIPSUFFIX">
+<summary>
+The suffix used for zip file names.
+</summary>
+</cvar>