summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Tool
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Tool')
-rw-r--r--src/engine/SCons/Tool/386asm.xml6
-rw-r--r--src/engine/SCons/Tool/BitKeeper.xml43
-rw-r--r--src/engine/SCons/Tool/CVS.xml51
-rw-r--r--src/engine/SCons/Tool/Perforce.xml33
-rw-r--r--src/engine/SCons/Tool/RCS.xml46
-rw-r--r--src/engine/SCons/Tool/SCCS.xml43
-rw-r--r--src/engine/SCons/Tool/Subversion.xml32
-rw-r--r--src/engine/SCons/Tool/__init__.py4
-rw-r--r--src/engine/SCons/Tool/__init__.xml324
-rw-r--r--src/engine/SCons/Tool/aixc++.xml6
-rw-r--r--src/engine/SCons/Tool/aixcc.xml6
-rw-r--r--src/engine/SCons/Tool/aixf77.xml6
-rw-r--r--src/engine/SCons/Tool/aixlink.xml6
-rw-r--r--src/engine/SCons/Tool/applelink.xml11
-rw-r--r--src/engine/SCons/Tool/ar.py1
-rw-r--r--src/engine/SCons/Tool/ar.xml48
-rw-r--r--src/engine/SCons/Tool/as.xml69
-rw-r--r--src/engine/SCons/Tool/bcc32.xml6
-rw-r--r--src/engine/SCons/Tool/c++.xml76
-rw-r--r--src/engine/SCons/Tool/cc.xml111
-rw-r--r--src/engine/SCons/Tool/cvf.xml6
-rw-r--r--src/engine/SCons/Tool/default.xml6
-rw-r--r--src/engine/SCons/Tool/dmd.xml6
-rw-r--r--src/engine/SCons/Tool/dvipdf.xml38
-rw-r--r--src/engine/SCons/Tool/dvips.xml66
-rw-r--r--src/engine/SCons/Tool/f77.xml196
-rw-r--r--src/engine/SCons/Tool/f90.xml196
-rw-r--r--src/engine/SCons/Tool/f95.xml196
-rw-r--r--src/engine/SCons/Tool/fortran.xml240
-rw-r--r--src/engine/SCons/Tool/g++.xml6
-rw-r--r--src/engine/SCons/Tool/g77.xml6
-rw-r--r--src/engine/SCons/Tool/gas.xml6
-rw-r--r--src/engine/SCons/Tool/gcc.xml6
-rw-r--r--src/engine/SCons/Tool/gnulink.xml6
-rw-r--r--src/engine/SCons/Tool/gs.xml34
-rw-r--r--src/engine/SCons/Tool/hpc++.xml6
-rw-r--r--src/engine/SCons/Tool/hpcc.xml6
-rw-r--r--src/engine/SCons/Tool/hplink.xml6
-rw-r--r--src/engine/SCons/Tool/icc.xml6
-rw-r--r--src/engine/SCons/Tool/icl.xml6
-rw-r--r--src/engine/SCons/Tool/ifl.xml6
-rw-r--r--src/engine/SCons/Tool/ifort.xml6
-rw-r--r--src/engine/SCons/Tool/ilink.xml6
-rw-r--r--src/engine/SCons/Tool/ilink32.xml6
-rw-r--r--src/engine/SCons/Tool/intelc.xml14
-rw-r--r--src/engine/SCons/Tool/jar.xml82
-rw-r--r--src/engine/SCons/Tool/javac.xml109
-rw-r--r--src/engine/SCons/Tool/javah.xml82
-rw-r--r--src/engine/SCons/Tool/latex.xml36
-rw-r--r--src/engine/SCons/Tool/lex.py10
-rw-r--r--src/engine/SCons/Tool/lex.xml37
-rw-r--r--src/engine/SCons/Tool/link.xml146
-rw-r--r--src/engine/SCons/Tool/linkloc.xml6
-rw-r--r--src/engine/SCons/Tool/m4.xml48
-rw-r--r--src/engine/SCons/Tool/masm.xml6
-rw-r--r--src/engine/SCons/Tool/midl.xml29
-rw-r--r--src/engine/SCons/Tool/mingw.xml6
-rw-r--r--src/engine/SCons/Tool/mslib.xml6
-rw-r--r--src/engine/SCons/Tool/mslink.xml105
-rw-r--r--src/engine/SCons/Tool/msvc.xml112
-rw-r--r--src/engine/SCons/Tool/msvs.xml266
-rw-r--r--src/engine/SCons/Tool/mwcc.xml20
-rw-r--r--src/engine/SCons/Tool/mwld.xml6
-rw-r--r--src/engine/SCons/Tool/nasm.xml6
-rw-r--r--src/engine/SCons/Tool/pdflatex.xml6
-rw-r--r--src/engine/SCons/Tool/pdftex.xml6
-rw-r--r--src/engine/SCons/Tool/qt.xml274
-rw-r--r--src/engine/SCons/Tool/rmic.xml79
-rw-r--r--src/engine/SCons/Tool/rpcgen.xml122
-rw-r--r--src/engine/SCons/Tool/sgiar.xml6
-rw-r--r--src/engine/SCons/Tool/sgic++.xml6
-rw-r--r--src/engine/SCons/Tool/sgicc.xml6
-rw-r--r--src/engine/SCons/Tool/sgilink.xml6
-rw-r--r--src/engine/SCons/Tool/sunar.xml6
-rw-r--r--src/engine/SCons/Tool/sunc++.xml6
-rw-r--r--src/engine/SCons/Tool/suncc.xml6
-rw-r--r--src/engine/SCons/Tool/sunlink.xml6
-rw-r--r--src/engine/SCons/Tool/swig.xml80
-rw-r--r--src/engine/SCons/Tool/tar.xml75
-rw-r--r--src/engine/SCons/Tool/tex.xml70
-rw-r--r--src/engine/SCons/Tool/tlib.xml6
-rw-r--r--src/engine/SCons/Tool/yacc.py8
-rw-r--r--src/engine/SCons/Tool/yacc.xml42
-rw-r--r--src/engine/SCons/Tool/zip.xml83
84 files changed, 4018 insertions, 9 deletions
diff --git a/src/engine/SCons/Tool/386asm.xml b/src/engine/SCons/Tool/386asm.xml
new file mode 100644
index 0000000..2a9d993
--- /dev/null
+++ b/src/engine/SCons/Tool/386asm.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="386asm">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/BitKeeper.xml b/src/engine/SCons/Tool/BitKeeper.xml
new file mode 100644
index 0000000..43841a0
--- /dev/null
+++ b/src/engine/SCons/Tool/BitKeeper.xml
@@ -0,0 +1,43 @@
+<!-- __COPYRIGHT__ -->
+<tool name="BitKeeper">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="BITKEEPER">
+<summary>
+The BitKeeper executable.
+</summary>
+</cvar>
+
+<cvar name="BITKEEPERCOM">
+<summary>
+The command line for
+fetching source files using BitKEeper.
+</summary>
+</cvar>
+
+<cvar name="BITKEEPERCOMSTR">
+<summary>
+The string displayed when fetching
+a source file using BitKeeper.
+If this is not set, then &cv-BITKEEPERCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="BITKEEPERGET">
+<summary>
+The command (&cv-BITKEEPER;) and subcommand
+for fetching source files using BitKeeper.
+</summary>
+</cvar>
+
+<cvar name="BITKEEPERGETFLAGS">
+<summary>
+Options that are passed to the BitKeeper
+<command>get</command>
+subcommand.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/CVS.xml b/src/engine/SCons/Tool/CVS.xml
new file mode 100644
index 0000000..9a07294
--- /dev/null
+++ b/src/engine/SCons/Tool/CVS.xml
@@ -0,0 +1,51 @@
+<!-- __COPYRIGHT__ -->
+<tool name="CVS">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="CVS">
+<summary>
+The CVS executable.
+</summary>
+</cvar>
+
+<cvar name="CVSCOFLAGS">
+<summary>
+Options that are passed to the CVS checkout subcommand.
+</summary>
+</cvar>
+
+<cvar name="CVSCOM">
+<summary>
+The command line used to
+fetch source files from a CVS repository.
+</summary>
+</cvar>
+
+<cvar name="CVSCOMSTR">
+<summary>
+The string displayed when fetching
+a source file from a CVS repository.
+If this is not set, then &cv-CVSCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="CVSFLAGS">
+<summary>
+General options that are passed to CVS.
+By default, this is set to
+<literal>-d $CVSREPOSITORY</literal>
+to specify from where the files must be fetched.
+</summary>
+</cvar>
+
+<cvar name="CVSREPOSITORY">
+<summary>
+The path to the CVS repository.
+This is referenced in the default
+&cv-CVSFLAGS; value.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/Perforce.xml b/src/engine/SCons/Tool/Perforce.xml
new file mode 100644
index 0000000..247330e
--- /dev/null
+++ b/src/engine/SCons/Tool/Perforce.xml
@@ -0,0 +1,33 @@
+<!-- __COPYRIGHT__ -->
+<tool name="Perforce">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="P4">
+<summary>
+The Perforce executable.
+</summary>
+</cvar>
+
+<cvar name="P4COM">
+<summary>
+The command line used to
+fetch source files from Perforce.
+</summary>
+</cvar>
+
+<cvar name="P4COMSTR">
+<summary>
+The string displayed when
+fetching a source file from Perforce.
+If this is not set, then &cv-P4COM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="P4FLAGS">
+<summary>
+General options that are passed to Perforce.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/RCS.xml b/src/engine/SCons/Tool/RCS.xml
new file mode 100644
index 0000000..40d972f
--- /dev/null
+++ b/src/engine/SCons/Tool/RCS.xml
@@ -0,0 +1,46 @@
+<!-- __COPYRIGHT__ -->
+<tool name="RCS">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="RCS">
+<summary>
+The RCS executable.
+Note that this variable is not actually used
+for the command to fetch source files from RCS;
+see the
+&cv-RCS_CO;
+construction variable, below.
+</summary>
+</cvar>
+
+<cvar name="RCS_CO">
+<summary>
+The RCS "checkout" executable,
+used to fetch source files from RCS.
+</summary>
+</cvar>
+
+<cvar name="RCS_COCOM">
+<summary>
+The command line used to
+fetch (checkout) source files from RCS.
+</summary>
+</cvar>
+
+<cvar name="RCS_COCOMSTR">
+<summary>
+The string displayed when fetching
+a source file from RCS.
+If this is not set, then &cv-RCS_COCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="RCS_COFLAGS">
+<summary>
+Options that are passed to the &cv-RCS_CO; command.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/SCCS.xml b/src/engine/SCons/Tool/SCCS.xml
new file mode 100644
index 0000000..08aa949
--- /dev/null
+++ b/src/engine/SCons/Tool/SCCS.xml
@@ -0,0 +1,43 @@
+<!-- __COPYRIGHT__ -->
+<tool name="SCCS">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="SCCS">
+<summary>
+The SCCS executable.
+</summary>
+</cvar>
+
+<cvar name="SCCSCOM">
+<summary>
+The command line used to
+fetch source files from SCCS.
+</summary>
+</cvar>
+
+<cvar name="SCCSCOMSTR">
+<summary>
+The string displayed when fetching
+a source file from a CVS repository.
+If this is not set, then &cv-SCCSCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="SCCSFLAGS">
+<summary>
+General options that are passed to SCCS.
+</summary>
+</cvar>
+
+<cvar name="SCCSGETFLAGS">
+<summary>
+Options that are passed specifically to the SCCS "get" subcommand.
+This can be set, for example, to
+<option>-e</option>
+to check out editable files from SCCS.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/Subversion.xml b/src/engine/SCons/Tool/Subversion.xml
new file mode 100644
index 0000000..e5560d1
--- /dev/null
+++ b/src/engine/SCons/Tool/Subversion.xml
@@ -0,0 +1,32 @@
+<!-- __COPYRIGHT__ -->
+<tool name="Subversion">
+<summary>
+XXX
+</summary>
+</tool>
+
+<!--
+<cvar name="SVN">
+<summary>
+The Subversion executable (usually named
+<command>svn</command>).
+</summary>
+</cvar>
+-->
+
+<!--
+<cvar name="SVNCOM">
+<summary>
+The command line used to
+fetch source files from a Subversion repository.
+</summary>
+</cvar>
+-->
+
+<!--
+<cvar name="SVNFLAGS">
+<summary>
+General options that are passed to Subversion.
+</summary>
+</cvar>
+-->
diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py
index 7ef2ea0..7010e1c 100644
--- a/src/engine/SCons/Tool/__init__.py
+++ b/src/engine/SCons/Tool/__init__.py
@@ -161,8 +161,8 @@ def createStaticLibBuilder(env):
try:
static_lib = env['BUILDERS']['StaticLibrary']
except KeyError:
- import SCons.Defaults
- static_lib = SCons.Builder.Builder(action = SCons.Defaults.ArAction,
+ ar_action = SCons.Action.Action("$ARCOM", "$ARCOMSTR")
+ static_lib = SCons.Builder.Builder(action = ar_action,
emitter = '$LIBEMITTER',
prefix = '$LIBPREFIX',
suffix = '$LIBSUFFIX',
diff --git a/src/engine/SCons/Tool/__init__.xml b/src/engine/SCons/Tool/__init__.xml
new file mode 100644
index 0000000..86b830c
--- /dev/null
+++ b/src/engine/SCons/Tool/__init__.xml
@@ -0,0 +1,324 @@
+<!-- __COPYRIGHT__ -->
+<builder name="CFile">
+<summary>
+Builds a C source file given a lex (<filename>.l</filename>)
+or yacc (<filename>.y</filename>) input file.
+The suffix specified by the &cv-CFILESUFFIX; construction variable
+(<filename>.c</filename> by default)
+is automatically added to the target
+if it is not already present. Example:
+
+<example>
+# builds foo.c
+env.CFile(target = 'foo.c', source = 'foo.l')
+# builds bar.c
+env.CFile(target = 'bar', source = 'bar.y')
+</example>
+</summary>
+</builder>
+
+<builder name="CXXFile">
+<summary>
+Builds a C++ source file given a lex (<filename>.ll</filename>)
+or yacc (<filename>.yy</filename>)
+input file.
+The suffix specified by the &cv-CXXFILESUFFIX; construction variable
+(<filename>.cc</filename> by default)
+is automatically added to the target
+if it is not already present. Example:
+
+<example>
+# builds foo.cc
+env.CXXFile(target = 'foo.cc', source = 'foo.ll')
+# builds bar.cc
+env.CXXFile(target = 'bar', source = 'bar.yy')
+</example>
+</summary>
+</builder>
+
+<builder name="Library">
+<summary>
+A synonym for the
+&b-StaticLibrary;
+builder method.
+</summary>
+</builder>
+
+<builder name="Object">
+<summary>
+A synonym for the
+&b-StaticObject;
+builder method.
+</summary>
+</builder>
+
+<builder name="Program">
+<summary>
+Builds an executable given one or more object files
+or C, C++, D, or Fortran source files.
+If any C, C++, D or Fortran source files are specified,
+then they will be automatically
+compiled to object files using the
+&b-Object;
+builder method;
+see that builder method's description for
+a list of legal source file suffixes
+and how they are interpreted.
+The target executable file prefix
+(specified by the &cv-PROGPREFIX; construction variable; nothing by default)
+and suffix
+(specified by the &cv-PROGSUFFIX; construction variable;
+by default, <filename>.exe</filename> on Windows systems,
+nothing on POSIX systems)
+are automatically added to the target if not already present.
+Example:
+
+<example>
+env.Program(target = 'foo', source = ['foo.o', 'bar.c', 'baz.f'])
+</example>
+</summary>
+</builder>
+
+<builder name="SharedLibrary">
+<summary>
+Builds a shared library
+(<filename>.so</filename> on a POSIX system,
+<filename>.dll</filename> on WIN32)
+given one or more object files
+or C, C++, D or Fortran source files.
+If any source files are given,
+then they will be automatically
+compiled to object files.
+The static library prefix and suffix (if any)
+are automatically added to the target.
+The target library file prefix
+(specified by the &cv-SHLIBPREFIX; construction variable;
+by default, <filename>lib</filename> on POSIX systems,
+nothing on Windows systems)
+and suffix
+(specified by the &cv-SHLIBSUFFIX; construction variable;
+by default, <filename>.dll</filename> on Windows systems,
+<filename>.so</filename> on POSIX systems)
+are automatically added to the target if not already present.
+Example:
+
+<example>
+env.SharedLibrary(target = 'bar', source = ['bar.c', 'foo.o'])
+</example>
+
+On WIN32 systems, the
+&b-SharedLibrary;
+builder method will always build an import
+(<filename>.lib</filename>) library
+in addition to the shared (<filename>.dll</filename>) library,
+adding a <filename>.lib</filename> library with the same basename
+if there is not already a <filename>.lib</filename> file explicitly
+listed in the targets.
+
+Any object files listed in the
+<literal>source</literal>
+must have been built for a shared library
+(that is, using the
+&b-SharedObject;
+builder method).
+&scons;
+will raise an error if there is any mismatch.
+
+On WIN32 systems, specifying
+<literal>register=1</literal>
+will cause the <filename>.dll</filename> to be
+registered after it is built using REGSVR32.
+The command that is run
+("regsvr32" by default) is determined by &cv-REGSVR; construction
+variable, and the flags passed are determined by &cv-REGSVRFLAGS;. By
+default, &cv-REGSVRFLAGS; includes the <option>/s</option> option,
+to prevent dialogs from popping
+up and requiring user attention when it is run. If you change
+&cv-REGSVRFLAGS;, be sure to include the <option>/s</option> option.
+For example,
+
+<example>
+env.SharedLibrary(target = 'bar',
+ source = ['bar.cxx', 'foo.obj'],
+ register=1)
+</example>
+
+will register <filename>bar.dll</filename> as a COM object
+when it is done linking it.
+</summary>
+</builder>
+
+<builder name="SharedObject">
+<summary>
+Builds an object file for
+inclusion in a shared library.
+Source files must have one of the same set of extensions
+specified above for the
+&b-StaticObject;
+builder method.
+On some platforms building a shared object requires additional
+compiler option
+(e.g. <option>-fPIC</option> for gcc)
+in addition to those needed to build a
+normal (static) object, but on some platforms there is no difference between a
+shared object and a normal (static) one. When there is a difference, SCons
+will only allow shared objects to be linked into a shared library, and will
+use a different suffix for shared objects. On platforms where there is no
+difference, SCons will allow both normal (static)
+and shared objects to be linked into a
+shared library, and will use the same suffix for shared and normal
+(static) objects.
+The target object file prefix
+(specified by the &cv-SHOBJPREFIX; construction variable;
+by default, the same as &cv-OBJPREFIX;)
+and suffix
+(specified by the &cv-SHOBJSUFFIX; construction variable)
+are automatically added to the target if not already present.
+Examples:
+
+<example>
+env.SharedObject(target = 'ddd', source = 'ddd.c')
+env.SharedObject(target = 'eee.o', source = 'eee.cpp')
+env.SharedObject(target = 'fff.obj', source = 'fff.for')
+</example>
+</summary>
+</builder>
+
+<builder name="StaticLibrary">
+<summary>
+Builds a static library given one or more object files
+or C, C++, D or Fortran source files.
+If any source files are given,
+then they will be automatically
+compiled to object files.
+The static library prefix and suffix (if any)
+are automatically added to the target.
+The target library file prefix
+(specified by the &cv-LIBPREFIX; construction variable;
+by default, <filename>lib</filename> on POSIX systems,
+nothing on Windows systems)
+and suffix
+(specified by the &cv-LIBSUFFIX; construction variable;
+by default, <filename>.lib</filename> on Windows systems,
+<filename>.a</filename> on POSIX systems)
+are automatically added to the target if not already present.
+Example:
+
+<example>
+env.StaticLibrary(target = 'bar', source = ['bar.c', 'foo.o'])
+</example>
+
+Any object files listed in the
+<literal>source</literal>
+must have been built for a static library
+(that is, using the
+&b-StaticObject;
+builder method).
+&scons;
+will raise an error if there is any mismatch.
+</summary>
+</builder>
+
+<builder name="StaticObject">
+<summary>
+Builds a static object file
+from one or more C, C++, D, or Fortran source files.
+Source files must have one of the following extensions:
+
+<example>
+ .asm assembly language file
+ .ASM assembly language file
+ .c C file
+ .C WIN32: C file
+ POSIX: C++ file
+ .cc C++ file
+ .cpp C++ file
+ .cxx C++ file
+ .cxx C++ file
+ .c++ C++ file
+ .C++ C++ file
+ .d D file
+ .f Fortran file
+ .F WIN32: Fortran file
+ POSIX: Fortran file + C pre-processor
+ .for Fortran file
+ .FOR Fortran file
+ .fpp Fortran file + C pre-processor
+ .FPP Fortran file + C pre-processor
+ .s assembly language file
+ .S WIN32: assembly language file
+ POSIX: assembly language file + C pre-processor
+ .spp assembly language file + C pre-processor
+ .SPP assembly language file + C pre-processor
+</example>
+
+The target object file prefix
+(specified by the &cv-OBJPREFIX; construction variable; nothing by default)
+and suffix
+(specified by the &cv-OBJSUFFIX; construction variable;
+<filename>.obj</filename> on Windows systems,
+<filename>.o</filename> on POSIX systems)
+are automatically added to the target if not already present.
+Examples:
+
+<example>
+env.StaticObject(target = 'aaa', source = 'aaa.c')
+env.StaticObject(target = 'bbb.o', source = 'bbb.c++')
+env.StaticObject(target = 'ccc.obj', source = 'ccc.f')
+</example>
+</summary>
+</builder>
+
+<cvar name="CCVERSION">
+<summary>
+The version number of the C compiler.
+This may or may not be set,
+depending on the specific C compiler being used.
+</summary>
+</cvar>
+
+<cvar name="CFILESUFFIX">
+<summary>
+The suffix for C source files.
+This is used by the internal CFile builder
+when generating C files from Lex (.l) or YACC (.y) input files.
+The default suffix, of course, is
+<filename>.c</filename>
+(lower case).
+On case-insensitive systems (like Win32),
+SCons also treats
+<filename>.C</filename>
+(upper case) files
+as C files.
+</summary>
+</cvar>
+
+<cvar name="CXXVERSION">
+<summary>
+The version number of the C++ compiler.
+This may or may not be set,
+depending on the specific C++ compiler being used.
+</summary>
+</cvar>
+
+<cvar name="CXXFILESUFFIX">
+<summary>
+The suffix for C++ source files.
+This is used by the internal CXXFile builder
+when generating C++ files from Lex (.ll) or YACC (.yy) input files.
+The default suffix is
+<filename>.cc</filename>.
+SCons also treats files with the suffixes
+<filename>.cpp</filename>,
+<filename>.cxx</filename>,
+<filename>.c++</filename>,
+and
+<filename>.C++</filename>
+as C++ files.
+On case-sensitive systems (Linux, UNIX, and other POSIX-alikes),
+SCons also treats
+<filename>.C</filename>
+(upper case) files
+as C++ files.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/aixc++.xml b/src/engine/SCons/Tool/aixc++.xml
new file mode 100644
index 0000000..d386779
--- /dev/null
+++ b/src/engine/SCons/Tool/aixc++.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="aixc++">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/aixcc.xml b/src/engine/SCons/Tool/aixcc.xml
new file mode 100644
index 0000000..cb27adb
--- /dev/null
+++ b/src/engine/SCons/Tool/aixcc.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="aixcc">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/aixf77.xml b/src/engine/SCons/Tool/aixf77.xml
new file mode 100644
index 0000000..7e7988c
--- /dev/null
+++ b/src/engine/SCons/Tool/aixf77.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="aixf77">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/aixlink.xml b/src/engine/SCons/Tool/aixlink.xml
new file mode 100644
index 0000000..378dcbf
--- /dev/null
+++ b/src/engine/SCons/Tool/aixlink.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="aixlink">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/applelink.xml b/src/engine/SCons/Tool/applelink.xml
new file mode 100644
index 0000000..d839be0
--- /dev/null
+++ b/src/engine/SCons/Tool/applelink.xml
@@ -0,0 +1,11 @@
+<!-- __COPYRIGHT__ -->
+<cvar name="FRAMEWORKSFLAGS">
+<summary>
+On Mac OS X,
+frameworks options to be added at
+the end of a command
+line building a loadable module.
+</summary>
+</cvar>
+
+
diff --git a/src/engine/SCons/Tool/ar.py b/src/engine/SCons/Tool/ar.py
index ab232ee..92cab59 100644
--- a/src/engine/SCons/Tool/ar.py
+++ b/src/engine/SCons/Tool/ar.py
@@ -37,6 +37,7 @@ import SCons.Defaults
import SCons.Tool
import SCons.Util
+
def generate(env):
"""Add Builders and construction variables for ar to an Environment."""
SCons.Tool.createStaticLibBuilder(env)
diff --git a/src/engine/SCons/Tool/ar.xml b/src/engine/SCons/Tool/ar.xml
new file mode 100644
index 0000000..de3246f
--- /dev/null
+++ b/src/engine/SCons/Tool/ar.xml
@@ -0,0 +1,48 @@
+<!-- __COPYRIGHT__ -->
+<tool name="ar">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="AR">
+<summary>
+The static library archiver.
+</summary>
+</cvar>
+
+<cvar name="ARCOM">
+<summary>
+The command line used to generate a static library from object files.
+</summary>
+</cvar>
+
+<cvar name="ARCOMSTR">
+<summary>
+The string displayed when an object file
+is generated from an assembly-language source file.
+If this is not set, then &cv-ARCOM; (the command line) is displayed.
+
+<example>
+env = Environment(ARCOMSTR = "Archiving $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="ARFLAGS">
+<summary>
+General options passed to the static library archiver.
+</summary>
+</cvar>
+
+<cvar name="RANLIB">
+<summary>
+The archive indexer.
+</summary>
+</cvar>
+
+<cvar name="RANLIBFLAGS">
+<summary>
+General options passed to the archive indexer.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/as.xml b/src/engine/SCons/Tool/as.xml
new file mode 100644
index 0000000..a9395df
--- /dev/null
+++ b/src/engine/SCons/Tool/as.xml
@@ -0,0 +1,69 @@
+<!-- __COPYRIGHT__ -->
+<tool name="as">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="AS">
+<summary>
+The assembler.
+</summary>
+</cvar>
+
+<cvar name="ASCOM">
+<summary>
+The command line used to generate an object file
+from an assembly-language source file.
+</summary>
+</cvar>
+
+<cvar name="ASCOMSTR">
+<summary>
+The string displayed when an object file
+is generated from an assembly-language source file.
+If this is not set, then &cv-ASCOM; (the command line) is displayed.
+
+<example>
+env = Environment(ASCOMSTR = "Assembling $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="ASFLAGS">
+<summary>
+General options passed to the assembler.
+</summary>
+</cvar>
+
+<cvar name="ASPPCOM">
+<summary>
+The command line used to assemble an assembly-language
+source file into an object file
+after first running the file through the C preprocessor.
+Any options specified in the &cv-ASFLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="ASPPCOMSTR">
+<summary>
+The string displayed when an object file
+is generated from an assembly-language source file
+after first running the file through the C preprocessor.
+If this is not set, then &cv-ASPPCOM; (the command line) is displayed.
+
+<example>
+env = Environment(ASPPCOMSTR = "Assembling $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="ASPPFLAGS">
+<summary>
+General options when an assembling an assembly-language
+source file into an object file
+after first running the file through the C preprocessor.
+The default is to use the value of &cv-ASFLAGS;.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/bcc32.xml b/src/engine/SCons/Tool/bcc32.xml
new file mode 100644
index 0000000..ded614c
--- /dev/null
+++ b/src/engine/SCons/Tool/bcc32.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="bcc32">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/c++.xml b/src/engine/SCons/Tool/c++.xml
new file mode 100644
index 0000000..eaa8e6c
--- /dev/null
+++ b/src/engine/SCons/Tool/c++.xml
@@ -0,0 +1,76 @@
+<!-- __COPYRIGHT__ -->
+<tool name="c++">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="CXX">
+<summary>
+The C++ compiler.
+</summary>
+</cvar>
+
+<cvar name="CXXCOM">
+<summary>
+The command line used to compile a C++ source file to an object file.
+Any options specified in the &cv-CXXFLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="CXXCOMSTR">
+<summary>
+The string displayed when a C++ source file
+is compiled to a (static) object file.
+If this is not set, then &cv-CXXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(CXXCOMSTR = "Compiling static object $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="CXXFLAGS">
+<summary>
+General options that are passed to the C++ compiler.
+By default, this includes the value of &cv-CCFLAGS;,
+so that setting &cv-CCFLAGS; affects both C and C++ compilation.
+If you want to add C++-specific flags,
+you must set or override the value of &cv-CXXFLAGS;.
+</summary>
+</cvar>
+
+<cvar name="SHCXX">
+<summary>
+The C++ compiler used for generating shared-library objects.
+</summary>
+</cvar>
+
+<cvar name="SHCXXCOM">
+<summary>
+The command line used to compile a C++ source file
+to a shared-library object file.
+Any options specified in the &cv-SHCXXFLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="SHCXXCOMSTR">
+<summary>
+The string displayed when a C++ source file
+is compiled to a shared object file.
+If this is not set, then &cv-SHCXXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(SHCXXCOMSTR = "Compiling shared object $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="SHCXXFLAGS">
+<summary>
+Options that are passed to the C++ compiler
+to generate shared-library objects.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/cc.xml b/src/engine/SCons/Tool/cc.xml
new file mode 100644
index 0000000..fb688ad
--- /dev/null
+++ b/src/engine/SCons/Tool/cc.xml
@@ -0,0 +1,111 @@
+<!-- __COPYRIGHT__ -->
+<tool name="cc">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="CC">
+<summary>
+The C compiler.
+</summary>
+</cvar>
+
+<cvar name="CCCOM">
+<summary>
+The command line used to compile a C source file to a (static) object file.
+Any options specified in the &cv-CCFLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="CCCOMSTR">
+<summary>
+The string displayed when a C source file
+is compiled to a (static) object file.
+If this is not set, then &cv-CCCOM; (the command line) is displayed.
+
+<example>
+env = Environment(CCCOMSTR = "Compiling static object $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="CCFLAGS">
+<summary>
+General options that are passed to the C compiler.
+</summary>
+</cvar>
+
+<cvar name="CPPFLAGS">
+<summary>
+User-specified C preprocessor options.
+These will be included in any command that uses the C preprocessor,
+including not just compilation of C and C++ source files
+via the &cv-CCCOM;, &cv-SHCCCOM;, &cv-CXXCOM; and &cv-SHCXXCOM; command lines,
+but also the &cv-FORTRANPPCOM;, &cv-SHFORTRANPPCOM;,
+&cv-F77PPCOM; and &cv-SHF77PPCOM; command lines
+used to compile a Fortran source file,
+and the &cv-ASPPCOM; command line
+used to assemble an assembly language source file,
+after first running each file through the C preprocessor.
+Note that this variable does
+<emphasis>not</emphasis>
+contain
+<option>-I</option>
+(or similar) include search path options
+that scons generates automatically from &cv-CPPPATH;.
+See &cv-link-_CPPINCFLAGS;, below,
+for the variable that expands to those options.
+</summary>
+</cvar>
+
+<cvar name="CPPSUFFIXES">
+<summary>
+The list of suffixes of files that will be scanned
+for C preprocessor implicit dependencies
+(#include lines).
+The default list is:
+
+<example>
+[".c", ".C", ".cxx", ".cpp", ".c++", ".cc",
+ ".h", ".H", ".hxx", ".hpp", ".hh",
+ ".F", ".fpp", ".FPP",
+ ".S", ".spp", ".SPP"]
+</example>
+</summary>
+</cvar>
+
+<cvar name="SHCC">
+<summary>
+The C compiler used for generating shared-library objects.
+</summary>
+</cvar>
+
+<cvar name="SHCCCOM">
+<summary>
+The command line used to compile a C source file
+to a shared-library object file.
+Any options specified in the &cv-SHCCFLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="SHCCCOMSTR">
+<summary>
+The string displayed when a C source file
+is compiled to a shared object file.
+If this is not set, then &cv-SHCCCOM; (the command line) is displayed.
+
+<example>
+env = Environment(SHCCCOMSTR = "Compiling shared object $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="SHCCFLAGS">
+<summary>
+Options that are passed to the C compiler
+to generate shared-library objects.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/cvf.xml b/src/engine/SCons/Tool/cvf.xml
new file mode 100644
index 0000000..bd848ae
--- /dev/null
+++ b/src/engine/SCons/Tool/cvf.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="cvf">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/default.xml b/src/engine/SCons/Tool/default.xml
new file mode 100644
index 0000000..371e5bc
--- /dev/null
+++ b/src/engine/SCons/Tool/default.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="default">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/dmd.xml b/src/engine/SCons/Tool/dmd.xml
new file mode 100644
index 0000000..99ca8d9
--- /dev/null
+++ b/src/engine/SCons/Tool/dmd.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="dmd">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/dvipdf.xml b/src/engine/SCons/Tool/dvipdf.xml
new file mode 100644
index 0000000..fbb4933
--- /dev/null
+++ b/src/engine/SCons/Tool/dvipdf.xml
@@ -0,0 +1,38 @@
+<!-- __COPYRIGHT__ -->
+<tool name="dvipdf">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="DVIPDF">
+<summary>
+The TeX DVI file to PDF file converter.
+</summary>
+</cvar>
+
+<cvar name="DVIPDFFLAGS">
+<summary>
+General options passed to the TeX DVI file to PDF file converter.
+</summary>
+</cvar>
+
+<cvar name="DVIPDFCOM">
+<summary>
+The command line used to convert TeX DVI files into a PDF file.
+</summary>
+</cvar>
+
+<cvar name="DVIPDFCOMSTR">
+<summary>
+The string displayed when a TeX DVI file
+is converted into a PDF file.
+If this is not set, then &cv-DVIPDFCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="PDFCOM">
+<summary>
+A deprecated synonym for &cv-DVIPDFCOM;.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/dvips.xml b/src/engine/SCons/Tool/dvips.xml
new file mode 100644
index 0000000..c290469
--- /dev/null
+++ b/src/engine/SCons/Tool/dvips.xml
@@ -0,0 +1,66 @@
+<!-- __COPYRIGHT__ -->
+<tool name="dvips">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="PostScript">
+<summary>
+Builds a <filename>.ps</filename> file
+from a <filename>.dvi</filename> input file
+(or, by extension, a <filename>.tex</filename>,
+<filename>.ltx</filename>,
+or
+<filename>.latex</filename> input file).
+The suffix specified by the &cv-PSSUFFIX; construction variable
+(<filename>.ps</filename> by default)
+is added automatically to the target
+if it is not already present. Example:
+
+<example>
+# builds from aaa.tex
+env.PostScript(target = 'aaa.ps', source = 'aaa.tex')
+# builds bbb.ps from bbb.dvi
+env.PostScript(target = 'bbb', source = 'bbb.dvi')
+</example>
+</summary>
+</builder>
+
+<cvar name="DVIPS">
+<summary>
+The TeX DVI file to PostScript converter.
+</summary>
+</cvar>
+
+<cvar name="DVIPSFLAGS">
+<summary>
+General options passed to the TeX DVI file to PostScript converter.
+</summary>
+</cvar>
+
+<cvar name="PSCOM">
+<summary>
+The command line used to convert TeX DVI files into a PostScript file.
+</summary>
+</cvar>
+
+<cvar name="PSCOMSTR">
+<summary>
+The string displayed when a TeX DVI file
+is converted into a PostScript file.
+If this is not set, then &cv-PSCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="PSPREFIX">
+<summary>
+The prefix used for PostScript file names.
+</summary>
+</cvar>
+
+<cvar name="PSSUFFIX">
+<summary>
+The prefix used for PostScript file names.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/f77.xml b/src/engine/SCons/Tool/f77.xml
new file mode 100644
index 0000000..caf959f
--- /dev/null
+++ b/src/engine/SCons/Tool/f77.xml
@@ -0,0 +1,196 @@
+<!-- __COPYRIGHT__ -->
+<tool name="f77">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="F77">
+<summary>
+The Fortran 77 compiler.
+You should normally set the &cv-FORTRAN; variable,
+which specifies the default Fortran compiler
+for all Fortran versions.
+You only need to set &cv-F77; if you need to use a specific compiler
+or compiler version for Fortran 77 files.
+</summary>
+</cvar>
+
+<cvar name="F77COM">
+<summary>
+The command line used to compile a Fortran 77 source file to an object file.
+You only need to set &cv-F77COM; if you need to use a specific
+command line for Fortran 77 files.
+You should normally set the &cv-FORTRANCOM; variable,
+which specifies the default command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="F77COMSTR">
+<summary>
+The string displayed when a Fortran 77 source file
+is compiled to an object file.
+If this is not set, then &cv-F77COM; or &cv-FORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="F77FLAGS">
+<summary>
+General user-specified options that are passed to the Fortran 77 compiler.
+Note that this variable does
+<emphasis>not</emphasis>
+contain
+<option>-I</option>
+(or similar) include search path options
+that scons generates automatically from &cv-F77PATH;.
+See
+&cv-_F77INCFLAGS;
+below,
+for the variable that expands to those options.
+You only need to set &cv-F77FLAGS; if you need to define specific
+user options for Fortran 77 files.
+You should normally set the &cv-FORTRANFLAGS; variable,
+which specifies the user-specified options
+passed to the default Fortran compiler
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="_F77INCFLAGS">
+<summary>
+An automatically-generated construction variable
+containing the Fortran 77 compiler command-line options
+for specifying directories to be searched for include files.
+The value of &cv-_F77INCFLAGS; is created
+by appending &cv-INCPREFIX; and &cv-INCSUFFIX;
+to the beginning and end
+of each directory in &cv-F77PATH;.
+</summary>
+</cvar>
+
+<cvar name="F77PATH">
+<summary>
+The list of directories that the Fortran 77 compiler will search for include
+directories. The implicit dependency scanner will search these
+directories for include files. Don't explicitly put include directory
+arguments in &cv-F77FLAGS; because the result will be non-portable
+and the directories will not be searched by the dependency scanner. Note:
+directory names in &cv-F77PATH; will be looked-up relative to the SConscript
+directory when they are used in a command. To force
+&scons;
+to look-up a directory relative to the root of the source tree use #:
+You only need to set &cv-F77PATH; if you need to define a specific
+include path for Fortran 77 files.
+You should normally set the &cv-FORTRANPATH; variable,
+which specifies the include path
+for the default Fortran compiler
+for all Fortran versions.
+
+<example>
+env = Environment(F77PATH='#/include')
+</example>
+
+The directory look-up can also be forced using the
+&Dir;()
+function:
+
+<example>
+include = Dir('include')
+env = Environment(F77PATH=include)
+</example>
+
+The directory list will be added to command lines
+through the automatically-generated
+&cv-_F77INCFLAGS;
+construction variable,
+which is constructed by
+appending the values of the
+&cv-INCPREFIX; and &cv-INCSUFFIX;
+construction variables
+to the beginning and end
+of each directory in &cv-F77PATH;.
+Any command lines you define that need
+the F77PATH directory list should
+include &cv-_F77INCFLAGS;:
+
+<example>
+env = Environment(F77COM="my_compiler $_F77INCFLAGS -c -o $TARGET $SOURCE")
+</example>
+</summary>
+</cvar>
+
+<cvar name="F77PPCOM">
+<summary>
+The command line used to compile a Fortran 77 source file to an object file
+after first running the file through the C preprocessor.
+Any options specified in the &cv-F77FLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+You only need to set &cv-F77PPCOM; if you need to use a specific
+C-preprocessor command line for Fortran 77 files.
+You should normally set the &cv-FORTRANPPCOM; variable,
+which specifies the default C-preprocessor command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF77">
+<summary>
+The Fortran 77 compiler used for generating shared-library objects.
+You should normally set the &cv-SHFORTRAN; variable,
+which specifies the default Fortran compiler
+for all Fortran versions.
+You only need to set &cv-SHF77; if you need to use a specific compiler
+or compiler version for Fortran 77 files.
+</summary>
+</cvar>
+
+<cvar name="SHF77COM">
+<summary>
+The command line used to compile a Fortran 77 source file
+to a shared-library object file.
+You only need to set &cv-SHF77COM; if you need to use a specific
+command line for Fortran 77 files.
+You should normally set the &cv-SHFORTRANCOM; variable,
+which specifies the default command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF77COMSTR">
+<summary>
+The string displayed when a Fortran 77 source file
+is compiled to a shared-library object file.
+If this is not set, then &cv-SHF77COM; or &cv-SHFORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="SHF77FLAGS">
+<summary>
+Options that are passed to the Fortran 77 compiler
+to generated shared-library objects.
+You only need to set &cv-SHF77FLAGS; if you need to define specific
+user options for Fortran 77 files.
+You should normally set the &cv-SHFORTRANFLAGS; variable,
+which specifies the user-specified options
+passed to the default Fortran compiler
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF77PPCOM">
+<summary>
+The command line used to compile a Fortran 77 source file to a
+shared-library object file
+after first running the file through the C preprocessor.
+Any options specified in the &cv-SHF77FLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+You only need to set &cv-SHF77PPCOM; if you need to use a specific
+C-preprocessor command line for Fortran 77 files.
+You should normally set the &cv-SHFORTRANPPCOM; variable,
+which specifies the default C-preprocessor command line
+for all Fortran versions.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/f90.xml b/src/engine/SCons/Tool/f90.xml
new file mode 100644
index 0000000..b2f0857
--- /dev/null
+++ b/src/engine/SCons/Tool/f90.xml
@@ -0,0 +1,196 @@
+<!-- __COPYRIGHT__ -->
+<tool name="f90">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="F90">
+<summary>
+The Fortran 90 compiler.
+You should normally set the &cv-FORTRAN; variable,
+which specifies the default Fortran compiler
+for all Fortran versions.
+You only need to set &cv-F90; if you need to use a specific compiler
+or compiler version for Fortran 90 files.
+</summary>
+</cvar>
+
+<cvar name="F90COM">
+<summary>
+The command line used to compile a Fortran 90 source file to an object file.
+You only need to set &cv-F90COM; if you need to use a specific
+command line for Fortran 90 files.
+You should normally set the &cv-FORTRANCOM; variable,
+which specifies the default command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="F90COMSTR">
+<summary>
+The string displayed when a Fortran 90 source file
+is compiled to an object file.
+If this is not set, then &cv-F90COM; or &cv-FORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="F90FLAGS">
+<summary>
+General user-specified options that are passed to the Fortran 90 compiler.
+Note that this variable does
+<emphasis>not</emphasis>
+contain
+<option>-I</option>
+(or similar) include search path options
+that scons generates automatically from &cv-F90PATH;.
+See
+&cv-_F90INCFLAGS;
+below,
+for the variable that expands to those options.
+You only need to set &cv-F90FLAGS; if you need to define specific
+user options for Fortran 90 files.
+You should normally set the &cv-FORTRANFLAGS; variable,
+which specifies the user-specified options
+passed to the default Fortran compiler
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="_F90INCFLAGS">
+<summary>
+An automatically-generated construction variable
+containing the Fortran 90 compiler command-line options
+for specifying directories to be searched for include files.
+The value of &cv-_F90INCFLAGS; is created
+by appending &cv-INCPREFIX; and &cv-INCSUFFIX;
+to the beginning and end
+of each directory in &cv-F90PATH;.
+</summary>
+</cvar>
+
+<cvar name="F90PATH">
+<summary>
+The list of directories that the Fortran 90 compiler will search for include
+directories. The implicit dependency scanner will search these
+directories for include files. Don't explicitly put include directory
+arguments in &cv-F90FLAGS; because the result will be non-portable
+and the directories will not be searched by the dependency scanner. Note:
+directory names in &cv-F90PATH; will be looked-up relative to the SConscript
+directory when they are used in a command. To force
+&scons;
+to look-up a directory relative to the root of the source tree use #:
+You only need to set &cv-F90PATH; if you need to define a specific
+include path for Fortran 90 files.
+You should normally set the &cv-FORTRANPATH; variable,
+which specifies the include path
+for the default Fortran compiler
+for all Fortran versions.
+
+<example>
+env = Environment(F90PATH='#/include')
+</example>
+
+The directory look-up can also be forced using the
+&Dir;()
+function:
+
+<example>
+include = Dir('include')
+env = Environment(F90PATH=include)
+</example>
+
+The directory list will be added to command lines
+through the automatically-generated
+&cv-_F90INCFLAGS;
+construction variable,
+which is constructed by
+appending the values of the
+&cv-INCPREFIX; and &cv-INCSUFFIX;
+construction variables
+to the beginning and end
+of each directory in &cv-F90PATH;.
+Any command lines you define that need
+the F90PATH directory list should
+include &cv-_F90INCFLAGS;:
+
+<example>
+env = Environment(F90COM="my_compiler $_F90INCFLAGS -c -o $TARGET $SOURCE")
+</example>
+</summary>
+</cvar>
+
+<cvar name="F90PPCOM">
+<summary>
+The command line used to compile a Fortran 90 source file to an object file
+after first running the file through the C preprocessor.
+Any options specified in the &cv-F90FLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+You only need to set &cv-F90PPCOM; if you need to use a specific
+C-preprocessor command line for Fortran 90 files.
+You should normally set the &cv-FORTRANPPCOM; variable,
+which specifies the default C-preprocessor command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF90">
+<summary>
+The Fortran 90 compiler used for generating shared-library objects.
+You should normally set the &cv-SHFORTRAN; variable,
+which specifies the default Fortran compiler
+for all Fortran versions.
+You only need to set &cv-SHF90; if you need to use a specific compiler
+or compiler version for Fortran 90 files.
+</summary>
+</cvar>
+
+<cvar name="SHF90COM">
+<summary>
+The command line used to compile a Fortran 90 source file
+to a shared-library object file.
+You only need to set &cv-SHF90COM; if you need to use a specific
+command line for Fortran 90 files.
+You should normally set the &cv-SHFORTRANCOM; variable,
+which specifies the default command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF90COMSTR">
+<summary>
+The string displayed when a Fortran 90 source file
+is compiled to a shared-library object file.
+If this is not set, then &cv-SHF90COM; or &cv-SHFORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="SHF90FLAGS">
+<summary>
+Options that are passed to the Fortran 90 compiler
+to generated shared-library objects.
+You only need to set &cv-SHF90FLAGS; if you need to define specific
+user options for Fortran 90 files.
+You should normally set the &cv-SHFORTRANFLAGS; variable,
+which specifies the user-specified options
+passed to the default Fortran compiler
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF90PPCOM">
+<summary>
+The command line used to compile a Fortran 90 source file to a
+shared-library object file
+after first running the file through the C preprocessor.
+Any options specified in the &cv-SHF90FLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+You only need to set &cv-SHF90PPCOM; if you need to use a specific
+C-preprocessor command line for Fortran 90 files.
+You should normally set the &cv-SHFORTRANPPCOM; variable,
+which specifies the default C-preprocessor command line
+for all Fortran versions.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/f95.xml b/src/engine/SCons/Tool/f95.xml
new file mode 100644
index 0000000..df74422
--- /dev/null
+++ b/src/engine/SCons/Tool/f95.xml
@@ -0,0 +1,196 @@
+<!-- __COPYRIGHT__ -->
+<tool name="f95">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="F95">
+<summary>
+The Fortran 95 compiler.
+You should normally set the &cv-FORTRAN; variable,
+which specifies the default Fortran compiler
+for all Fortran versions.
+You only need to set &cv-F95; if you need to use a specific compiler
+or compiler version for Fortran 95 files.
+</summary>
+</cvar>
+
+<cvar name="F95COM">
+<summary>
+The command line used to compile a Fortran 95 source file to an object file.
+You only need to set &cv-F95COM; if you need to use a specific
+command line for Fortran 95 files.
+You should normally set the &cv-FORTRANCOM; variable,
+which specifies the default command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="F95COMSTR">
+<summary>
+The string displayed when a Fortran 95 source file
+is compiled to an object file.
+If this is not set, then &cv-F95COM; or &cv-FORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="F95FLAGS">
+<summary>
+General user-specified options that are passed to the Fortran 95 compiler.
+Note that this variable does
+<emphasis>not</emphasis>
+contain
+<option>-I</option>
+(or similar) include search path options
+that scons generates automatically from &cv-F95PATH;.
+See
+&cv-_F95INCFLAGS;
+below,
+for the variable that expands to those options.
+You only need to set &cv-F95FLAGS; if you need to define specific
+user options for Fortran 95 files.
+You should normally set the &cv-FORTRANFLAGS; variable,
+which specifies the user-specified options
+passed to the default Fortran compiler
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="_F95INCFLAGS">
+<summary>
+An automatically-generated construction variable
+containing the Fortran 95 compiler command-line options
+for specifying directories to be searched for include files.
+The value of &cv-_F95INCFLAGS; is created
+by appending &cv-INCPREFIX; and &cv-INCSUFFIX;
+to the beginning and end
+of each directory in &cv-F95PATH;.
+</summary>
+</cvar>
+
+<cvar name="F95PATH">
+<summary>
+The list of directories that the Fortran 95 compiler will search for include
+directories. The implicit dependency scanner will search these
+directories for include files. Don't explicitly put include directory
+arguments in &cv-F95FLAGS; because the result will be non-portable
+and the directories will not be searched by the dependency scanner. Note:
+directory names in &cv-F95PATH; will be looked-up relative to the SConscript
+directory when they are used in a command. To force
+&scons;
+to look-up a directory relative to the root of the source tree use #:
+You only need to set &cv-F95PATH; if you need to define a specific
+include path for Fortran 95 files.
+You should normally set the &cv-FORTRANPATH; variable,
+which specifies the include path
+for the default Fortran compiler
+for all Fortran versions.
+
+<example>
+env = Environment(F95PATH='#/include')
+</example>
+
+The directory look-up can also be forced using the
+&Dir;()
+function:
+
+<example>
+include = Dir('include')
+env = Environment(F95PATH=include)
+</example>
+
+The directory list will be added to command lines
+through the automatically-generated
+&cv-_F95INCFLAGS;
+construction variable,
+which is constructed by
+appending the values of the
+&cv-INCPREFIX; and &cv-INCSUFFIX;
+construction variables
+to the beginning and end
+of each directory in &cv-F95PATH;.
+Any command lines you define that need
+the F95PATH directory list should
+include &cv-_F95INCFLAGS;:
+
+<example>
+env = Environment(F95COM="my_compiler $_F95INCFLAGS -c -o $TARGET $SOURCE")
+</example>
+</summary>
+</cvar>
+
+<cvar name="F95PPCOM">
+<summary>
+The command line used to compile a Fortran 95 source file to an object file
+after first running the file through the C preprocessor.
+Any options specified in the &cv-F95FLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+You only need to set &cv-F95PPCOM; if you need to use a specific
+C-preprocessor command line for Fortran 95 files.
+You should normally set the &cv-FORTRANPPCOM; variable,
+which specifies the default C-preprocessor command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF95">
+<summary>
+The Fortran 95 compiler used for generating shared-library objects.
+You should normally set the &cv-SHFORTRAN; variable,
+which specifies the default Fortran compiler
+for all Fortran versions.
+You only need to set &cv-SHF95; if you need to use a specific compiler
+or compiler version for Fortran 95 files.
+</summary>
+</cvar>
+
+<cvar name="SHF95COM">
+<summary>
+The command line used to compile a Fortran 95 source file
+to a shared-library object file.
+You only need to set &cv-SHF95COM; if you need to use a specific
+command line for Fortran 95 files.
+You should normally set the &cv-SHFORTRANCOM; variable,
+which specifies the default command line
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF95COMSTR">
+<summary>
+The string displayed when a Fortran 95 source file
+is compiled to a shared-library object file.
+If this is not set, then &cv-SHF95COM; or &cv-SHFORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="SHF95FLAGS">
+<summary>
+Options that are passed to the Fortran 95 compiler
+to generated shared-library objects.
+You only need to set &cv-SHF95FLAGS; if you need to define specific
+user options for Fortran 95 files.
+You should normally set the &cv-SHFORTRANFLAGS; variable,
+which specifies the user-specified options
+passed to the default Fortran compiler
+for all Fortran versions.
+</summary>
+</cvar>
+
+<cvar name="SHF95PPCOM">
+<summary>
+The command line used to compile a Fortran 95 source file to a
+shared-library object file
+after first running the file through the C preprocessor.
+Any options specified in the &cv-SHF95FLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+You only need to set &cv-SHF95PPCOM; if you need to use a specific
+C-preprocessor command line for Fortran 95 files.
+You should normally set the &cv-SHFORTRANPPCOM; variable,
+which specifies the default C-preprocessor command line
+for all Fortran versions.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/fortran.xml b/src/engine/SCons/Tool/fortran.xml
new file mode 100644
index 0000000..4282f30
--- /dev/null
+++ b/src/engine/SCons/Tool/fortran.xml
@@ -0,0 +1,240 @@
+<!-- __COPYRIGHT__ -->
+<tool name="fortran">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="FORTRAN">
+<summary>
+The default Fortran compiler
+for all versions of Fortran.
+</summary>
+</cvar>
+
+<cvar name="FORTRANCOM">
+<summary>
+The command line used to compile a Fortran source file to an object file.
+By default, any options specified
+in the &cv-FORTRANFLAGS;, &cv-CPPFLAGS;, &cv-_CPPDEFFLAGS;,
+&cv-_FORTRANMODFLAG;, and &cv-_FORTRANINCFLAGS; construction variables
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="FORTRANCOMSTR">
+<summary>
+The string displayed when a Fortran source file
+is compiled to an object file.
+If this is not set, then &cv-FORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="FORTRANFLAGS">
+<summary>
+General user-specified options that are passed to the Fortran compiler.
+Note that this variable does
+<emphasis>not</emphasis>
+contain
+<option>-I</option>
+(or similar) include or module search path options
+that scons generates automatically from &cv-FORTRANPATH;.
+See
+&cv-_FORTRANINCFLAGS; and &cv-_FORTRANMODFLAG;,
+below,
+for the variables that expand those options.
+</summary>
+</cvar>
+
+<cvar name="_FORTRANINCFLAGS">
+<summary>
+An automatically-generated construction variable
+containing the Fortran compiler command-line options
+for specifying directories to be searched for include
+files and module files.
+The value of &cv-_FORTRANINCFLAGS; is created
+by prepending/appending &cv-INCPREFIX; and &cv-INCSUFFIX;
+to the beginning and end
+of each directory in &cv-FORTRANPATH;.
+</summary>
+</cvar>
+
+<cvar name="FORTRANMODDIR">
+<summary>
+Directory location where the Fortran compiler should place
+any module files it generates. This variable is empty, by default. Some
+Fortran compilers will internally append this directory in the search path
+for module files, as well
+</summary>
+</cvar>
+
+<cvar name="FORTRANMODDIRPREFIX">
+<summary>
+The prefix used to specify a module directory on the Fortran compiler command
+line.
+This will be appended to the beginning of the directory
+in the &cv-FORTRANMODDIR; construction variables
+when the &cv-_FORTRANMODFLAG; variables is automatically generated.
+</summary>
+</cvar>
+
+<cvar name="FORTRANMODDIRSUFFIX">
+<summary>
+The suffix used to specify a module directory on the Fortran compiler command
+line.
+This will be appended to the beginning of the directory
+in the &cv-FORTRANMODDIR; construction variables
+when the &cv-_FORTRANMODFLAG; variables is automatically generated.
+</summary>
+</cvar>
+
+<cvar name="_FORTRANMODFLAG">
+<summary>
+An automatically-generated construction variable
+containing the Fortran compiler command-line option
+for specifying the directory location where the Fortran
+compiler should place any module files that happen to get
+generated during compilation.
+The value of &cv-_FORTRANMODFLAG; is created
+by prepending/appending &cv-FORTRANMODDIRPREFIX; and &cv-FORTRANMODDIRSUFFIX;
+to the beginning and end of the directory in &cv-FORTRANMODDIR;.
+</summary>
+</cvar>
+
+<cvar name="FORTRANMODPREFIX">
+<summary>
+The module file prefix used by the Fortran compiler. SCons assumes that
+the Fortran compiler follows the quasi-standard naming convention for
+module files of
+<filename>module_name.mod</filename>.
+As a result, this variable is left empty, by default. For situations in
+which the compiler does not necessarily follow the normal convention,
+the user may use this variable. Its value will be appended to every
+module file name as scons attempts to resolve dependencies.
+</summary>
+</cvar>
+
+<cvar name="FORTRANMODSUFFIX">
+<summary>
+The module file suffix used by the Fortran compiler. SCons assumes that
+the Fortran compiler follows the quasi-standard naming convention for
+module files of
+<filename>module_name.mod</filename>.
+As a result, this variable is set to ".mod", by default. For situations
+in which the compiler does not necessarily follow the normal convention,
+the user may use this variable. Its value will be appended to every
+module file name as scons attempts to resolve dependencies.
+</summary>
+</cvar>
+
+<cvar name="FORTRANPATH">
+<summary>
+The list of directories that the Fortran compiler will search for
+include files and (for some compilers) module files. The Fortran implicit
+dependency scanner will search these directories for include files (but
+not module files since they are autogenerated and, as such, may not
+actually exist at the time the scan takes place). Don't explicitly put
+include directory arguments in FORTRANFLAGS because the result will be
+non-portable and the directories will not be searched by the dependency
+scanner. Note: directory names in FORTRANPATH will be looked-up relative
+to the SConscript directory when they are used in a command. To force
+&scons;
+to look-up a directory relative to the root of the source tree use #:
+
+<example>
+env = Environment(FORTRANPATH='#/include')
+</example>
+
+The directory look-up can also be forced using the
+&Dir;()
+function:
+
+<example>
+include = Dir('include')
+env = Environment(FORTRANPATH=include)
+</example>
+
+The directory list will be added to command lines
+through the automatically-generated
+&cv-_FORTRANINCFLAGS;
+construction variable,
+which is constructed by
+appending the values of the
+&cv-INCPREFIX; and &cv-INCSUFFIX;
+construction variables
+to the beginning and end
+of each directory in &cv-FORTRANPATH;.
+Any command lines you define that need
+the FORTRANPATH directory list should
+include &cv-_FORTRANINCFLAGS;:
+
+<example>
+env = Environment(FORTRANCOM="my_compiler $_FORTRANINCFLAGS -c -o $TARGET $SOURCE")
+</example>
+</summary>
+</cvar>
+
+<cvar name="FORTRANPPCOM">
+<summary>
+The command line used to compile a Fortran source file to an object file
+after first running the file through the C preprocessor.
+By default, any options specified in the &cv-FORTRANFLAGS;, &cv-CPPFLAGS;,
+_CPPDEFFLAGS, &cv-_FORTRANMODFLAG;, and &cv-_FORTRANINCFLAGS;
+construction variables are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="FORTRANSUFFIXES">
+<summary>
+The list of suffixes of files that will be scanned
+for Fortran implicit dependencies
+(INCLUDE lines and USE statements).
+The default list is:
+
+<example>
+[".f", ".F", ".for", ".FOR", ".ftn", ".FTN", ".fpp", ".FPP",
+".f77", ".F77", ".f90", ".F90", ".f95", ".F95"]
+</example>
+</summary>
+</cvar>
+
+<cvar name="SHFORTRAN">
+<summary>
+The default Fortran compiler used for generating shared-library objects.
+</summary>
+</cvar>
+
+<cvar name="SHFORTRANCOM">
+<summary>
+The command line used to compile a Fortran source file
+to a shared-library object file.
+</summary>
+</cvar>
+
+<cvar name="SHFORTRANCOMSTR">
+<summary>
+The string displayed when a Fortran source file
+is compiled to a shared-library object file.
+If this is not set, then &cv-SHFORTRANCOM;
+(the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="SHFORTRANFLAGS">
+<summary>
+Options that are passed to the Fortran compiler
+to generate shared-library objects.
+</summary>
+</cvar>
+
+<cvar name="SHFORTRANPPCOM">
+<summary>
+The command line used to compile a Fortran source file to a
+shared-library object file
+after first running the file through the C preprocessor.
+Any options specified
+in the &cv-SHFORTRANFLAGS; and &cv-CPPFLAGS; construction variables
+are included on this command line.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/g++.xml b/src/engine/SCons/Tool/g++.xml
new file mode 100644
index 0000000..b6fb5b0
--- /dev/null
+++ b/src/engine/SCons/Tool/g++.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="g++">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/g77.xml b/src/engine/SCons/Tool/g77.xml
new file mode 100644
index 0000000..94f415a
--- /dev/null
+++ b/src/engine/SCons/Tool/g77.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="g77">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/gas.xml b/src/engine/SCons/Tool/gas.xml
new file mode 100644
index 0000000..29179e2
--- /dev/null
+++ b/src/engine/SCons/Tool/gas.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="gas">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/gcc.xml b/src/engine/SCons/Tool/gcc.xml
new file mode 100644
index 0000000..51dac07
--- /dev/null
+++ b/src/engine/SCons/Tool/gcc.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="gcc">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/gnulink.xml b/src/engine/SCons/Tool/gnulink.xml
new file mode 100644
index 0000000..d7c1a42
--- /dev/null
+++ b/src/engine/SCons/Tool/gnulink.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="gnulink">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/gs.xml b/src/engine/SCons/Tool/gs.xml
new file mode 100644
index 0000000..377bfc3
--- /dev/null
+++ b/src/engine/SCons/Tool/gs.xml
@@ -0,0 +1,34 @@
+<!-- __COPYRIGHT__ -->
+<tool name="gs">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="GS">
+<summary>
+The Ghostscript program used to convert PostScript to PDF files.
+</summary>
+</cvar>
+
+<cvar name="GSCOM">
+<summary>
+The Ghostscript command line used to convert PostScript to PDF files.
+</summary>
+</cvar>
+
+<cvar name="GSCOMSTR">
+<summary>
+The string displayed when
+Ghostscript is used to convert
+a PostScript file to a PDF file.
+If this is not set, then &cv-GSCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="GSFLAGS">
+<summary>
+General options passed to the Ghostscript program
+when converting PostScript to PDF files.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/hpc++.xml b/src/engine/SCons/Tool/hpc++.xml
new file mode 100644
index 0000000..5c13718
--- /dev/null
+++ b/src/engine/SCons/Tool/hpc++.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="hpc++">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/hpcc.xml b/src/engine/SCons/Tool/hpcc.xml
new file mode 100644
index 0000000..db2fccd
--- /dev/null
+++ b/src/engine/SCons/Tool/hpcc.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="hpcc">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/hplink.xml b/src/engine/SCons/Tool/hplink.xml
new file mode 100644
index 0000000..71f5e22
--- /dev/null
+++ b/src/engine/SCons/Tool/hplink.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="hplink">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/icc.xml b/src/engine/SCons/Tool/icc.xml
new file mode 100644
index 0000000..a6fdea2
--- /dev/null
+++ b/src/engine/SCons/Tool/icc.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="icc">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/icl.xml b/src/engine/SCons/Tool/icl.xml
new file mode 100644
index 0000000..be20912
--- /dev/null
+++ b/src/engine/SCons/Tool/icl.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="icl">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/ifl.xml b/src/engine/SCons/Tool/ifl.xml
new file mode 100644
index 0000000..34dfecb
--- /dev/null
+++ b/src/engine/SCons/Tool/ifl.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="ifl">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/ifort.xml b/src/engine/SCons/Tool/ifort.xml
new file mode 100644
index 0000000..2cb889b
--- /dev/null
+++ b/src/engine/SCons/Tool/ifort.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="ifort">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/ilink.xml b/src/engine/SCons/Tool/ilink.xml
new file mode 100644
index 0000000..4f86883
--- /dev/null
+++ b/src/engine/SCons/Tool/ilink.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="ilink">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/ilink32.xml b/src/engine/SCons/Tool/ilink32.xml
new file mode 100644
index 0000000..0d62be4
--- /dev/null
+++ b/src/engine/SCons/Tool/ilink32.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="ilink32">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/intelc.xml b/src/engine/SCons/Tool/intelc.xml
new file mode 100644
index 0000000..47cfbec
--- /dev/null
+++ b/src/engine/SCons/Tool/intelc.xml
@@ -0,0 +1,14 @@
+<!-- __COPYRIGHT__ -->
+<tool name="intelc">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="INTEL_C_COMPILER_VERSION">
+<summary>
+Set by the "intelc" Tool
+to the major version number of the Intel C compiler
+selected for use.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/jar.xml b/src/engine/SCons/Tool/jar.xml
new file mode 100644
index 0000000..b89468d
--- /dev/null
+++ b/src/engine/SCons/Tool/jar.xml
@@ -0,0 +1,82 @@
+<!-- __COPYRIGHT__ -->
+<tool name="jar">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="Jar">
+<summary>
+Builds a Java archive (<filename>.jar</filename>) file
+from a source tree of <filename>.class</filename> files.
+If the &cv-JARCHDIR; value is set, the
+&jar;
+command will change to the specified directory using the
+<option>-C</option>
+option.
+If the contents any of the source files begin with the string
+<literal>Manifest-Version</literal>,
+the file is assumed to be a manifest
+and is passed to the
+&jar;
+command with the
+<option>m</option>
+option set.
+
+<example>
+env.Jar(target = 'foo.jar', source = 'classes')
+</example>
+</summary>
+</builder>
+
+<cvar name="JAR">
+<summary>
+The Java archive tool.
+</summary>
+</cvar>
+
+<cvar name="JARCHDIR">
+<summary>
+The directory to which the Java archive tool should change
+(using the
+<option>-C</option>
+option).
+</summary>
+</cvar>
+
+<cvar name="JARCOM">
+<summary>
+The command line used to call the Java archive tool.
+</summary>
+</cvar>
+
+<cvar name="JARCOMSTR">
+<summary>
+The string displayed when the Java archive tool
+is called
+If this is not set, then &cv-JARCOM; (the command line) is displayed.
+
+<example>
+env = Environment(JARCOMSTR = "JARchiving $SOURCES into $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="JARFLAGS">
+<summary>
+General options passed to the Java archive tool.
+By default this is set to
+<option>cf</option>
+to create the necessary
+<command>jar</command>
+file.
+</summary>
+</cvar>
+
+<cvar name="JARSUFFIX">
+<summary>
+The suffix for Java archives:
+<filename>.jar</filename>
+by default.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/javac.xml b/src/engine/SCons/Tool/javac.xml
new file mode 100644
index 0000000..9cd40b5
--- /dev/null
+++ b/src/engine/SCons/Tool/javac.xml
@@ -0,0 +1,109 @@
+<!-- __COPYRIGHT__ -->
+<tool name="javac">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="Java">
+<summary>
+Builds one or more Java class files
+from one or more source trees of <filename>.java</filename> files.
+The class files will be placed underneath
+the specified target directory.
+SCons will parse each source <filename>.java</filename> file
+to find the classes
+(including inner classes)
+defined within that file,
+and from that figure out the
+target <filename>.class</filename> files that will be created.
+SCons will also search each Java file
+for the Java package name,
+which it assumes can be found on a line
+beginning with the string
+<literal>package</literal>
+in the first column;
+the resulting <filename>.class</filename> files
+will be placed in a directory reflecting
+the specified package name.
+For example,
+the file
+<filename>Foo.java</filename>
+defining a single public
+<classname>Foo</classname>
+class and
+containing a package name of
+<classname>sub.dir</classname>
+will generate a corresponding
+<filename>sub/dir/Foo.class</filename>
+class file.
+
+Example:
+
+<example>
+env.Java(target = 'classes', source = 'src')
+env.Java(target = 'classes', source = ['src1', 'src2'])
+</example>
+</summary>
+</builder>
+
+<cvar name="JAVAC">
+<summary>
+The Java compiler.
+</summary>
+</cvar>
+
+<cvar name="JAVACCOM">
+<summary>
+The command line used to compile a directory tree containing
+Java source files to
+corresponding Java class files.
+Any options specified in the &cv-JAVACFLAGS; construction variable
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="JAVACCOMSTR">
+<summary>
+The string displayed when compiling
+a directory tree of Java source files to
+corresponding Java class files.
+If this is not set, then &cv-JAVACCOM; (the command line) is displayed.
+
+<example>
+env = Environment(JAVACCOMSTR = "Compiling class files $TARGETS from $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="JAVACFLAGS">
+<summary>
+General options that are passed to the Java compiler.
+</summary>
+</cvar>
+
+<cvar name="JAVACLASSDIR">
+<summary>
+The directory in which Java class files may be found.
+This is stripped from the beginning of any Java .class
+file names supplied to the
+<literal>JavaH</literal>
+builder.
+</summary>
+</cvar>
+
+<cvar name="JAVACLASSSUFFIX">
+<summary>
+The suffix for Java class files;
+<filename>.class</filename>
+by default.
+</summary>
+</cvar>
+
+<cvar name="JAVASUFFIX">
+<summary>
+The suffix for Java files;
+<filename>.java</filename>
+by default.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/javah.xml b/src/engine/SCons/Tool/javah.xml
new file mode 100644
index 0000000..7699784
--- /dev/null
+++ b/src/engine/SCons/Tool/javah.xml
@@ -0,0 +1,82 @@
+<!-- __COPYRIGHT__ -->
+<tool name="javah">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="JavaH">
+<summary>
+Builds C header and source files for
+implementing Java native methods.
+The target can be either a directory
+in which the header files will be written,
+or a header file name which
+will contain all of the definitions.
+The source can be either the names of <filename>.class</filename> files,
+or the objects returned from the
+&b-Java;
+builder method.
+
+If the construction variable
+&cv-JAVACLASSDIR;
+is set, either in the environment
+or in the call to the
+&b-JavaH;
+builder method itself,
+then the value of the variable
+will be stripped from the
+beginning of any <filename>.class</filename> file names.
+
+Examples:
+
+<example>
+# builds java_native.h
+classes = env.Java(target = 'classdir', source = 'src')
+env.JavaH(target = 'java_native.h', source = classes)
+
+# builds include/package_foo.h and include/package_bar.h
+env.JavaH(target = 'include',
+ source = ['package/foo.class', 'package/bar.class'])
+
+# builds export/foo.h and export/bar.h
+env.JavaH(target = 'export',
+ source = ['classes/foo.class', 'classes/bar.class'],
+ JAVACLASSDIR = 'classes')
+</example>
+</summary>
+</builder>
+
+<cvar name="JAVAH">
+<summary>
+The Java generator for C header and stub files.
+</summary>
+</cvar>
+
+<cvar name="JAVAHCOM">
+<summary>
+The command line used to generate C header and stub files
+from Java classes.
+Any options specified in the &cv-JAVAHFLAGS; construction variable
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="JAVAHCOMSTR">
+<summary>
+The string displayed when C header and stub files
+are generated from Java classes.
+If this is not set, then &cv-JAVAHCOM; (the command line) is displayed.
+
+<example>
+env = Environment(JAVAHCOMSTR = "Generating header/stub file(s) $TARGETS from $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="JAVAHFLAGS">
+<summary>
+General options passed to the C header and stub file generator
+for Java classes.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/latex.xml b/src/engine/SCons/Tool/latex.xml
new file mode 100644
index 0000000..6a415f7
--- /dev/null
+++ b/src/engine/SCons/Tool/latex.xml
@@ -0,0 +1,36 @@
+<!-- __COPYRIGHT__ -->
+<tool name="latex">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="LATEX">
+<summary>
+The LaTeX structured formatter and typesetter.
+</summary>
+</cvar>
+
+<cvar name="LATEXCOM">
+<summary>
+The command line used to call the LaTeX structured formatter and typesetter.
+</summary>
+</cvar>
+
+<cvar name="LATEXCOMSTR">
+<summary>
+The string displayed when calling
+the LaTeX structured formatter and typesetter.
+If this is not set, then &cv-LATEXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(LATEXCOMSTR = "Building $TARGET from LaTeX input $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="LATEXFLAGS">
+<summary>
+General options passed to the LaTeX structured formatter and typesetter.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/lex.py b/src/engine/SCons/Tool/lex.py
index 4a17fae..3331f6c 100644
--- a/src/engine/SCons/Tool/lex.py
+++ b/src/engine/SCons/Tool/lex.py
@@ -33,17 +33,19 @@ selection method.
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-import SCons.Defaults
+import SCons.Action
import SCons.Tool
import SCons.Util
+LexAction = SCons.Action.Action("$LEXCOM", "$LEXCOMSTR")
+
def generate(env):
"""Add Builders and construction variables for lex to an Environment."""
c_file, cxx_file = SCons.Tool.createCFileBuilders(env)
- c_file.add_action('.l', SCons.Defaults.LexAction)
- c_file.add_action('.lex', SCons.Defaults.LexAction)
- cxx_file.add_action('.ll', SCons.Defaults.LexAction)
+ c_file.add_action('.l', LexAction)
+ c_file.add_action('.lex', LexAction)
+ cxx_file.add_action('.ll', LexAction)
env['LEX'] = env.Detect('flex') or 'lex'
env['LEXFLAGS'] = SCons.Util.CLVar('')
diff --git a/src/engine/SCons/Tool/lex.xml b/src/engine/SCons/Tool/lex.xml
new file mode 100644
index 0000000..3fb62e1
--- /dev/null
+++ b/src/engine/SCons/Tool/lex.xml
@@ -0,0 +1,37 @@
+<!-- __COPYRIGHT__ -->
+<tool name="lex">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="LEX">
+<summary>
+The lexical analyzer generator.
+</summary>
+</cvar>
+
+<cvar name="LEXCOM">
+<summary>
+The command line used to call the lexical analyzer generator
+to generate a source file.
+</summary>
+</cvar>
+
+<cvar name="LEXCOMSTR">
+<summary>
+The string displayed when generating a source file
+using the lexical analyzer generator.
+If this is not set, then &cv-LEXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(LEXCOMSTR = "Lex'ing $TARGET from $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="LEXFLAGS">
+<summary>
+General options passed to the lexical analyzer generator.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/link.xml b/src/engine/SCons/Tool/link.xml
new file mode 100644
index 0000000..420a5b7
--- /dev/null
+++ b/src/engine/SCons/Tool/link.xml
@@ -0,0 +1,146 @@
+<!-- __COPYRIGHT__ -->
+<tool name="link">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="LDMODULE">
+<summary>
+The linker for building loadable modules.
+By default, this is the same as &cv-SHLINK;.
+</summary>
+</cvar>
+
+<cvar name="LDMODULECOM">
+<summary>
+The command line for building loadable modules.
+On Mac OS X, this uses the &cv-LDMODULE;,
+&cv-LDMODULEFLAGS; and &cv-FRAMEWORKSFLAGS; variables.
+On other systems, this is the same as &cv-SHLINK;.
+</summary>
+</cvar>
+
+<cvar name="LDMODULECOMSTR">
+<summary>
+The string displayed when building loadable modules.
+If this is not set, then &cv-LDMODULECOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="LDMODULEFLAGS">
+<summary>
+General user options passed to the linker for building loadable modules.
+</summary>
+</cvar>
+
+<cvar name="LDMODULEPREFIX">
+<summary>
+The prefix used for loadable module file names.
+On Mac OS X, this is null;
+on other systems, this is
+the same as &cv-SHLIBPREFIX;.
+</summary>
+</cvar>
+
+<cvar name="LDMODULESUFFIX">
+<summary>
+The suffix used for loadable module file names.
+On Mac OS X, this is null;
+on other systems, this is
+the same as $SHLIBSUFFIX.
+</summary>
+</cvar>
+
+<cvar name="LINK">
+<summary>
+The linker.
+</summary>
+</cvar>
+
+<cvar name="LINKCOM">
+<summary>
+The command line used to link object files into an executable.
+</summary>
+</cvar>
+
+<cvar name="LINKCOMSTR">
+<summary>
+The string displayed when object files
+are linked into an executable.
+If this is not set, then &cv-LINKCOM; (the command line) is displayed.
+
+<example>
+env = Environment(LINKCOMSTR = "Linking $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="LINKFLAGS">
+<summary>
+General user options passed to the linker.
+Note that this variable should
+<emphasis>not</emphasis>
+contain
+<option>-l</option>
+(or similar) options for linking with the libraries listed in &cv-LIBS;,
+nor
+<option>-L</option>
+(or similar) library search path options
+that scons generates automatically from &cv-LIBPATH;.
+See
+&cv-_LIBFLAGS;
+above,
+for the variable that expands to library-link options,
+and
+&cv-_LIBDIRFLAGS;
+above,
+for the variable that expands to library search path options.
+</summary>
+</cvar>
+
+<cvar name="SHLINK">
+<summary>
+The linker for programs that use shared libraries.
+</summary>
+</cvar>
+
+<cvar name="SHLINKCOM">
+<summary>
+The command line used to link programs using shared libaries.
+</summary>
+</cvar>
+
+<cvar name="SHLINKCOMSTR">
+<summary>
+The string displayed when programs using shared libraries are linked.
+If this is not set, then &cv-SHLINKCOM; (the command line) is displayed.
+
+<example>
+env = Environment(SHLINKCOMSTR = "Linking shared $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="SHLINKFLAGS">
+<summary>
+General user options passed to the linker for programs using shared libraries.
+Note that this variable should
+<emphasis>not</emphasis>
+contain
+<option>-l</option>
+(or similar) options for linking with the libraries listed in &cv-LIBS;,
+nor
+<option>-L</option>
+(or similar) include search path options
+that scons generates automatically from &cv-LIBPATH;.
+See
+&cv-_LIBFLAGS;
+above,
+for the variable that expands to library-link options,
+and
+&cv-_LIBDIRFLAGS;
+above,
+for the variable that expands to library search path options.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/linkloc.xml b/src/engine/SCons/Tool/linkloc.xml
new file mode 100644
index 0000000..12a9d50
--- /dev/null
+++ b/src/engine/SCons/Tool/linkloc.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="linkloc">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/m4.xml b/src/engine/SCons/Tool/m4.xml
new file mode 100644
index 0000000..1f91770
--- /dev/null
+++ b/src/engine/SCons/Tool/m4.xml
@@ -0,0 +1,48 @@
+<!-- __COPYRIGHT__ -->
+<tool name="m4">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="M4">
+<summary>
+Builds an output file from an M4 input file.
+This uses a default &cv-M4FLAGS; value of
+<option>-E</option>,
+which considers all warnings to be fatal
+and stops on the first warning
+when using the GNU version of m4.
+Example:
+
+<example>
+env.M4(target = 'foo.c', source = 'foo.c.m4')
+</example>
+</summary>
+</builder>
+
+<cvar name="M4">
+<summary>
+The M4 macro preprocessor.
+</summary>
+</cvar>
+
+<cvar name="M4COM">
+<summary>
+The command line used to pass files through the M4 macro preprocessor.
+</summary>
+</cvar>
+
+<cvar name="M4COMSTR">
+<summary>
+The string displayed when
+a file is passed through the M4 macro preprocessor.
+If this is not set, then &cv-M4COM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="M4FLAGS">
+<summary>
+General options passed to the M4 macro preprocessor.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/masm.xml b/src/engine/SCons/Tool/masm.xml
new file mode 100644
index 0000000..82c14cf
--- /dev/null
+++ b/src/engine/SCons/Tool/masm.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="masm">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/midl.xml b/src/engine/SCons/Tool/midl.xml
new file mode 100644
index 0000000..4d5c7e0
--- /dev/null
+++ b/src/engine/SCons/Tool/midl.xml
@@ -0,0 +1,29 @@
+<!-- __COPYRIGHT__ -->
+<tool name="midl">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="TypeLibrary">
+<summary>
+Builds a Windows type library (<filename>.tlb</filename>)
+file from an input IDL file (<filename>.idl</filename>).
+In addition, it will build the associated inteface stub and
+proxy source files,
+naming them according to the base name of the <filename>.idl</filename> file.
+For example,
+
+<example>
+env.TypeLibrary(source="foo.idl")
+</example>
+
+Will create <filename>foo.tlb</filename>,
+<filename>foo.h</filename>,
+<filename>foo_i.c</filename>,
+<filename>foo_p.c</filename>
+and
+<filename>foo_data.c</filename>
+files.
+</summary>
+</builder>
diff --git a/src/engine/SCons/Tool/mingw.xml b/src/engine/SCons/Tool/mingw.xml
new file mode 100644
index 0000000..273a861
--- /dev/null
+++ b/src/engine/SCons/Tool/mingw.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="mingw">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/mslib.xml b/src/engine/SCons/Tool/mslib.xml
new file mode 100644
index 0000000..7da4365
--- /dev/null
+++ b/src/engine/SCons/Tool/mslib.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="mslib">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/mslink.xml b/src/engine/SCons/Tool/mslink.xml
new file mode 100644
index 0000000..82249e7
--- /dev/null
+++ b/src/engine/SCons/Tool/mslink.xml
@@ -0,0 +1,105 @@
+<!-- __COPYRIGHT__ -->
+<tool name="mslink">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="no_import_lib">
+<summary>
+When set to non-zero,
+suppresses creation of a corresponding Win32 static import lib by the
+<literal>SharedLibrary</literal>
+builder when used with
+MinGW, Microsoft Visual Studio or Metrowerks.
+This also suppresses creation
+of an export (.exp) file
+when using Microsoft Visual Studio.
+</summary>
+</cvar>
+
+<cvar name="PDB">
+<summary>
+The Microsoft Visual C++ PDB file that will store debugging information for
+object files, shared libraries, and programs. This variable is ignored by
+tools other than Microsoft Visual C++.
+When this variable is
+defined SCons will add options to the compiler and linker command line to
+cause them to generate external debugging information, and will also set up the
+dependencies for the PDB file. Example:
+
+<example>
+env['PDB'] = 'hello.pdb'
+</example>
+</summary>
+</cvar>
+
+<cvar name="REGSVR">
+<summary>
+The program used on WIN32 systems
+to register a newly-built DLL library
+whenever the &b-SharedLibrary; builder
+is passed a keyword argument of <literal>register=1</literal>.
+</summary>
+</cvar>
+
+<cvar name="REGSVRCOM">
+<summary>
+The command line used on WIN32 systems
+to register a newly-built DLL library
+whenever the &b-SharedLibrary; builder
+is passed a keyword argument of <literal>register=1</literal>.
+</summary>
+</cvar>
+
+<cvar name="REGSVRCOMSTR">
+<summary>
+The string displayed when registering a newly-built DLL file.
+If this is not set, then &cv-REGSVRCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="REGSVRFLAGS">
+<summary>
+Flags passed to the DLL registration program
+on WIN32 systems when a newly-built DLL library is registered.
+By default,
+this includes the <option>/s</option>
+that prevents dialog boxes from popping up
+and requiring user attention.
+</summary>
+</cvar>
+
+<cvar name="WIN32_INSERT_DEF">
+<summary>
+When this is set to true,
+a library build of a WIN32 shared library (.dll file)
+will also build a corresponding .def file at the same time,
+if a .def file is not already listed as a build target.
+The default is 0 (do not build a .def file).
+</summary>
+</cvar>
+
+<cvar name="WIN32DEFPREFIX">
+<summary>
+The prefix used for WIN32 .def file names.
+</summary>
+</cvar>
+
+<cvar name="WIN32DEFSUFFIX">
+<summary>
+The suffix used for WIN32 .def file names.
+</summary>
+</cvar>
+
+<cvar name="WIN32EXPPREFIX">
+<summary>
+XXX The prefix used for WIN32 .def file names.
+</summary>
+</cvar>
+
+<cvar name="WIN32EXPSUFFIX">
+<summary>
+XXX The suffix used for WIN32 .def file names.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/msvc.xml b/src/engine/SCons/Tool/msvc.xml
new file mode 100644
index 0000000..426014b
--- /dev/null
+++ b/src/engine/SCons/Tool/msvc.xml
@@ -0,0 +1,112 @@
+<!-- __COPYRIGHT__ -->
+<tool name="msvc">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="PCH">
+<summary>
+Builds a Microsoft Visual C++ precompiled header.
+Calling this builder method
+returns a list of two targets: the PCH as the first element, and the object
+file as the second element. Normally the object file is ignored.
+This builder method is only
+provided when Microsoft Visual C++ is being used as the compiler.
+The PCH builder method is generally used in
+conjuction with the PCH construction variable to force object files to use
+the precompiled header:
+
+<example>
+env['PCH'] = env.PCH('StdAfx.cpp')[0]
+</example>
+</summary>
+</builder>
+
+<builder name="RES">
+<summary>
+Builds a Microsoft Visual C++ resource file.
+This builder method is only provided
+when Microsoft Visual C++ or MinGW is being used as the compiler. The
+<filename>.res</filename>
+(or
+<filename>.o</filename>
+for MinGW) suffix is added to the target name if no other suffix is given.
+The source
+file is scanned for implicit dependencies as though it were a C file. Example:
+
+<example>
+env.RES('resource.rc')
+</example>
+</summary>
+</builder>
+
+<cvar name="PCH">
+<summary>
+The Microsoft Visual C++ precompiled header that will be used when compiling
+object files. This variable is ignored by tools other than Microsoft Visual C++.
+When this variable is
+defined SCons will add options to the compiler command line to
+cause it to use the precompiled header, and will also set up the
+dependencies for the PCH file. Example:
+
+<example>
+env['PCH'] = 'StdAfx.pch'
+</example>
+</summary>
+</cvar>
+
+<cvar name="PCHCOM">
+<summary>
+The command line used by the
+&b-PCH;
+builder to generated a precompiled header.
+</summary>
+</cvar>
+
+<cvar name="PCHCOMSTR">
+<summary>
+The string displayed when generating a precompiled header.
+If this is not set, then &cv-PCHCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="PCHSTOP">
+<summary>
+This variable specifies how much of a source file is precompiled. This
+variable is ignored by tools other than Microsoft Visual C++, or when
+the PCH variable is not being used. When this variable is define it
+must be a string that is the name of the header that
+is included at the end of the precompiled portion of the source files, or
+the empty string if the "#pragma hrdstop" construct is being used:
+
+<example>
+env['PCHSTOP'] = 'StdAfx.h'
+</example>
+</summary>
+</cvar>
+
+<cvar name="RC">
+<summary>
+The resource compiler used by the RES builder.
+</summary>
+</cvar>
+
+<cvar name="RCCOM">
+<summary>
+The command line used by the RES builder.
+</summary>
+</cvar>
+
+<cvar name="RCCOMSTR">
+<summary>
+The string displayed when invoking the resource compiler.
+If this is not set, then &cv-RCCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="RCFLAGS">
+<summary>
+The flags passed to the resource compiler by the RES builder.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/msvs.xml b/src/engine/SCons/Tool/msvs.xml
new file mode 100644
index 0000000..4103ce1
--- /dev/null
+++ b/src/engine/SCons/Tool/msvs.xml
@@ -0,0 +1,266 @@
+<!-- __COPYRIGHT__ -->
+<tool name="msvs">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name ="MSVSProject">
+<summary>
+Builds Microsoft Visual Studio project files.
+This builds a Visual Studio project file, based on the version of
+Visual Studio that is configured (either the latest installed version,
+or the version set by
+&cv-MSVS_VERSION;
+in the Environment constructor).
+For VS 6, it will generate
+<filename>.dsp</filename>
+and
+<filename>.dsw</filename>
+files, for VS 7, it will
+generate
+<filename>.vcproj</filename>
+and
+<filename>.sln</filename>
+files.
+
+It takes several lists of filenames to be placed into the project
+file, currently these are limited to
+<literal>srcs</literal>,
+<literal>incs</literal>,
+<literal>localincs</literal>,
+<literal>resources</literal>,
+and
+<literal>misc</literal>.
+These are pretty self explanatory, but it
+should be noted that the <literal>srcs</literal> list
+is NOT added to the &cv-SOURCES;
+construction variable. This is because it represents a list of files
+to be added to the project file, not the source used to build the
+project file (in this case, the "source" is the &SConscript; file used
+to call MSVSProject).
+
+In addition to these values (which are all optional, although not
+specifying any of them results in an empty project file), the
+following values must be specified:
+
+target: The name of the target
+<filename>.dsp</filename>
+or
+<filename>.vcproj</filename>
+file. The correct
+suffix for the version of Visual Studio must be used, but the
+&cv-MSVSPROJECTSUFFIX;
+construction value
+will be defined to the correct value (see example below).
+
+variant: The name of this particular variant. These are typically
+things like "Debug" or "Release", but really can be anything you want.
+Multiple calls to MSVSProject with different variants are allowed: all
+variants will be added to the project file with their appropriate
+build targets and sources.
+
+buildtarget: A list of SCons.Node.FS objects which is returned from
+the command which builds the target. This is used to tell SCons what
+to build when the 'build' button is pressed inside of the IDE.
+
+Example usage:
+
+<example>
+barsrcs = ['bar.cpp'],
+barincs = ['bar.h'],
+barlocalincs = ['StdAfx.h']
+barresources = ['bar.rc','resource.h']
+barmisc = ['bar_readme.txt']
+
+dll = local.SharedLibrary(target = 'bar.dll',
+ source = barsrcs)
+
+local.MSVSProject(target = 'Bar' + env['MSVSPROJECTSUFFIX'],
+ srcs = barsrcs,
+ incs = barincs,
+ localincs = barlocalincs,
+ resources = barresources,
+ misc = barmisc,
+ buildtarget = dll,
+ variant = 'Release')
+</example>
+</summary>
+</builder>
+
+<cvar name="MSVS">
+<summary>
+When the Microsoft Visual Studio tools are initialized, they set up
+this dictionary with the following keys:
+
+<envar>VERSION</envar>
+the version of MSVS being used (can be set via
+MSVS_VERSION)
+
+<envar>VERSIONS</envar>
+the available versions of MSVS installed
+
+<envar>VCINSTALLDIR</envar>
+installed directory of Visual C++
+
+<envar>VSINSTALLDIR</envar>
+installed directory of Visual Studio
+
+<envar>FRAMEWORKDIR</envar>
+installed directory of the .NET framework
+
+<envar>FRAMEWORKVERSIONS</envar>
+list of installed versions of the .NET framework, sorted latest to oldest.
+
+<envar>FRAMEWORKVERSION</envar>
+latest installed version of the .NET framework
+
+<envar>FRAMEWORKSDKDIR</envar>
+installed location of the .NET SDK.
+
+<envar>PLATFORMSDKDIR</envar>
+installed location of the Platform SDK.
+
+<envar>PLATFORMSDK_MODULES</envar>
+dictionary of installed Platform SDK modules,
+where the dictionary keys are keywords for the various modules, and
+the values are 2-tuples where the first is the release date, and the
+second is the version number.
+
+If a value isn't set, it wasn't available in the registry.
+</summary>
+</cvar>
+
+<cvar name="MSVS_IGNORE_IDE_PATHS">
+<summary>
+Tells the MS Visual Studio tools to use minimal INCLUDE, LIB, and PATH settings,
+instead of the settings from the IDE.
+
+For Visual Studio, SCons will (by default) automatically determine
+where MSVS is installed, and use the LIB, INCLUDE, and PATH variables
+set by the IDE. You can override this behavior by setting these
+variables after Environment initialization, or by setting
+<envar>MSVS_IGNORE_IDE_PATHS = 1</envar>
+in the Environment initialization.
+Specifying this will not leave these unset, but will set them to a
+minimal set of paths needed to run the tools successfully.
+
+For VS6, the mininimal set is:
+<example>
+ INCLUDE:'VSDir\VC98\ATL\include;VSDir\VC98\MFC\include;VSDir\VC98\include'
+ LIB:'VSDir\VC98\MFC\lib;VSDir\VC98\lib'
+ PATH:'VSDir\Common\MSDev98\bin;VSDir\VC98\bin'
+</example>
+For VS7, it is:
+<example>
+ INCLUDE:'VSDir\Vc7\atlmfc\include;VSDir\Vc7\include'
+ LIB:'VSDir\Vc7\atlmfc\lib;VSDir\Vc7\lib'
+ PATH:'VSDir\Common7\Tools\bin;VSDir\Common7\Tools;VSDir\Vc7\bin'
+</example>
+
+Where 'VSDir' is the installed location of Visual Studio.
+</summary>
+</cvar>
+
+<cvar name="MSVS_USE_MFC_DIRS">
+<summary>
+Tells the MS Visual Studio tool(s) to use
+the MFC directories in its default paths
+for compiling and linking.
+Under MSVS version 6,
+setting
+<envar>MSVS_USE_MFC_DIRS</envar>
+to a non-zero value
+adds the
+<filename>ATL\include</filename>
+and
+<filename>MFC\include</filename>
+directories to
+the default
+<envar>INCLUDE</envar>
+external environment variable,
+and adds the
+<envar>MFC\lib</envar>
+directory to
+the default
+<envar>LIB</envar>
+external environment variable.
+Under MSVS version 7,
+setting
+<envar>MSVS_USE_MFC_DIRS</envar>
+to a non-zero value
+adds the
+<envar>atlmfc\include</envar>
+directory to the default
+<envar>INCLUDE</envar>
+external environment variable,
+and adds the
+<envar>atlmfc\lib</envar>
+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
+<envar>INCLUDE</envar>
+or
+<envar>LIB</envar>
+environment variables are set explictly.
+</summary>
+</cvar>
+
+<cvar name="MSVS_VERSION">
+<summary>
+Sets the preferred version of MSVS to use.
+
+SCons will (by default) select the latest version of MSVS
+installed on your machine. So, if you have version 6 and version 7
+(MSVS .NET) installed, it will prefer version 7. You can override this by
+specifying the
+<envar>MSVS_VERSION</envar>
+variable in the Environment initialization, setting it to the
+appropriate version ('6.0' or '7.0', for example).
+If the given version isn't installed, tool initialization will fail.
+</summary>
+</cvar>
+
+<cvar name="MSVSPROJECTCOM">
+<summary>
+The action used to generate Microsoft Visual Studio
+project and solution files.
+</summary>
+</cvar>
+
+<cvar name="MSVSPROJECTSUFFIX">
+<summary>
+The suffix used for Microsoft Visual Studio project (DSP) files.
+The default value is
+<filename>.vcproj</filename>
+when using Visual Studio version 7.x (.NET),
+and
+<filename>.dsp</filename>
+when using earlier versions of Visual Studio.
+</summary>
+</cvar>
+
+<cvar name="MSVSSOLUTIONSUFFIX">
+<summary>
+The suffix used for Microsoft Visual Studio solution (DSW) files.
+The default value is
+<filename>.sln</filename>
+when using Visual Studio version 7.x (.NET),
+and
+<filename>.dsw</filename>
+when using earlier versions of Visual Studio.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/mwcc.xml b/src/engine/SCons/Tool/mwcc.xml
new file mode 100644
index 0000000..83eaab3
--- /dev/null
+++ b/src/engine/SCons/Tool/mwcc.xml
@@ -0,0 +1,20 @@
+<!-- __COPYRIGHT__ -->
+<tool name="mwcc">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="MWCW_VERSION">
+<summary>
+The version number of the MetroWerks CodeWarrior C compiler
+to be used.
+</summary>
+</cvar>
+
+<cvar name="MWCW_VERSIONS">
+<summary>
+A list of installed versions of the MetroWerks CodeWarrior C compiler
+on this system.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/mwld.xml b/src/engine/SCons/Tool/mwld.xml
new file mode 100644
index 0000000..ade9848
--- /dev/null
+++ b/src/engine/SCons/Tool/mwld.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="mwld">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/nasm.xml b/src/engine/SCons/Tool/nasm.xml
new file mode 100644
index 0000000..328386e
--- /dev/null
+++ b/src/engine/SCons/Tool/nasm.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="nasm">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/pdflatex.xml b/src/engine/SCons/Tool/pdflatex.xml
new file mode 100644
index 0000000..7878079
--- /dev/null
+++ b/src/engine/SCons/Tool/pdflatex.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="pdflatex">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/pdftex.xml b/src/engine/SCons/Tool/pdftex.xml
new file mode 100644
index 0000000..701a280
--- /dev/null
+++ b/src/engine/SCons/Tool/pdftex.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="pdftex">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/qt.xml b/src/engine/SCons/Tool/qt.xml
new file mode 100644
index 0000000..b5335b6
--- /dev/null
+++ b/src/engine/SCons/Tool/qt.xml
@@ -0,0 +1,274 @@
+<!-- __COPYRIGHT__ -->
+<tool name="qt">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="Moc">
+<summary>
+Builds an output file from a moc input file. Moc input files are either
+header files or cxx files. This builder is only available after using the
+tool 'qt'. See the &cv-QTDIR; variable for more information.
+Example:
+
+<example>
+env.Moc('foo.h') # generates moc_foo.cc
+env.Moc('foo.cpp') # generates foo.moc
+</example>
+</summary>
+</builder>
+
+<builder name="Uic">
+<summary>
+Builds a header file, an implementation file and a moc file from an ui file.
+and returns the corresponding nodes in the above order.
+This builder is only available after using the tool 'qt'. Note: you can
+specify <filename>.ui</filename> files directly as source
+files to the &b-Program;,
+&b-Library; and &b-SharedLibrary; builders
+without using this builder. Using this builder lets you override the standard
+naming conventions (be careful: prefixes are always prepended to names of
+built files; if you don't want prefixes, you may set them to ``).
+See the &cv-QTDIR; variable for more information.
+Example:
+
+<example>
+env.Uic('foo.ui') # -> ['foo.h', 'uic_foo.cc', 'moc_foo.cc']
+env.Uic(target = Split('include/foo.h gen/uicfoo.cc gen/mocfoo.cc'),
+ source = 'foo.ui') # -> ['include/foo.h', 'gen/uicfoo.cc', 'gen/mocfoo.cc']
+</example>
+</summary>
+</builder>
+
+<cvar name="QTDIR">
+<summary>
+The qt tool tries to take this from os.environ.
+It also initializes all QT_*
+construction variables listed below.
+(Note that all paths are constructed
+with python's os.path.join() method,
+but are listed here with the '/' separator
+for easier reading.)
+In addition, the construction environment
+variables &cv-CPPPATH;, &cv-LIBPATH; and &cv-LIBS; may be modified
+and the variables
+PROGEMITTER, SHLIBEMITTER and LIBEMITTER
+are modified. Because the build-performance is affected when using this tool,
+you have to explicitly specify it at Environment creation:
+
+<example>
+Environment(tools=['default','qt'])
+</example>
+
+The qt tool supports the following operations:
+
+.B Automatic moc file generation from header files.
+You do not have to specify moc files explicitly, the tool does it for you.
+However, there are a few preconditions to do so: Your header file must have
+the same filebase as your implementation file and must stay in the same
+directory. It must have one of the suffixes .h, .hpp, .H, .hxx, .hh. You
+can turn off automatic moc file generation by setting QT_AUTOSCAN to 0.
+See also the corresponding builder method
+.B Moc()
+
+.B Automatic moc file generation from cxx files.
+As stated in the qt documentation, include the moc file at the end of
+the cxx file. Note that you have to include the file, which is generated
+by the transformation ${QT_MOCCXXPREFIX}basename${QT_MOCCXXSUFFIX}, by default
+basename.moc. A warning is generated after building the moc file, if you
+do not include the correct file. If you are using BuildDir, you may
+need to specify duplicate=1. You can turn off automatic moc file generation
+by setting QT_AUTOSCAN to 0. See also the corresponding builder method
+.B Moc()
+
+.B Automatic handling of .ui files.
+The implementation files generated from .ui files are handled much the same
+as yacc or lex files. Each .ui file given as a source of Program, Library or
+SharedLibrary will generate three files, the declaration file, the
+implementation file and a moc file. Because there are also generated headers,
+you may need to specify duplicate=1 in calls to BuildDir. See also the corresponding builder method
+.B Uic()
+</summary>
+</cvar>
+
+<cvar name="QT_AUTOSCAN">
+<summary>
+Turn off scanning for mocable files. Use the Moc Builder to explicitely
+specify files to run moc on.
+</summary>
+</cvar>
+
+<cvar name="QT_BINPATH">
+<summary>
+The path where the qt binaries are installed.
+The default value is '&cv-QTDIR;/bin'.
+</summary>
+</cvar>
+
+<cvar name="QT_CPPPATH">
+<summary>
+The path where the qt header files are installed.
+The default value is '&cv-QTDIR;/include'.
+Note: If you set this variable to None, the tool won't change the &cv-CPPPATH;
+construction variable.
+</summary>
+</cvar>
+
+<cvar name="QT_DEBUG">
+<summary>
+Prints lots of debugging information while scanning for moc files.
+</summary>
+</cvar>
+
+<cvar name="QT_LIB">
+<summary>
+Default value is 'qt'. You may want to set this to 'qt-mt'. Note: If you set
+this variable to None, the tool won't change the &cv-LIBS; variable.
+</summary>
+</cvar>
+
+<cvar name="QT_LIBPATH">
+<summary>
+The path where the qt libraries are installed.
+The default value is '&cv-QTDIR;/lib'.
+Note: If you set this variable to None, the tool won't change the &cv-LIBPATH;
+construction variable.
+</summary>
+</cvar>
+
+<cvar name="QT_MOC">
+<summary>
+Default value is '&cv-QT_BINPATH;/bin/moc'.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCCXXPREFIX">
+<summary>
+Default value is ''. Prefix for moc output files, when source is a cxx file.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCCXXSUFFIX">
+<summary>
+Default value is '.moc'. Suffix for moc output files, when source is a cxx
+file.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCFROMCPPFLAGS">
+<summary>
+Default value is '-i'. These flags are passed to moc, when moccing a
+cpp file.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCFROMCXXCOM">
+<summary>
+Command to generate a moc file from a cpp file.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCFROMCXXCOMSTR">
+<summary>
+The string displayed when generating a moc file from a cpp file.
+If this is not set, then &cv-QT_MOCFROMCXXCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCFROMHCOM">
+<summary>
+Command to generate a moc file from a header.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCFROMHCOMSTR">
+<summary>
+The string displayed when generating a moc file from a cpp file.
+If this is not set, then &cv-QT_MOCFROMHCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCFROMHFLAGS">
+<summary>
+Default value is ''. These flags are passed to moc, when moccing a header
+file.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCHPREFIX">
+<summary>
+Default value is 'moc_'. Prefix for moc output files, when source is a header.
+</summary>
+</cvar>
+
+<cvar name="QT_MOCHSUFFIX">
+<summary>
+Default value is '&cv-CXXFILESUFFIX;'. Suffix for moc output files, when source is
+a header.
+</summary>
+</cvar>
+
+<cvar name="QT_UIC">
+<summary>
+Default value is '&cv-QT_BINPATH;/uic'.
+</summary>
+</cvar>
+
+<cvar name="QT_UICCOM">
+<summary>
+Command to generate header files from .ui files.
+</summary>
+</cvar>
+
+<cvar name="QT_UICCOMSTR">
+<summary>
+The string displayed when generating header files from .ui files.
+If this is not set, then &cv-QT_UICCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="QT_UICDECLFLAGS">
+<summary>
+Default value is ''. These flags are passed to uic, when creating a a h
+file from a .ui file.
+</summary>
+</cvar>
+
+<cvar name="QT_UICDECLPREFIX">
+<summary>
+Default value is ''. Prefix for uic generated header files.
+</summary>
+</cvar>
+
+<cvar name="QT_UICDECLSUFFIX">
+<summary>
+Default value is '.h'. Suffix for uic generated header files.
+</summary>
+</cvar>
+
+<cvar name="QT_UICIMPLFLAGS">
+<summary>
+Default value is ''. These flags are passed to uic, when creating a cxx
+file from a .ui file.
+</summary>
+</cvar>
+
+<cvar name="QT_UICIMPLPREFIX">
+<summary>
+Default value is 'uic_'. Prefix for uic generated implementation files.
+</summary>
+</cvar>
+
+<cvar name="QT_UICIMPLSUFFIX">
+<summary>
+Default value is '&cv-CXXFILESUFFIX;'. Suffix for uic generated implementation
+files.
+</summary>
+</cvar>
+
+<cvar name="QT_UISUFFIX">
+<summary>
+Default value is '.ui'. Suffix of designer input files.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/rmic.xml b/src/engine/SCons/Tool/rmic.xml
new file mode 100644
index 0000000..390aaaf
--- /dev/null
+++ b/src/engine/SCons/Tool/rmic.xml
@@ -0,0 +1,79 @@
+<!-- __COPYRIGHT__ -->
+<tool name="rmic">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="RMIC">
+<summary>
+Builds stub and skeleton class files
+for remote objects
+from Java <filename>.class</filename> files.
+The target is a directory
+relative to which the stub
+and skeleton class files will be written.
+The source can be the names of <filename>.class</filename> files,
+or the objects return from the
+&b-Java;
+builder method.
+
+If the construction variable
+&cv-JAVACLASSDIR;
+is set, either in the environment
+or in the call to the
+&b-RMIC;
+builder method itself,
+then the value of the variable
+will be stripped from the
+beginning of any <filename>.class </filename>
+file names.
+
+<example>
+classes = env.Java(target = 'classdir', source = 'src')
+env.RMIC(target = 'outdir1', source = classes)
+
+env.RMIC(target = 'outdir2',
+ source = ['package/foo.class', 'package/bar.class'])
+
+env.RMIC(target = 'outdir3',
+ source = ['classes/foo.class', 'classes/bar.class'],
+ JAVACLASSDIR = 'classes')
+</example>
+</summary>
+</builder>
+
+<cvar name="RMIC">
+<summary>
+The Java RMI stub compiler.
+</summary>
+</cvar>
+
+<cvar name="RMICCOM">
+<summary>
+The command line used to compile stub
+and skeleton class files
+from Java classes that contain RMI implementations.
+Any options specified in the &cv-RMICFLAGS; construction variable
+are included on this command line.
+</summary>
+</cvar>
+
+<cvar name="RMICCOMSTR">
+<summary>
+The string displayed when compiling
+stub and skeleton class files
+from Java classes that contain RMI implementations.
+If this is not set, then &cv-RMICCOM; (the command line) is displayed.
+
+<example>
+env = Environment(RMICCOMSTR = "Generating stub/skeleton class files $TARGETS from $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="RMICFLAGS">
+<summary>
+General options passed to the Java RMI stub compiler.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/rpcgen.xml b/src/engine/SCons/Tool/rpcgen.xml
new file mode 100644
index 0000000..9fdf13e
--- /dev/null
+++ b/src/engine/SCons/Tool/rpcgen.xml
@@ -0,0 +1,122 @@
+<!-- __COPYRIGHT__ -->
+<tool name="rpcgen">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="RPCGenClient">
+<summary>
+Generates an RPC client stub (<filename>_clnt.c</filename>) file
+from a specified RPC (<filename>.x</filename>) source file.
+Because rpcgen only builds output files
+in the local directory,
+the command will be executed
+in the source file's directory by default.
+
+<example>
+# Builds src/rpcif_clnt.c
+env.RPCGenClient('src/rpcif.x')
+</example>
+</summary>
+</builder>
+
+<builder name="RPCGenHeader">
+<summary>
+Generates an RPC header (<filename>.h</filename>) file
+from a specified RPC (<filename>.x</filename>) source file.
+Because rpcgen only builds output files
+in the local directory,
+the command will be executed
+in the source file's directory by default.
+
+<example>
+# Builds src/rpcif.h
+env.RPCGenHeader('src/rpcif.x')
+</example>
+</summary>
+</builder>
+
+<builder name="RPCGenService">
+<summary>
+Generates an RPC server-skeleton (<filename>_svc.c</filename>) file
+from a specified RPC (<filename>.x</filename>) source file.
+Because rpcgen only builds output files
+in the local directory,
+the command will be executed
+in the source file's directory by default.
+
+<example>
+# Builds src/rpcif_svc.c
+env.RPCGenClient('src/rpcif.x')
+</example>
+</summary>
+</builder>
+
+<builder name="RPCGenXDR">
+<summary>
+Generates an RPC XDR routine (<filename>_xdr.c</filename>) file
+from a specified RPC (<filename>.x</filename>) source file.
+Because rpcgen only builds output files
+in the local directory,
+the command will be executed
+in the source file's directory by default.
+
+<example>
+# Builds src/rpcif_xdr.c
+env.RPCGenClient('src/rpcif.x')
+</example>
+</summary>
+</builder>
+
+<cvar name="RPCGEN">
+<summary>
+The RPC protocol compiler.
+</summary>
+</cvar>
+
+<cvar name="RPCGENCLIENTFLAGS">
+<summary>
+Options passed to the RPC protocol compiler
+when generating client side stubs.
+These are in addition to any flags specified in the
+&cv-RPCGENFLAGS;
+construction variable.
+</summary>
+</cvar>
+
+<cvar name="RPCGENFLAGS">
+<summary>
+General options passed to the RPC protocol compiler.
+</summary>
+</cvar>
+
+<cvar name="RPCGENHEADERFLAGS">
+<summary>
+Options passed to the RPC protocol compiler
+when generating a header file.
+These are in addition to any flags specified in the
+&cv-RPCGENFLAGS;
+construction variable.
+</summary>
+</cvar>
+
+<cvar name="RPCGENSERVICEFLAGS">
+<summary>
+Options passed to the RPC protocol compiler
+when generating server side stubs.
+These are in addition to any flags specified in the
+&cv-RPCGENFLAGS;
+construction variable.
+</summary>
+</cvar>
+
+<cvar name="RPCGENXDRFLAGS">
+<summary>
+Options passed to the RPC protocol compiler
+when generating XDR routines.
+These are in addition to any flags specified in the
+&cv-RPCGENFLAGS;
+construction variable.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/sgiar.xml b/src/engine/SCons/Tool/sgiar.xml
new file mode 100644
index 0000000..cd1d414
--- /dev/null
+++ b/src/engine/SCons/Tool/sgiar.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="sgiar">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/sgic++.xml b/src/engine/SCons/Tool/sgic++.xml
new file mode 100644
index 0000000..318ebbf
--- /dev/null
+++ b/src/engine/SCons/Tool/sgic++.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="sgic++">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/sgicc.xml b/src/engine/SCons/Tool/sgicc.xml
new file mode 100644
index 0000000..bd752ec
--- /dev/null
+++ b/src/engine/SCons/Tool/sgicc.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="sgicc">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/sgilink.xml b/src/engine/SCons/Tool/sgilink.xml
new file mode 100644
index 0000000..64eecb8
--- /dev/null
+++ b/src/engine/SCons/Tool/sgilink.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="sgilink">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/sunar.xml b/src/engine/SCons/Tool/sunar.xml
new file mode 100644
index 0000000..b94443c
--- /dev/null
+++ b/src/engine/SCons/Tool/sunar.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="sunar">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/sunc++.xml b/src/engine/SCons/Tool/sunc++.xml
new file mode 100644
index 0000000..fcd6b0a
--- /dev/null
+++ b/src/engine/SCons/Tool/sunc++.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="sunc++">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/suncc.xml b/src/engine/SCons/Tool/suncc.xml
new file mode 100644
index 0000000..ab86294
--- /dev/null
+++ b/src/engine/SCons/Tool/suncc.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="suncc">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/sunlink.xml b/src/engine/SCons/Tool/sunlink.xml
new file mode 100644
index 0000000..127651e
--- /dev/null
+++ b/src/engine/SCons/Tool/sunlink.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="sunlink">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/swig.xml b/src/engine/SCons/Tool/swig.xml
new file mode 100644
index 0000000..5c08412
--- /dev/null
+++ b/src/engine/SCons/Tool/swig.xml
@@ -0,0 +1,80 @@
+<!-- __COPYRIGHT__ -->
+<tool name="swig">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="SWIG">
+<summary>
+The scripting language wrapper and interface generator.
+</summary>
+</cvar>
+
+<cvar name="SWIGCFILESUFFIX">
+<summary>
+The suffix that will be used for intermediate C
+source files generated by
+the scripting language wrapper and interface generator.
+The default value is
+<filename>_wrap</filename>&cv-CFILESUFFIX;.
+By default, this value is used whenever the
+<option>-c++</option>
+option is
+<emphasis>not</emphasis>
+specified as part of the
+&cv-SWIGFLAGS;
+construction variable.
+</summary>
+</cvar>
+
+<cvar name="SWIGCOM">
+<summary>
+The command line used to call
+the scripting language wrapper and interface generator.
+</summary>
+</cvar>
+
+<cvar name="SWIGCOMSTR">
+<summary>
+The string displayed when calling
+the scripting language wrapper and interface generator.
+If this is not set, then &cv-SWIGCOM; (the command line) is displayed.
+</summary>
+</cvar>
+
+<cvar name="SWIGCXXFILESUFFIX">
+<summary>
+The suffix that will be used for intermediate C++
+source files generated by
+the scripting language wrapper and interface generator.
+The default value is
+<filename>_wrap</filename>&cv-CFILESUFFIX;.
+By default, this value is used whenever the
+<filename>-c++</filename>
+option is specified as part of the
+&cv-SWIGFLAGS;
+construction variable.
+</summary>
+</cvar>
+
+<cvar name="SWIGFLAGS">
+<summary>
+General options passed to
+the scripting language wrapper and interface generator.
+This is where you should set
+<option>-python</option>,
+<option>-perl5</option>,
+<option>-tcl</option>,
+or whatever other options you want to specify to SWIG.
+If you set the
+<option>-c++</option>
+option in this variable,
+&scons;
+will, by default,
+generate a C++ intermediate source file
+with the extension that is specified as the
+&cv-CXXFILESUFFIX;
+variable.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/tar.xml b/src/engine/SCons/Tool/tar.xml
new file mode 100644
index 0000000..c00910a
--- /dev/null
+++ b/src/engine/SCons/Tool/tar.xml
@@ -0,0 +1,75 @@
+<!-- __COPYRIGHT__ -->
+<tool name="tar">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="Tar">
+<summary>
+Builds a tar archive of the specified files
+and/or directories.
+Unlike most builder methods,
+the
+&b-Tar;
+builder method may be called multiple times
+for a given target;
+each additional call
+adds to the list of entries
+that will be built into the archive.
+
+<example>
+env.Tar('src.tar', 'src')
+
+# Create the stuff.tar file.
+env.Tar('stuff', ['subdir1', 'subdir2'])
+# Also add "another" to the stuff.tar file.
+env.Tar('stuff', 'another')
+
+# Set TARFLAGS to create a gzip-filtered archive.
+env = Environment(TARFLAGS = '-c -z')
+env.Tar('foo.tar.gz', 'foo')
+
+# Also set the suffix to .tgz.
+env = Environment(TARFLAGS = '-c -z',
+ TARSUFFIX = '.tgz')
+env.Tar('foo')
+</example>
+</summary>
+</builder>
+
+<cvar name="TAR">
+<summary>
+The tar archiver.
+</summary>
+</cvar>
+
+<cvar name="TARCOM">
+<summary>
+The command line used to call the tar archiver.
+</summary>
+</cvar>
+
+<cvar name="TARCOMSTR">
+<summary>
+The string displayed when archiving files
+using the tar archiver.
+If this is not set, then &cv-TARCOM; (the command line) is displayed.
+
+<example>
+env = Environment(TARCOMSTR = "Archiving $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="TARFLAGS">
+<summary>
+General options passed to the tar archiver.
+</summary>
+</cvar>
+
+<cvar name="TARSUFFIX">
+<summary>
+The suffix used for tar file names.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/tex.xml b/src/engine/SCons/Tool/tex.xml
new file mode 100644
index 0000000..4f69041
--- /dev/null
+++ b/src/engine/SCons/Tool/tex.xml
@@ -0,0 +1,70 @@
+<!-- __COPYRIGHT__ -->
+<tool name="tex">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="BIBTEX">
+<summary>
+The bibliography generator for the TeX formatter and typesetter and the
+LaTeX structured formatter and typesetter.
+</summary>
+</cvar>
+
+<cvar name="BIBTEXCOM">
+<summary>
+The command line used to call the bibliography generator for the
+TeX formatter and typesetter and the LaTeX structured formatter and
+typesetter.
+</summary>
+</cvar>
+
+<cvar name="BIBTEXCOMSTR">
+<summary>
+The string displayed when generating a bibliography
+for TeX or LaTeX.
+If this is not set, then &cv-BIBTEXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(BIBTEXCOMSTR = "Generating bibliography $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="BIBTEXFLAGS">
+<summary>
+General options passed to the bibliography generator for the TeX formatter
+and typesetter and the LaTeX structured formatter and typesetter.
+</summary>
+</cvar>
+
+<cvar name="TEX">
+<summary>
+The TeX formatter and typesetter.
+</summary>
+</cvar>
+
+<cvar name="TEXCOM">
+<summary>
+The command line used to call the TeX formatter and typesetter.
+</summary>
+</cvar>
+
+<cvar name="TEXCOMSTR">
+<summary>
+The string displayed when calling
+the TeX formatter and typesetter.
+If this is not set, then &cv-TEXCOM; (the command line) is displayed.
+
+<example>
+env = Environment(TEXCOMSTR = "Building $TARGET from TeX input $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="TEXFLAGS">
+<summary>
+General options passed to the TeX formatter and typesetter.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/tlib.xml b/src/engine/SCons/Tool/tlib.xml
new file mode 100644
index 0000000..0351568
--- /dev/null
+++ b/src/engine/SCons/Tool/tlib.xml
@@ -0,0 +1,6 @@
+<!-- __COPYRIGHT__ -->
+<tool name="tlib">
+<summary>
+XXX
+</summary>
+</tool>
diff --git a/src/engine/SCons/Tool/yacc.py b/src/engine/SCons/Tool/yacc.py
index 2c93b7c..da88aa2 100644
--- a/src/engine/SCons/Tool/yacc.py
+++ b/src/engine/SCons/Tool/yacc.py
@@ -39,6 +39,8 @@ import SCons.Defaults
import SCons.Tool
import SCons.Util
+YaccAction = SCons.Action.Action("$YACCCOM", "$YACCCOMSTR")
+
def _yaccEmitter(target, source, env, ysuf, hsuf):
# If -d is specified on the command line, yacc will emit a .h
# or .hpp file as well as a .c or .cpp file, depending on whether
@@ -60,9 +62,9 @@ def generate(env):
"""Add Builders and construction variables for yacc to an Environment."""
c_file, cxx_file = SCons.Tool.createCFileBuilders(env)
- c_file.add_action('.y', SCons.Defaults.YaccAction)
- c_file.add_action('.yacc', SCons.Defaults.YaccAction)
- cxx_file.add_action('.yy', SCons.Defaults.YaccAction)
+ c_file.add_action('.y', YaccAction)
+ c_file.add_action('.yacc', YaccAction)
+ cxx_file.add_action('.yy', YaccAction)
c_file.add_emitter('.y', yEmitter)
c_file.add_emitter('.yacc', yEmitter)
cxx_file.add_emitter('.yy', yyEmitter)
diff --git a/src/engine/SCons/Tool/yacc.xml b/src/engine/SCons/Tool/yacc.xml
new file mode 100644
index 0000000..59735af
--- /dev/null
+++ b/src/engine/SCons/Tool/yacc.xml
@@ -0,0 +1,42 @@
+<!-- __COPYRIGHT__ -->
+<tool name="yacc">
+<summary>
+XXX
+</summary>
+</tool>
+
+<cvar name="YACC">
+<summary>
+The parser generator.
+</summary>
+</cvar>
+
+<cvar name="YACCCOM">
+<summary>
+The command line used to call the parser generator
+to generate a source file.
+</summary>
+</cvar>
+
+<cvar name="YACCCOMSTR">
+<summary>
+The string displayed when generating a source file
+using the parser generator.
+If this is not set, then &cv-YACCCOM; (the command line) is displayed.
+
+<example>
+env = Environment(YACCCOMSTR = "Yacc'ing $TARGET from $SOURCES")
+</example>
+</summary>
+</cvar>
+
+<cvar name="YACCFLAGS">
+<summary>
+General options passed to the parser generator.
+If &cv-YACCFLAGS; contains a <option>-d</option> option,
+SCons assumes that the call will also create a .h file
+(if the yacc source file ends in a .y suffix)
+or a .hpp file
+(if the yacc source file ends in a .yy suffix)
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/zip.xml b/src/engine/SCons/Tool/zip.xml
new file mode 100644
index 0000000..4e33c15
--- /dev/null
+++ b/src/engine/SCons/Tool/zip.xml
@@ -0,0 +1,83 @@
+<!-- __COPYRIGHT__ -->
+<tool name="zip">
+<summary>
+XXX
+</summary>
+</tool>
+
+<builder name="Zip">
+<summary>
+Builds a zip archive of the specified files
+and/or directories.
+Unlike most builder methods,
+the
+&b-Zip;
+builder method may be called multiple times
+for a given target;
+each additional call
+adds to the list of entries
+that will be built into the archive.
+
+<example>
+env.Zip('src.zip', 'src')
+
+# Create the stuff.zip file.
+env.Zip('stuff', ['subdir1', 'subdir2'])
+# Also add "another" to the stuff.tar file.
+env.Zip('stuff', 'another')
+</example>
+</summary>
+</builder>
+
+<cvar name="ZIP">
+<summary>
+The zip compression and file packaging utility.
+</summary>
+</cvar>
+
+<cvar name="ZIPCOM">
+<summary>
+The command line used to call the zip utility,
+or the internal Python function used to create a
+zip archive.
+</summary>
+</cvar>
+
+<cvar name="ZIPCOMSTR">
+<summary>
+The string displayed when archiving files
+using the zip utility.
+If this is not set, then &cv-ZIPCOM;
+(the command line or internal Python function) is displayed.
+
+<example>
+env = Environment(ZIPCOMSTR = "Zipping $TARGET")
+</example>
+</summary>
+</cvar>
+
+<cvar name="ZIPCOMPRESSION">
+<summary>
+The
+<varname>compression</varname>
+flag
+from the Python
+<filename>zipfile</filename>
+module used by the internal Python function
+to control whether the zip archive
+is compressed or not.
+The default value is
+<varname>zipfile.ZIP_DEFLATED</varname>,
+which creates a compressed zip archive.
+This value has no effect when using Python 1.5.2
+or if the
+<varname>zipfile</varname>
+module is otherwise unavailable.
+</summary>
+</cvar>
+
+<cvar name="ZIPFLAGS">
+<summary>
+General options passed to the zip utility.
+</summary>
+</cvar>