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