Fix T41336 Update SCons to 2.3.2 master
authorNathan Letwory <nathan@mcneel.com>
Wed, 6 Aug 2014 02:09:24 +0000 (05:09 +0300)
committerNathan Letwory <nathan@mcneel.com>
Wed, 6 Aug 2014 02:09:24 +0000 (05:09 +0300)
Patch by Thomas Dinges

197 files changed:
scons-LICENSE
scons-README
scons-local/SCons/Action.py
scons-local/SCons/Builder.py
scons-local/SCons/CacheDir.py
scons-local/SCons/Debug.py
scons-local/SCons/Defaults.py
scons-local/SCons/Environment.py
scons-local/SCons/Errors.py
scons-local/SCons/Executor.py
scons-local/SCons/Job.py
scons-local/SCons/Memoize.py
scons-local/SCons/Node/Alias.py
scons-local/SCons/Node/FS.py
scons-local/SCons/Node/Python.py
scons-local/SCons/Node/__init__.py
scons-local/SCons/Options/BoolOption.py
scons-local/SCons/Options/EnumOption.py
scons-local/SCons/Options/ListOption.py
scons-local/SCons/Options/PackageOption.py
scons-local/SCons/Options/PathOption.py
scons-local/SCons/Options/__init__.py
scons-local/SCons/PathList.py
scons-local/SCons/Platform/__init__.py
scons-local/SCons/Platform/aix.py
scons-local/SCons/Platform/cygwin.py
scons-local/SCons/Platform/darwin.py
scons-local/SCons/Platform/hpux.py
scons-local/SCons/Platform/irix.py
scons-local/SCons/Platform/os2.py
scons-local/SCons/Platform/posix.py
scons-local/SCons/Platform/sunos.py
scons-local/SCons/Platform/win32.py
scons-local/SCons/SConf.py
scons-local/SCons/SConsign.py
scons-local/SCons/Scanner/C.py
scons-local/SCons/Scanner/D.py
scons-local/SCons/Scanner/Dir.py
scons-local/SCons/Scanner/Fortran.py
scons-local/SCons/Scanner/IDL.py
scons-local/SCons/Scanner/LaTeX.py
scons-local/SCons/Scanner/Prog.py
scons-local/SCons/Scanner/RC.py
scons-local/SCons/Scanner/__init__.py
scons-local/SCons/Script/Interactive.py
scons-local/SCons/Script/Main.py
scons-local/SCons/Script/SConsOptions.py
scons-local/SCons/Script/SConscript.py
scons-local/SCons/Script/__init__.py
scons-local/SCons/Sig.py
scons-local/SCons/Subst.py
scons-local/SCons/Taskmaster.py
scons-local/SCons/Tool/386asm.py
scons-local/SCons/Tool/BitKeeper.py
scons-local/SCons/Tool/CVS.py
scons-local/SCons/Tool/DCommon.py [new file with mode: 0644]
scons-local/SCons/Tool/FortranCommon.py
scons-local/SCons/Tool/GettextCommon.py
scons-local/SCons/Tool/JavaCommon.py
scons-local/SCons/Tool/MSCommon/__init__.py
scons-local/SCons/Tool/MSCommon/arch.py
scons-local/SCons/Tool/MSCommon/common.py
scons-local/SCons/Tool/MSCommon/netframework.py
scons-local/SCons/Tool/MSCommon/sdk.py
scons-local/SCons/Tool/MSCommon/vc.py
scons-local/SCons/Tool/MSCommon/vs.py
scons-local/SCons/Tool/Perforce.py
scons-local/SCons/Tool/PharLapCommon.py
scons-local/SCons/Tool/RCS.py
scons-local/SCons/Tool/SCCS.py
scons-local/SCons/Tool/Subversion.py
scons-local/SCons/Tool/__init__.py
scons-local/SCons/Tool/aixc++.py
scons-local/SCons/Tool/aixcc.py
scons-local/SCons/Tool/aixf77.py
scons-local/SCons/Tool/aixlink.py
scons-local/SCons/Tool/applelink.py
scons-local/SCons/Tool/ar.py
scons-local/SCons/Tool/as.py
scons-local/SCons/Tool/bcc32.py
scons-local/SCons/Tool/c++.py
scons-local/SCons/Tool/cc.py
scons-local/SCons/Tool/cvf.py
scons-local/SCons/Tool/default.py
scons-local/SCons/Tool/dmd.py
scons-local/SCons/Tool/docbook/__init__.py
scons-local/SCons/Tool/dvi.py
scons-local/SCons/Tool/dvipdf.py
scons-local/SCons/Tool/dvips.py
scons-local/SCons/Tool/f03.py
scons-local/SCons/Tool/f77.py
scons-local/SCons/Tool/f90.py
scons-local/SCons/Tool/f95.py
scons-local/SCons/Tool/filesystem.py
scons-local/SCons/Tool/fortran.py
scons-local/SCons/Tool/g++.py
scons-local/SCons/Tool/g77.py
scons-local/SCons/Tool/gas.py
scons-local/SCons/Tool/gcc.py
scons-local/SCons/Tool/gdc.py [new file with mode: 0644]
scons-local/SCons/Tool/gettext.py
scons-local/SCons/Tool/gfortran.py
scons-local/SCons/Tool/gnulink.py
scons-local/SCons/Tool/gs.py
scons-local/SCons/Tool/hpc++.py
scons-local/SCons/Tool/hpcc.py
scons-local/SCons/Tool/hplink.py
scons-local/SCons/Tool/icc.py
scons-local/SCons/Tool/icl.py
scons-local/SCons/Tool/ifl.py
scons-local/SCons/Tool/ifort.py
scons-local/SCons/Tool/ilink.py
scons-local/SCons/Tool/ilink32.py
scons-local/SCons/Tool/install.py
scons-local/SCons/Tool/intelc.py
scons-local/SCons/Tool/ipkg.py
scons-local/SCons/Tool/jar.py
scons-local/SCons/Tool/javac.py
scons-local/SCons/Tool/javah.py
scons-local/SCons/Tool/latex.py
scons-local/SCons/Tool/ldc.py [new file with mode: 0644]
scons-local/SCons/Tool/lex.py
scons-local/SCons/Tool/link.py
scons-local/SCons/Tool/linkloc.py
scons-local/SCons/Tool/m4.py
scons-local/SCons/Tool/masm.py
scons-local/SCons/Tool/midl.py
scons-local/SCons/Tool/mingw.py
scons-local/SCons/Tool/msgfmt.py
scons-local/SCons/Tool/msginit.py
scons-local/SCons/Tool/msgmerge.py
scons-local/SCons/Tool/mslib.py
scons-local/SCons/Tool/mslink.py
scons-local/SCons/Tool/mssdk.py
scons-local/SCons/Tool/msvc.py
scons-local/SCons/Tool/msvs.py
scons-local/SCons/Tool/mwcc.py
scons-local/SCons/Tool/mwld.py
scons-local/SCons/Tool/nasm.py
scons-local/SCons/Tool/packaging/__init__.py
scons-local/SCons/Tool/packaging/ipk.py
scons-local/SCons/Tool/packaging/msi.py
scons-local/SCons/Tool/packaging/rpm.py
scons-local/SCons/Tool/packaging/src_tarbz2.py
scons-local/SCons/Tool/packaging/src_targz.py
scons-local/SCons/Tool/packaging/src_zip.py
scons-local/SCons/Tool/packaging/tarbz2.py
scons-local/SCons/Tool/packaging/targz.py
scons-local/SCons/Tool/packaging/zip.py
scons-local/SCons/Tool/pdf.py
scons-local/SCons/Tool/pdflatex.py
scons-local/SCons/Tool/pdftex.py
scons-local/SCons/Tool/qt.py
scons-local/SCons/Tool/rmic.py
scons-local/SCons/Tool/rpcgen.py
scons-local/SCons/Tool/rpm.py
scons-local/SCons/Tool/rpmutils.py
scons-local/SCons/Tool/sgiar.py
scons-local/SCons/Tool/sgic++.py
scons-local/SCons/Tool/sgicc.py
scons-local/SCons/Tool/sgilink.py
scons-local/SCons/Tool/sunar.py
scons-local/SCons/Tool/sunc++.py
scons-local/SCons/Tool/suncc.py
scons-local/SCons/Tool/sunf77.py
scons-local/SCons/Tool/sunf90.py
scons-local/SCons/Tool/sunf95.py
scons-local/SCons/Tool/sunlink.py
scons-local/SCons/Tool/swig.py
scons-local/SCons/Tool/tar.py
scons-local/SCons/Tool/tex.py
scons-local/SCons/Tool/textfile.py
scons-local/SCons/Tool/tlib.py
scons-local/SCons/Tool/wix.py
scons-local/SCons/Tool/xgettext.py
scons-local/SCons/Tool/yacc.py
scons-local/SCons/Tool/zip.py
scons-local/SCons/Util.py
scons-local/SCons/Variables/BoolVariable.py
scons-local/SCons/Variables/EnumVariable.py
scons-local/SCons/Variables/ListVariable.py
scons-local/SCons/Variables/PackageVariable.py
scons-local/SCons/Variables/PathVariable.py
scons-local/SCons/Variables/__init__.py
scons-local/SCons/Warnings.py
scons-local/SCons/__init__.py
scons-local/SCons/compat/__init__.py
scons-local/SCons/compat/_scons_builtins.py
scons-local/SCons/compat/_scons_collections.py
scons-local/SCons/compat/_scons_dbm.py
scons-local/SCons/compat/_scons_hashlib.py
scons-local/SCons/compat/_scons_io.py
scons-local/SCons/cpp.py
scons-local/SCons/exitfuncs.py
scons-time.py
scons.py
sconsign.py

index 4ac235285f7051769de929cc5048d2fd106e3dd3..32aa74a6aafb95d8fb4283277c3001b1a87a41a6 100644 (file)
@@ -1,9 +1,4 @@
-        Copyright and license for SCons - a software construction tool
-
-        This copyright and license do not apply to any other software
-        with which this software may have been included.
-
-Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
+Copyright (c) 2001 - 2014 The SCons Foundation
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
index 89bc6340d41f4f98fd1968e7b4d58ab40e54d8d1..7e638161569f19b42c338a9f93005f46f69a8970 100644 (file)
@@ -1,42 +1,26 @@
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
 
-                 SCons - a software construction tool
-
-This is the scons-README file for a version of SCons packaged for local
-execution--that is, execution out of a specific local directory, without
-having to install SCons as a system-wide utility.
 
-You are likely reading this file in one of the following two situations:
+                 SCons - a software construction tool
 
-    1)  You have unpacked an scons-local-{version} package and are
-        examining the contents.
+                         Version 2.3.2
 
-        In this case, you are presumably interested in using this
-        package to include a local copy of SCons with some other
-        software that you package, so that you can use SCons to build
-        your software without forcing all of your users to have it fully
-        installed.  Instructions for this can be found below.
 
-        If you are not looking to use SCons in this way, then please
-        use either the scons-{version} package to install SCons on your
-        system, or the scons-src-{version} package if you want the full
-        source to SCons, including its packaging code and underlying
-        tests and testing infrastructure.
+This is SCons, a tool for building software (and other files).  SCons is
+implemented in Python, and its "configuration files" are actually Python
+scripts, allowing you to use the full power of a real scripting language
+to solve build problems.  You do not, however, need to know Python to
+use SCons effectively.
 
-    2)  This file was included in some other software package so that
-        the package could be built using SCons.
+See the RELEASE.txt file for notes about this specific release,
+including known problems.  See the CHANGES.txt file for a list of
+changes since the previous release.
 
-        In this case, follow the instructions provided with the
-        rest of the software package for how to use SCons to build
-        and/or install the software.  The file containing build and
-        installation instructions will typically be named README or
-        INSTALL.
 
 LATEST VERSION
 ==============
 
-Before going further, you can check for the latest version of the
-scons-local package, or any SCons package, at the SCons download page:
+Before going further, you can check that this package you have is
+the latest version by checking the SCons download page at:
 
         http://www.scons.org/download.html
 
@@ -44,94 +28,120 @@ scons-local package, or any SCons package, at the SCons download page:
 EXECUTION REQUIREMENTS
 ======================
 
-Running SCons requires Python version 1.5.2 or later.  There should be
-no other dependencies or requirements to run SCons.
+Running SCons requires Python version 2.4 or later.  There should be
+no other dependencies or requirements to run SCons.  (There is, however,
+an additional requirement to *install* SCons from this particular
+package; see the next section.)
 
-The default SCons configuration assumes use of the Microsoft Visual C++
-compiler suite on WIN32 systems, and assumes a C compiler named 'cc',
-a C++ compiler named 'c++', and a Fortran compiler named 'g77' (such
-as found in the GNU C compiler suite) on any other type of system.
-You may, of course, override these default values by appropriate
+By default, SCons knows how to search for available programming tools
+on various systems--see the SCons man page for details.  You may,
+of course, override the default SCons choices made by appropriate
 configuration of Environment construction variables.
 
 
+INSTALLATION REQUIREMENTS
+=========================
+
+Nothing special.
+
+
 INSTALLATION
 ============
 
-Installation of this package should be as simple as unpacking the
-archive (either .tar.gz or .zip) in any directory (top-level or a
-subdirectory) within the software package with which you want to ship
-SCons.
+Assuming your system satisfies the installation requirements in the
+previous section, install SCons from this package simply by running the
+provided Python-standard setup script as follows:
 
-Once you have installed this package, you should write an SConstruct
-file at the top level of your source tree to build your software as you
-see fit.
+        # python setup.py install
 
-Then modify the build/install instructions for your package to instruct
-your users to execute SCons as follows (if you installed this package in
-your top-level directory):
+By default, the above command will do the following:
 
-        $ python scons.py
+    --  Install the version-numbered "scons-2.3.2" and "sconsign-2.3.2"
+        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
+        line.
 
-Or (if, for example, you installed this package in a subdirectory named
-"scons"):
+    --  Install scripts named "scons" and "sconsign" scripts in the
+        default system script directory (/usr/bin or C:\Python*\Scripts,
+        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.
 
-        $ python scons/scons.py
+        On UNIX or Linux systems, you can have the "scons" and "sconsign"
+        scripts be hard links or symbolic links to the "scons-2.3.2" and
+        "sconsign-2.3.2" scripts by specifying the "--hardlink-scons"
+        or "--symlink-scons" options on the command line.
 
-That should be all you have to do.  (If it isn't that simple, please let
-us know!)
+    --  Install "scons-2.3.2.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-2.3.2.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.
 
-CONTENTS OF THIS PACKAGE
-========================
+    --  Install the SCons build engine (a Python module) in an
+        appropriate version-numbered SCons library directory
+        (/usr/lib/scons-2.3.2 or C:\Python*\scons-2.3.2, for example).
+        See below for more options related to installing the build
+        engine library.
 
-This scons-local package consists of the following:
+    --  Install the troff-format man pages in an appropriate directory
+        on UNIX or Linux systems (/usr/share/man/man1 or /usr/man/man1,
+        for example).  This can be disabled by specifying the
+        "--no-install-man" option on the command line.  The man pages
+        can be installed on Windows systems by specifying the
+        "--install-man" option on the command line.
 
-scons-LICENSE
-        A copy of the copyright and terms under which SCons is
-        distributed (the Open Source Initiative-approved MIT license).
+Note that, by default, SCons does not install its build engine library
+in the standard Python library directories.  If you want to be able to
+use the SCons library modules (the build engine) in other Python
+scripts, specify the "--standard-lib" option on the command line, as
+follows:
 
-        A disclaimer has been added to the beginning to make clear that
-        this license applies only to SCons, and not to any separate
-        software you've written with which you're planning to package
-        SCons.
+        # python setup.py install --standard-lib
 
-scons-README
-        What you're looking at right now.
+This will install the build engine in the standard Python library
+directory (/usr/lib/python*/site-packages or
+C:\Python*\Lib\site-packages).
 
-scons-local-{version}/
-        The SCons build engine.  This is structured as a Python
-        library.
+Alternatively, you can have SCons install its build engine library in a
+hard-coded standalone library directory, instead of the default
+version-numbered directory, by specifying the "--standalone-lib" option
+on the command line, as follows:
 
-scons.py
-        The SCons script itself.  The script sets up the Python
-        sys.path variable to use the build engine found in the
-        scons-local-{version}/ directory in preference to any other
-        SCons build engine installed on your system.
+        # python setup.py install --standalone-lib
 
+This is usually not recommended, however.
 
-DOCUMENTATION
-=============
+Note that, to install SCons in any of the above system directories,
+you should have system installation privileges (that is, "root" or
+"Administrator") when running the setup.py script.  If you don't have
+system installation privileges, you can use the --prefix option to
+specify an alternate installation location, such as your home directory:
 
-Because this package is intended to be included with other software by
-experienced users, we have not included any SCons documentation in this
-package (other than this scons-README file you're reading right now).
+        $ python setup.py install --prefix=$HOME
 
-If, however, you need documentation about SCons, then consult any of the
-following from the corresponding scons-{version} or scons-src-{version}
-package:
+This will install SCons in the appropriate locations relative to
+$HOME--that is, the scons script itself $HOME/bin and the associated
+library in $HOME/lib/scons, for example.
 
-        The RELEASE.txt file (src/RELEASE.txt file in the
-        scons-src-{version} package), which contains notes about this
-        specific release, including known problems.
 
-        The CHANGES.txt file (src/CHANGES.txt file in the
-        scons-src-{version} package), which contains a list of changes
-        since the previous release.
+DOCUMENTATION
+=============
+
+See the RELEASE.txt file for notes about this specific release,
+including known problems.  See the CHANGES.txt file for a list of
+changes since the previous release.
 
-        The scons.1 man page (doc/man/scons.1 in the scons-src-{version}
-        package), which contains a section of small examples for getting
-        started using SCons.
+The scons.1 man page is included in this package, and contains a section
+of small examples for getting started using SCons.
 
 Additional documentation for SCons is available at:
 
@@ -142,8 +152,8 @@ LICENSING
 =========
 
 SCons is distributed under the MIT license, a full copy of which is
-available in the scons-LICENSE file in this package. The MIT license is
-an approved Open Source license, which means:
+available in the LICENSE.txt file. The MIT license is an approved Open
+Source license, which means:
 
         This software is OSI Certified Open Source Software.  OSI
         Certified is a certification mark of the Open Source Initiative.
@@ -157,27 +167,51 @@ available at:
 REPORTING BUGS
 ==============
 
-You can report bugs either by following the "Tracker - Bugs" link
-on the SCons project page:
+Please report bugs by following the detailed instructions on our Bug
+Submission page:
+
+        http://scons.tigris.org/bug-submission.html
 
-        http://sourceforge.net/projects/scons/
+You can also send mail to the SCons developers' mailing list:
 
-or by sending mail to the SCons developers mailing list:
+        scons-dev@scons.org
 
-        scons-devel@lists.sourceforge.net
+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
 =============
 
-A mailing list for users of SCons is available.  You may send questions
-or comments to the list at:
+An active mailing list for users of SCons is available.  You may send
+questions or comments to the list at:
+
+        scons-users@scons.org
+
+You may subscribe to the mailing list by sending email to:
+
+        scons-users-join@scons.org
 
-        scons-users@lists.sourceforge.net
+There is also a low-volume mailing list available for announcements
+about SCons.  Subscribe by sending email to:
+
+        announce-subscribe@scons.tigris.org
+
+There are other mailing lists available for SCons developers, for
+notification of SCons code changes, and for notification of updated
+bug reports and project documents.  Please see our mailing lists page
+for details.
+
+
+DONATIONS
+=========
 
-You may subscribe to the scons-users mailing list at:
+If you find SCons helpful, please consider making a donation (of cash,
+software, or hardware) to support continued work on the project.
+Information is available at:
 
-        http://lists.sourceforge.net/lists/listinfo/scons-users
+        http://www.scons.org/donate.html
 
 
 FOR MORE INFORMATION
@@ -199,6 +233,11 @@ With plenty of help from the SCons Development team:
         Chad Austin
         Charles Crain
         Steve Leblanc
+        Greg Noel
+        Gary Oberbrunner
         Anthony Roach
-        Terrel Shumway
+        Greg Spencer
+        Christoph Wiedemann
 
+Copyright (c) 2001 - 2014 The SCons Foundation
+src/README.txt  2014/07/05 09:42:21 garyo
index 0e31124c807ad5925bf4753df4a81f39a704b1f8..23e32ac625b37c40cc8bc0131b258432655250ab 100644 (file)
@@ -76,7 +76,7 @@ way for wrapping up the functions.
 
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -97,7 +97,7 @@ way for wrapping up the functions.
 # 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__ = "src/engine/SCons/Action.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Action.py  2014/07/05 09:42:21 garyo"
 
 import SCons.compat
 
@@ -337,7 +337,7 @@ def _do_create_keywords(args, kw):
                 'You must either pass a string or a callback which '
                 'accepts (target, source, env) as parameters.')
         if len(args) > 1:
-            kw['varlist'] = args[1:] + kw['varlist']
+            kw['varlist'] = tuple(SCons.Util.flatten(args[1:])) + kw['varlist']
     if kw.get('strfunction', _null) is not _null \
                       and kw.get('cmdstr', _null) is not _null:
         raise SCons.Errors.UserError(
@@ -679,12 +679,13 @@ def _subproc(scons_env, cmd, error = 'ignore', **kw):
         # return a dummy Popen instance that only returns error
         class dummyPopen(object):
             def __init__(self, e): self.exception = e
-            def communicate(self): return ('','')
+            def communicate(self,input=None): return ('','')
             def wait(self): return -self.exception.errno
             stdin = None
             class f(object):
                 def read(self): return ''
                 def readline(self): return ''
+                def __iter__(self): return iter(())
             stdout = stderr = f()
         return dummyPopen(e)
 
index 0b5f291710f27ed88fff907a8f5f15c551ddaafd..142ca818fd85edb12dca5d7dc78c97d9456427ea 100644 (file)
@@ -76,7 +76,7 @@ There are the following methods for internal use within this module:
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -97,7 +97,7 @@ There are the following methods for internal use within this module:
 # 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__ = "src/engine/SCons/Builder.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Builder.py  2014/07/05 09:42:21 garyo"
 
 import collections
 
index 8ac8fa9860533944637a0e1c3fd74dbe3c05c622..43c7f0e5e5ed6c1355b821d1402920b6bb81879b 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/CacheDir.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/CacheDir.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """
 CacheDir support
index 08d757080e2772d40f2658866877e808cc73e54c..23994d3fa4fef662a36bb28e69fe8a6e0e6dc206 100644 (file)
@@ -6,7 +6,7 @@ needed by most users.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@ needed by most users.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Debug.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Debug.py  2014/07/05 09:42:21 garyo"
 
 import os
 import sys
index dd726f1385c85b962ff2f65360f51999675c32e9..9e33bfa46e261a9f39407004d61acbb07e720b4c 100644 (file)
@@ -10,7 +10,7 @@ from distutils.msvccompiler.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -33,7 +33,7 @@ from distutils.msvccompiler.
 #
 from __future__ import division
 
-__revision__ = "src/engine/SCons/Defaults.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Defaults.py  2014/07/05 09:42:21 garyo"
 
 
 import os
@@ -144,6 +144,9 @@ ShCAction = SCons.Action.Action("$SHCCCOM", "$SHCCCOMSTR")
 CXXAction = SCons.Action.Action("$CXXCOM", "$CXXCOMSTR")
 ShCXXAction = SCons.Action.Action("$SHCXXCOM", "$SHCXXCOMSTR")
 
+DAction = SCons.Action.Action("$DCOM", "$DCOMSTR")
+ShDAction = SCons.Action.Action("$SHDCOM", "$SHDCOMSTR")
+
 ASAction = SCons.Action.Action("$ASCOM", "$ASCOMSTR")
 ASPPAction = SCons.Action.Action("$ASPPCOM", "$ASPPCOMSTR")
 
@@ -321,7 +324,7 @@ def _stripixes(prefix, itms, suffix, stripprefixes, stripsuffixes, env, c=None):
     where it finds them.  This is used by tools (like the GNU linker)
     that need to turn something like 'libfoo.a' into '-lfoo'.
     """
-    
+
     if not itms:
         return itms
 
@@ -335,7 +338,7 @@ def _stripixes(prefix, itms, suffix, stripprefixes, stripsuffixes, env, c=None):
             c = env_c
         else:
             c = _concat_ixes
-    
+
     stripprefixes = list(map(env.subst, SCons.Util.flatten(stripprefixes)))
     stripsuffixes = list(map(env.subst, SCons.Util.flatten(stripsuffixes)))
 
@@ -413,7 +416,7 @@ def _defines(prefix, defs, suffix, env, c=_concat_ixes):
     """
 
     return c(prefix, env.subst_path(processDefines(defs)), suffix, env)
-    
+
 class NullCmdGenerator(object):
     """This is a callable class that can be used in place of other
     command generators if you don't want them to do anything.
@@ -449,7 +452,7 @@ class Variable_Method_Caller(object):
         self.method = method
     def __call__(self, *args, **kw):
         try: 1//0
-        except ZeroDivisionError: 
+        except ZeroDivisionError:
             # Don't start iterating with the current stack-frame to
             # prevent creating reference cycles (f_back is safe).
             frame = sys.exc_info()[2].tb_frame.f_back
index 5644a30dda6717c53d1a20291f317c72762feb95..467007c80547fa0427ce668578f7af858085a5ce 100644 (file)
@@ -10,7 +10,7 @@ Environment
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ Environment
 # 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__ = "src/engine/SCons/Environment.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Environment.py  2014/07/05 09:42:21 garyo"
 
 
 import copy
@@ -1803,8 +1803,8 @@ class Base(SubstitutionEnvironment):
                 pass
         elif SCons.Util.is_String(pathext):
             pathext = self.subst(pathext)
-        prog = self.subst(prog)
-        path = SCons.Util.WhereIs(prog, path, pathext, reject)
+        prog = SCons.Util.CLVar(self.subst(prog)) # support "program --with-args"
+        path = SCons.Util.WhereIs(prog[0], path, pathext, reject)
         if path: return path
         return None
 
@@ -2149,7 +2149,7 @@ class Base(SubstitutionEnvironment):
     def SourceCode(self, entry, builder):
         """Arrange for a source code builder for (part of) a tree."""
         msg = """SourceCode() has been deprecated and there is no replacement.
-\tIf you need this function, please contact dev@scons.tigris.org."""
+\tIf you need this function, please contact scons-dev@scons.org"""
         SCons.Warnings.warn(SCons.Warnings.DeprecatedSourceCodeWarning, msg)
         entries = self.arg2nodes(entry, self.fs.Entry)
         for entry in entries:
index bbdfc5703ec211ce9c8d29457f1fdf822aab3912..4c8aadad1d3bfe41f394bd29604e4edb1c53bd16 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@ and user errors in SCons.
 
 """
 
-__revision__ = "src/engine/SCons/Errors.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Errors.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index c9f64e470c6beb1180a24c0e3f62d0f2204db247..602fffca81442e779ec32c90ce7eb29d26eaa565 100644 (file)
@@ -6,7 +6,7 @@ Nodes.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ Nodes.
 # 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__ = "src/engine/SCons/Executor.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Executor.py  2014/07/05 09:42:21 garyo"
 
 import collections
 
index 43a8ae5c62cca7d2d99c8cd75af6c845d4fff0cb..70abd536ea0405d3b923d143afa12ac3c883bf95 100644 (file)
@@ -7,7 +7,7 @@ stop, and wait on jobs.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@ stop, and wait on jobs.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Job.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Job.py  2014/07/05 09:42:21 garyo"
 
 import SCons.compat
 
index 50dce3b7658e814ef03e8e473c5b1e7aff8c3349..c4569ee2153cadea99a73d563efc38c448197873 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Memoize.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Memoize.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Memoizer
 
index 0b8f9b0f1c99ba2e4cee957530866141781c2ab6..1573b740ed9790dc62b61386b6dd8207ede198cc 100644 (file)
@@ -8,7 +8,7 @@ This creates a hash of global Aliases (dummy targets).
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ This creates a hash of global Aliases (dummy targets).
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Node/Alias.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Node/Alias.py  2014/07/05 09:42:21 garyo"
 
 import collections
 
index f54b0ab620c56de289006f35d42304c3a01e47b9..6cf740ba8cb4e498475a736bf480610cd8c73e9c 100644 (file)
@@ -11,7 +11,7 @@ that can be used by scripts or modules looking for the canonical default.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ that can be used by scripts or modules looking for the canonical default.
 # 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__ = "src/engine/SCons/Node/FS.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Node/FS.py  2014/07/05 09:42:21 garyo"
 
 import fnmatch
 import os
index 8936b6d3d280c221c7b68ea13e48fa3cc565c33c..f2c0d5ff6eb12b8cd5f59421a477df8aa89c43eb 100644 (file)
@@ -5,7 +5,7 @@ Python nodes.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ Python nodes.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Node/Python.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Node/Python.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Node
 
index e6a300127768605a2bfeb12772a6611b3f5f2082..25956add9086639914d9e78220c70cdded9d23e1 100644 (file)
@@ -20,7 +20,7 @@ be able to depend on any other type of "thing."
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -41,7 +41,7 @@ be able to depend on any other type of "thing."
 # 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__ = "src/engine/SCons/Node/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Node/__init__.py  2014/07/05 09:42:21 garyo"
 
 import collections
 import copy
index cc059445e62ce22f10893b2ac932cf2445f06246..4952b0de5a0083a1ffbd3a73d791353c6f1d4900 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Options/BoolOption.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Options/BoolOption.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Place-holder for the old SCons.Options module hierarchy
 
index 5ff79ba3a216284fb8b3392574ea4442a6614b34..cd1ced84215cf5619dadb599ff4a9cbfe72093e9 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Options/EnumOption.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Options/EnumOption.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Place-holder for the old SCons.Options module hierarchy
 
index 190dff21d5d82ef888734f176cf1faa1e532ea59..5bbcf65ec39cd1d08ecfd37372773e804bab6171 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Options/ListOption.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Options/ListOption.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Place-holder for the old SCons.Options module hierarchy
 
index 254b491ff1d1a2e3c8350e723f7cbb9fa7dabb36..5acbfcd0d2a76d61ac923a96d01f5cde2b3f9b26 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Options/PackageOption.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Options/PackageOption.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Place-holder for the old SCons.Options module hierarchy
 
index bdde473c9bcebb2fdc081515613a7a01e5a69d1f..af714c7d4ca820b3e7c279f7c1df623f73aa0b74 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Options/PathOption.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Options/PathOption.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Place-holder for the old SCons.Options module hierarchy
 
index e704de0d32723c6203fb8f13e4fad3d066392756..a888e460a2fd793ebef32712f4a4b9828d93c4f3 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Options/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Options/__init__.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Place-holder for the old SCons.Options module hierarchy
 
index 301c72f583f146ca082b9f0bdd66b6a755d51db2..efb08aa56c2487789aca6ca0cc8a66f7a1f9313f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/PathList.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/PathList.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """SCons.PathList
 
index 25ea93e721199bfc60536b2b0b82634e28172e6b..f8d804128d0ffd82672e53a9e4643b57815ec05b 100644 (file)
@@ -20,7 +20,7 @@ their own platform definition.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -42,7 +42,7 @@ their own platform definition.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/__init__.py  2014/07/05 09:42:21 garyo"
 
 import SCons.compat
 
index 98d4d8f93a931a3584bb3ab2a32740fec09221c5..4d9ea92e7a82c194f73d3d287be11084ea516a93 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,13 +30,17 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/aix.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/aix.py  2014/07/05 09:42:21 garyo"
 
 import os
+import subprocess
 
 import posix
 
-def get_xlc(env, xlc=None, xlc_r=None, packages=[]):
+import SCons.Util
+import SCons.Action
+
+def get_xlc(env, xlc=None, packages=[]):
     # Use the AIX package installer tool lslpp to figure out where a
     # given xl* compiler is installed and what version it is.
     xlcPath = None
@@ -44,18 +48,30 @@ def get_xlc(env, xlc=None, xlc_r=None, packages=[]):
 
     if xlc is None:
         xlc = env.get('CC', 'xlc')
-    if xlc_r is None:
-        xlc_r = xlc + '_r'
+    if SCons.Util.is_List(xlc):
+        xlc = xlc[0]
     for package in packages:
-        cmd = "lslpp -fc " + package + " 2>/dev/null | egrep '" + xlc + "([^-_a-zA-Z0-9].*)?$'"
-        line = os.popen(cmd).readline()
-        if line:
-            v, p = line.split(':')[1:3]
-            xlcVersion = v.split()[1]
-            xlcPath = p.split()[0]
-            xlcPath = xlcPath[:xlcPath.rindex('/')]
-            break
-    return (xlcPath, xlc, xlc_r, xlcVersion)
+        # find the installed filename, which may be a symlink as well
+        pipe = SCons.Action._subproc(env, ['lslpp', '-fc', package],
+                stdin = 'devnull',
+                stderr = 'devnull',
+                stdout = subprocess.PIPE)
+        # output of lslpp is something like this:
+        #     #Path:Fileset:File
+        #     /usr/lib/objrepos:vac.C 6.0.0.0:/usr/vac/exe/xlCcpp
+        #     /usr/lib/objrepos:vac.C 6.0.0.0:/usr/vac/bin/xlc_r -> /usr/vac/bin/xlc
+        for line in pipe.stdout:
+            if xlcPath:
+                continue # read everything to let lslpp terminate
+            fileset, filename = line.split(':')[1:3]
+            filename = filename.split()[0]
+            if ('/' in xlc and filename == xlc) \
+            or ('/' not in xlc and filename.endswith('/' + xlc)):
+                xlcVersion = fileset.split()[1]
+                xlcPath, sep, xlc = filename.rpartition('/')
+            pass
+        pass
+    return (xlcPath, xlc, xlcVersion)
 
 def generate(env):
     posix.generate(env)
index 7429407a312c8c770bc3579f45a1f85cbb9f1ac0..781f12d097d908e55ed34000350291c3a0c6435c 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/cygwin.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/cygwin.py  2014/07/05 09:42:21 garyo"
 
 import posix
 from SCons.Platform import TempFileMunge
index 33078396ed9d5e3169f094dc51eb7a25702b9c99..bf6100030e938def5422d40b1a06d0a1d44d4bf7 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/darwin.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/darwin.py  2014/07/05 09:42:21 garyo"
 
 import posix
 import os
index 5c003cafb17a67ebe81b5a3a13ac4b69b20646f3..9e5fe6a8cfac086c9903652136368a69a2165732 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/hpux.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/hpux.py  2014/07/05 09:42:21 garyo"
 
 import posix
 
index abb2a58be733993d4ff98997fd45ad1dfdbed532..4287f97628405345edf286244c88c945a56f868c 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/irix.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/irix.py  2014/07/05 09:42:21 garyo"
 
 import posix
 
index 83cd7ef0a5ac7deaaacb4412973625edd1b79e3e..93b7b95212e906396d3764658e6a2c61c14a53d6 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/os2.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/os2.py  2014/07/05 09:42:21 garyo"
 import win32
 
 def generate(env):
index 5deb2d00b0e6534d71486850dc98f842567950a4..eb4f6c9ebe38d5033e6edf5e0e9d74e8cb269b8d 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/posix.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/posix.py  2014/07/05 09:42:21 garyo"
 
 import errno
 import os
@@ -113,6 +113,10 @@ def generate(env):
     # This platform supports RPATH specifications.
     env['__RPATH'] = '$_RPATH'
 
+    # GDC is GCC family, but DMD and LDC have different options.
+    # Must be able to have GCC and DMD work in the same build, so:
+    env['__DRPATH'] = '$_DRPATH'
+
 # Local Variables:
 # tab-width:4
 # indent-tabs-mode:nil
index 911b97f340e0f52e649184231af3e055e667587e..a9d3001d1d552278531fb51341192596357f73aa 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/sunos.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/sunos.py  2014/07/05 09:42:21 garyo"
 
 import posix
 
index b7b65e11ec2957f42994ea3a9a99f56829b7ea38..6511f124959658f9c14a791d56d51d8dfd32fa9f 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Platform/win32.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Platform/win32.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index 63f04c392e849a4790a7443e8a094a9f1b17f051..c32f726b292118dedd99e44d4f98b9dddd0c8c8b 100644 (file)
@@ -1,10 +1,19 @@
 """SCons.SConf
 
 Autoconf-like configuration support.
+
+In other words, this package allows to run series of tests to detect
+capabilities of current system and generate config files (header files
+in C/C++) that turn on system-specific options and optimizations.
+
+For example, it is possible to detect if optional libraries are present
+on current system and generate config that makes compiler include them.
+C compilers do not have ability to catch ImportError if some library is
+not found, so these checks should be done externally.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +35,7 @@ Autoconf-like configuration support.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/SConf.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/SConf.py  2014/07/05 09:42:21 garyo"
 
 import SCons.compat
 
@@ -110,16 +119,22 @@ def _createConfigH(target, source, env):
 def _stringConfigH(target, source, env):
     return "scons: Configure: creating " + str(target[0])
 
-def CreateConfigHBuilder(env):
-    """Called just before the building targets phase begins."""
+
+def NeedConfigHBuilder():
     if len(_ac_config_hs) == 0:
-        return
+       return False
+    else:
+       return True
+
+def CreateConfigHBuilder(env):
+    """Called if necessary just before the building targets phase begins."""
     action = SCons.Action.Action(_createConfigH,
                                  _stringConfigH)
     sconfigHBld = SCons.Builder.Builder(action=action)
     env.Append( BUILDERS={'SConfigHBuilder':sconfigHBld} )
     for k in _ac_config_hs.keys():
         env.SConfigHBuilder(k, env.Value(_ac_config_hs[k]))
+
     
 class SConfWarning(SCons.Warnings.Warning):
     pass
@@ -180,7 +195,13 @@ class Streamer(object):
     def write(self, str):
         if self.orig:
             self.orig.write(str)
-        self.s.write(str)
+        try:
+            self.s.write(str)
+        except TypeError as e:
+            if e.message.startswith('unicode argument expected'):
+                self.s.write(str.decode())
+            else:
+                raise
 
     def writelines(self, lines):
         for l in lines:
index a0061e877f55ccc1ee5189ce3c2364ee7e20c196..e03b4a03ecea05f56f906d57b9b64cabc7356c28 100644 (file)
@@ -5,7 +5,7 @@ Writing and reading information to the .sconsign file or files.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ Writing and reading information to the .sconsign file or files.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/SConsign.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/SConsign.py  2014/07/05 09:42:21 garyo"
 
 import SCons.compat
 
index fedfe236a68f3d4193a2a0c525627875e8f72275..2b59620adc977fb33e95fb2de599cf0bb6e72cce 100644 (file)
@@ -5,7 +5,7 @@ This module implements the depenency scanner for C/C++ code.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ This module implements the depenency scanner for C/C++ code.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Scanner/C.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/C.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Node.FS
 import SCons.Scanner
index 76762b814a9aabe8e8f4678090e58bc897b3dfaf..89f7ff83899080b5c25e0824e1a4f8a96c428e00 100644 (file)
@@ -8,7 +8,7 @@ Coded by Andy Friesen
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ Coded by Andy Friesen
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Scanner/D.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/D.py  2014/07/05 09:42:21 garyo"
 
 import re
 
index 3c3f22725501cebb519f0a42c4912ee240c370cc..327d636776794934951615d657dbc48878bec27a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -20,7 +20,7 @@
 # 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__ = "src/engine/SCons/Scanner/Dir.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/Dir.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Node.FS
 import SCons.Scanner
index 858c89ab6e0ae6fadcc8755886557e7e0971ca53..54680319a851255c0f06913478fc28816da02c48 100644 (file)
@@ -5,7 +5,7 @@ This module implements the dependency scanner for Fortran code.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ This module implements the dependency scanner for Fortran code.
 # 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__ = "src/engine/SCons/Scanner/Fortran.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/Fortran.py  2014/07/05 09:42:21 garyo"
 
 import re
 
index d2710561be56bccb1100d47f43702c51352aaf1e..8fd19128c54dfb0f4ee2853b2d6f39a4d914c600 100644 (file)
@@ -6,7 +6,7 @@ Definition Language) files.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@ Definition Language) files.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Scanner/IDL.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/IDL.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Node.FS
 import SCons.Scanner
index 21c9ba17144b5835371e59d065f42a7613d840fe..51c8e201f1f1efc39fc2cf1865073d3a6a13d487 100644 (file)
@@ -5,7 +5,7 @@ This module implements the dependency scanner for LaTeX code.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ This module implements the dependency scanner for LaTeX code.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Scanner/LaTeX.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/LaTeX.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import re
index 65c9503297e370dc41b215791fbc3eb04d2c9b71..07ffd629b836ab5c28dfde10c7801bec4e80361f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Scanner/Prog.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/Prog.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Node
 import SCons.Node.FS
index 4b473eb721092418ae3cb9b7d88ee5f0b66e8541..ff2359bcef67e4142132269c838375b38685cbe1 100644 (file)
@@ -6,7 +6,7 @@ Definition Language) files.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@ Definition Language) files.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Scanner/RC.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/RC.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Node.FS
 import SCons.Scanner
index bfd25fdd3f905ad42e05f0424f48bdf1d38bce29..b846ade11bce93c31867e35a85d7c2ea3bbd5200 100644 (file)
@@ -5,7 +5,7 @@ The Scanner package for the SCons software construction utility.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ The Scanner package for the SCons software construction utility.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Scanner/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Scanner/__init__.py  2014/07/05 09:42:21 garyo"
 
 import re
 
index 1bc4fc8c6260fbbb0a7eb096e0dab02aee5220bf..b8008821807495cf0ecdb0257d76ae83e2836759 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -20,7 +20,7 @@
 # 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__ = "src/engine/SCons/Script/Interactive.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Script/Interactive.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """
 SCons interactive mode
index 164c61d03b02a920a3095838ec03a41b5640f5ca..b38f13fb87597827b57f2415bf5309558c1b1c35 100644 (file)
@@ -13,7 +13,7 @@ it goes here.
 unsupported_python_version = (2, 3, 0)
 deprecated_python_version = (2, 7, 0)
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -34,7 +34,7 @@ deprecated_python_version = (2, 7, 0)
 # 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__ = "src/engine/SCons/Script/Main.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Script/Main.py  2014/07/05 09:42:21 garyo"
 
 import SCons.compat
 
@@ -312,7 +312,7 @@ class BuildTask(SCons.Taskmaster.OutOfDateTask):
 
 class CleanTask(SCons.Taskmaster.AlwaysTask):
     """An SCons clean task."""
-    def fs_delete(self, path, pathstr, remove=1):
+    def fs_delete(self, path, pathstr, remove=True):
         try:
             if os.path.lexists(path):
                 if os.path.isfile(path) or os.path.islink(path):
@@ -339,37 +339,41 @@ class CleanTask(SCons.Taskmaster.AlwaysTask):
         except (IOError, OSError), e:
             print "scons: Could not remove '%s':" % pathstr, e.strerror
 
-    def show(self):
+    def _get_files_to_clean(self):
+        result = []
         target = self.targets[0]
-        if (target.has_builder() or target.side_effect) and not target.noclean:
-            for t in self.targets:
-                if not t.isdir():
-                    display("Removed " + str(t))
-        if target in SCons.Environment.CleanTargets:
-            files = SCons.Environment.CleanTargets[target]
-            for f in files:
-                self.fs_delete(f.abspath, str(f), 0)
+        if target.has_builder() or target.side_effect:
+            result = [t for t in self.targets if not t.noclean]
+        return result
 
-    def remove(self):
+    def _clean_targets(self, remove=True):
         target = self.targets[0]
-        if (target.has_builder() or target.side_effect) and not target.noclean:
-            for t in self.targets:
-                try:
-                    removed = t.remove()
-                except OSError, e:
-                    # An OSError may indicate something like a permissions
-                    # issue, an IOError would indicate something like
-                    # the file not existing.  In either case, print a
-                    # message and keep going to try to remove as many
-                    # targets aa possible.
-                    print "scons: Could not remove '%s':" % str(t), e.strerror
-                else:
-                    if removed:
-                        display("Removed " + str(t))
         if target in SCons.Environment.CleanTargets:
             files = SCons.Environment.CleanTargets[target]
             for f in files:
-                self.fs_delete(f.abspath, str(f))
+                self.fs_delete(f.abspath, str(f), remove)
+
+    def show(self):
+        for t in self._get_files_to_clean():
+            if not t.isdir():
+                display("Removed " + str(t))
+        self._clean_targets(remove=False)
+
+    def remove(self):
+        for t in self._get_files_to_clean():
+            try:
+                removed = t.remove()
+            except OSError, e:
+                # An OSError may indicate something like a permissions
+                # issue, an IOError would indicate something like
+                # the file not existing.  In either case, print a
+                # message and keep going to try to remove as many
+                # targets aa possible.
+                print "scons: Could not remove '%s':" % str(t), e.strerror
+            else:
+                if removed:
+                    display("Removed " + str(t))
+        self._clean_targets(remove=True)
 
     execute = remove
 
@@ -1021,13 +1025,17 @@ def _main(parser):
     # in case they disabled the warning in the SConscript files.
     if python_version_deprecated():
         msg = "Support for pre-%s Python version (%s) is deprecated.\n" + \
-              "    If this will cause hardship, contact dev@scons.tigris.org."
+              "    If this will cause hardship, contact scons-dev@scons.org"
         deprecated_version_string = ".".join(map(str, deprecated_python_version))
         SCons.Warnings.warn(SCons.Warnings.PythonVersionWarning,
                             msg % (deprecated_version_string, python_version_string()))
 
     if not options.help:
-        SCons.SConf.CreateConfigHBuilder(SCons.Defaults.DefaultEnvironment())
+        # [ ] Clarify why we need to create Builder here at all, and
+        #     why it is created in DefaultEnvironment
+        # https://bitbucket.org/scons/scons/commits/d27a548aeee8ad5e67ea75c2d19a7d305f784e30
+        if SCons.SConf.NeedConfigHBuilder():
+            SCons.SConf.CreateConfigHBuilder(SCons.Defaults.DefaultEnvironment())
 
     # Now re-parse the command-line options (any to the left of a '--'
     # argument, that is) with any user-defined command-line options that
@@ -1343,7 +1351,7 @@ def main():
         pass
     parts.append(version_string("engine", SCons))
     parts.append(path_string("engine", SCons))
-    parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation")
+    parts.append("Copyright (c) 2001 - 2014 The SCons Foundation")
     version = ''.join(parts)
 
     import SConsOptions
index 09f71b77c0004a1847181d274705af7069ab618c..10c3a981e3f0af68804e4bf743b56cbcd8e0d82e 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Script/SConsOptions.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Script/SConsOptions.py  2014/07/05 09:42:21 garyo"
 
 import optparse
 import re
index 52aade2529e68773785ab9498f1febcb54c4e8ad..9f837aa2ab082a3e79a554e67d22702226c31ddf 100644 (file)
@@ -6,7 +6,7 @@ files.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@ files.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 from __future__ import division
 
-__revision__ = "src/engine/SCons/Script/SConscript.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Script/SConscript.py  2014/07/05 09:42:21 garyo"
 
 import SCons
 import SCons.Action
index c27dacdaaaac5bf14ba9578907af9940ced59f21..d327753e95f1067a7cfa8c14e315e2a5282969b2 100644 (file)
@@ -12,7 +12,7 @@ it goes here.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -34,7 +34,7 @@ it goes here.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Script/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Script/__init__.py  2014/07/05 09:42:21 garyo"
 
 import time
 start_time = time.time()
index 66803ddca8d464f50c12de36f45eabcea8de91c8..458179300f829ddfc02582c2e26d5a8eb3baf9d8 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Sig.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Sig.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Place-holder for the old SCons.Sig module hierarchy
 
index 0ca649075e16eecad805499821a56f821eeb49d2..1246e368824952cbc15ac72088b779d955e57a67 100644 (file)
@@ -5,7 +5,7 @@ SCons string substitution.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ SCons string substitution.
 # 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__ = "src/engine/SCons/Subst.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Subst.py  2014/07/05 09:42:21 garyo"
 
 import collections
 import re
index 5e4851a0cd0c7980697e8d4e669bc4fce1d5a373..2c5ca5e1d2ef383d4c000df37b4a79761df44ed3 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -47,7 +47,7 @@ interface and the SCons build engine.  There are two key classes here:
         target(s) that it decides need to be evaluated and/or built.
 """
 
-__revision__ = "src/engine/SCons/Taskmaster.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Taskmaster.py  2014/07/05 09:42:21 garyo"
 
 from itertools import chain
 import operator
index 0d96b3d45c557f36ad3fc781c9f3af5a7e08a04f..dbe8d528982b37ab9ec060904aba80dc3c00a57f 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/386asm.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/386asm.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Tool.PharLapCommon import addPharLapPaths
 import SCons.Util
index f99054c365e5e9bc122981908fc02d472c7a0ae4..1f20f01f436019cd0357738d8e3eb4e6b0703606 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/BitKeeper.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/BitKeeper.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index 035ee6300478cbd35576f25eb450e92cb92e95d5..9b083684c803dd1c2c57c745458477bca92d6c5a 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/CVS.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/CVS.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
diff --git a/scons-local/SCons/Tool/DCommon.py b/scons-local/SCons/Tool/DCommon.py
new file mode 100644 (file)
index 0000000..ebced53
--- /dev/null
@@ -0,0 +1,56 @@
+"""SCons.Tool.DCommon
+
+Common code for the various D tools.
+
+Coded by Russel Winder (russel@winder.org.uk)
+2012-09-06
+"""
+#
+# Copyright (c) 2001 - 2014 The SCons Foundation
+#
+# 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__ = "src/engine/SCons/Tool/DCommon.py  2014/07/05 09:42:21 garyo"
+
+import os.path
+
+def isD(env, source):
+    if not source:
+        return 0
+    for s in source:
+        if s.sources:
+            ext = os.path.splitext(str(s.sources[0]))[1]
+            if ext == '.d':
+                return 1
+    return 0
+
+def addDPATHToEnv(env, executable):
+    dPath = env.WhereIs(executable)
+    if dPath:
+        phobosDir = dPath[:dPath.rindex(executable)] + '/../src/phobos'
+        if os.path.isdir(phobosDir):
+            env.Append(DPATH=[phobosDir])
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
index bd211ef6973af139402b025ffee9a548df67b128..6a41afb7348703db1fa0175a4bf39371e07154a7 100644 (file)
@@ -5,7 +5,7 @@ Stuff for processing Fortran, common to all fortran dialects.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ Stuff for processing Fortran, common to all fortran dialects.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/FortranCommon.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/FortranCommon.py  2014/07/05 09:42:21 garyo"
 
 import re
 import os.path
index db8d950923d9b364e7699b26bb280323276513d8..f71a524f93d7cd5915ce95bc5b60b531dbf7e8cf 100644 (file)
@@ -3,7 +3,7 @@
 Used by several tools of `gettext` toolset.
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -24,7 +24,7 @@ Used by several tools of `gettext` toolset.
 # 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__ = "src/engine/SCons/Tool/GettextCommon.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/GettextCommon.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Warnings
 import re
index 8e5473dc9a5b81247dde39e6bfd0291b82dfc32e..55dc5581c1359f8aece321aa780c89173aa2b9bd 100644 (file)
@@ -5,7 +5,7 @@ Stuff for processing Java.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ Stuff for processing Java.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/JavaCommon.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/JavaCommon.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
@@ -244,7 +244,8 @@ if java_parsing:
                 return self
             # If that's an inner class which is declared in a method, it
             # requires an index prepended to the class-name, e.g.
-            # 'Foo$1Inner' (Tigris Issue 2087)
+            # 'Foo$1Inner'
+            # http://scons.tigris.org/issues/show_bug.cgi?id=2087
             if self.outer_state.localClasses and \
                 self.outer_state.stackBrackets[-1] > \
                 self.outer_state.stackBrackets[-2]+1:
index 6efdcce7b7d5478156ac8fa5a3f08ce5071bb269..9d09b669cd0f8a95730e6b66d9661b0df5f23052 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """
 Common functions for Microsoft Visual Studio and Visual C/C++.
index 3fc4eedebcedd5565d9fbb431d8994e093352d07..4edeea7f1cbac12db31ee123f422c7855b883ea9 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Module to define supported Windows chip architectures.
 """
index ddb4de33f93312c4147a46770e7c924a64d24015..4bccae7a05c39f1c9261e0af02d878d10b78ca25 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/MSCommon/common.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/MSCommon/common.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """
 Common helper functions for working with the Microsoft tool chain.
@@ -149,7 +149,6 @@ def get_output(vcbat, args = None, env = None):
 # VS100 and VS110: Still set, but modern MSVC setup scripts will
 # discard these if registry has values.  However Intel compiler setup
 # script still requires these as of 2013/2014.
-        'VS120COMNTOOLS',
         'VS110COMNTOOLS',
         'VS100COMNTOOLS',
         'VS90COMNTOOLS',
index fef75eb867782287dbb6d1b5609fe025d5bd8ffc..1ff9654b0677052725e9297a41ba4375d586b1b0 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -20,7 +20,7 @@
 # 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__ = "src/engine/SCons/Tool/MSCommon/netframework.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/MSCommon/netframework.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """
 """
index 320ef4c380c2023704e92e5f1622478de55ab3d0..fcf25e9a97b05d2b36f331872929c65077d617cd 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Module to detect the Platform/Windows SDK
 
index 3824438ddac94e144c8a8e233112700ee61728f0..19bcc7d306d327f4c2ff7520dd7efbbe440222c3 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 #   * test on 64 bits XP +  VS 2005 (and VS 6 if possible)
 #   * SDK
 #   * Assembly
-__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Module for Visual C/C++ detection and configuration.
 """
@@ -89,6 +89,7 @@ _ARCH_TO_CANONICAL = {
 _HOST_TARGET_ARCH_TO_BAT_ARCH = {
     ("x86", "x86"): "x86",
     ("x86", "amd64"): "x86_amd64",
+    ("x86", "x86_amd64"): "x86_amd64",
     ("amd64", "x86_amd64"): "x86_amd64", # This is present in (at least) VS2012 express
     ("amd64", "amd64"): "amd64",
     ("amd64", "x86"): "x86",
@@ -131,11 +132,15 @@ def get_host_target(env):
 
     return (host, target,req_target_platform)
 
-_VCVER = ["12.0", "11.0", "11.0Exp", "10.0", "10.0Exp", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
+# If you update this, update SupportedVSList in Tool/MSCommon/vs.py, and the
+# MSVC_VERSION documentation in Tool/msvc.xml.
+_VCVER = ["12.0", "12.0Exp", "11.0", "11.0Exp", "10.0", "10.0Exp", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
 
 _VCVER_TO_PRODUCT_DIR = {
-        '12.0': [
+        '12.0' : [
             r'Microsoft\VisualStudio\12.0\Setup\VC\ProductDir'],
+        '12.0Exp' : [
+            r'Microsoft\VCExpress\12.0\Setup\VC\ProductDir'],
         '11.0': [
             r'Microsoft\VisualStudio\11.0\Setup\VC\ProductDir'],
         '11.0Exp' : [
@@ -300,8 +305,21 @@ def reset_installed_vcs():
     """Make it try again to find VC.  This is just for the tests."""
     __INSTALLED_VCS_RUN = None
 
+# Running these batch files isn't cheap: most of the time spent in
+# msvs.generate() is due to vcvars*.bat.  In a build that uses "tools='msvs'"
+# in multiple environments, for example:
+#    env1 = Environment(tools='msvs')
+#    env2 = Environment(tools='msvs')
+# we can greatly improve the speed of the second and subsequent Environment
+# (or Clone) calls by memoizing the environment variables set by vcvars*.bat.
+script_env_stdout_cache = {}
 def script_env(script, args=None):
-    stdout = common.get_output(script, args)
+    cache_key = (script, args)
+    stdout = script_env_stdout_cache.get(cache_key, None)
+    if stdout is None:
+        stdout = common.get_output(script, args)
+        script_env_stdout_cache[cache_key] = stdout
+
     # Stupid batch files do not set return code: we take a look at the
     # beginning of the output for an error message instead
     olines = stdout.splitlines()
@@ -418,7 +436,7 @@ def msvc_find_valid_batch_script(env,version):
         if not vc_script and sdk_script:
             debug('vc.py:msvc_find_valid_batch_script() use_script 4: trying sdk script: %s'%(sdk_script))
             try:
-                d = script_env(sdk_script,args=[])
+                d = script_env(sdk_script)
             except BatchFileExecutionError,e:
                 debug('vc.py:msvc_find_valid_batch_script() use_script 5: failed running SDK script %s: Error:%s'%(repr(sdk_script),e))
                 continue
index b11f8c22cefe91bc61077f472fc94f11248b09d7..78697cc35b7c93d58bfb7c887a026e529f9f56da 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py  2014/07/05 09:42:21 garyo"
 
 __doc__ = """Module to detect Visual Studio and/or Visual C/C++
 """
@@ -73,7 +73,7 @@ class VisualStudio(object):
             debug('find_vs_dir():  no installed VC %s' % self.vc_version)
             return None
         return dir
-        
+
     def find_vs_dir_by_reg(self):
         root = 'Software\\'
 
@@ -91,13 +91,13 @@ class VisualStudio(object):
                 debug('find_vs_dir_by_reg(): found VS in registry: %s' % comps)
                 return comps
         return None
-    
+
     def find_vs_dir(self):
         """ Can use registry or location of VC to find vs dir
         First try to find by registry, and if that fails find via VC dir
         """
-        
-        
+
+
         if True:
             vs_dir=self.find_vs_dir_by_reg()
             return vs_dir
@@ -115,7 +115,7 @@ class VisualStudio(object):
             debug('find_executable():  %s not on file system' % executable)
             return None
         return executable
-    
+
     #
 
     def get_batch_file(self):
@@ -199,111 +199,96 @@ class VisualStudio(object):
 # good money for in preference to whatever Microsoft makes available
 # for free.
 #
-# If you update this list, update the documentation in Tool/msvs.xml.
+# If you update this list, update _VCVER and _VCVER_TO_PRODUCT_DIR in
+# Tool/MSCommon/vc.py, and the MSVC_VERSION documentation in Tool/msvc.xml.
 
 SupportedVSList = [
-    # Visual Studio 2010
-    # TODO: find the settings, perhaps from someone with a CTP copy?
-    #VisualStudio('TBD',
-    #             hkey_root=r'TBD',
-    #             common_tools_var='TBD',
-    #             executable_path=r'TBD',
-    #             default_dirname='TBD',
-    #),
+    # Visual Studio 2013
     VisualStudio('12.0',
-                 sdk_version='6.1',
-                 hkeys=[r'Microsoft\VisualStudio\12.0'],
+                 vc_version='12.0',
+                 sdk_version='8.1A',
+                 hkeys=[r'Microsoft\VisualStudio\12.0\Setup\VS\ProductDir'],
                  common_tools_var='VS120COMNTOOLS',
-                 executable_path=r'Common7\IDE\VDExpress.exe',
+                 executable_path=r'Common7\IDE\devenv.com',
                  batch_file_path=r'Common7\Tools\vsvars32.bat',
-                 default_dirname='Microsoft Visual Studio 12',
                  supported_arch=['x86', 'amd64'],
     ),
-    
-    # Visual Studio 11
-    # The batch file we look for is in the VC directory,
-    # so the devenv.com executable is up in ..\..\Common7\IDE.
+
+    # Visual C++ 2013 Express Edition (for Desktop)
+    VisualStudio('12.0Exp',
+                 vc_version='12.0',
+                 sdk_version='8.1A',
+                 hkeys=[r'Microsoft\VisualStudio\12.0\Setup\VS\ProductDir'],
+                 common_tools_var='VS120COMNTOOLS',
+                 executable_path=r'Common7\IDE\WDExpress.exe',
+                 batch_file_path=r'Common7\Tools\vsvars32.bat',
+                 supported_arch=['x86', 'amd64'],
+    ),
+
+    # Visual Studio 2012
     VisualStudio('11.0',
-                 sdk_version='6.1',
+                 sdk_version='8.0A',
                  hkeys=[r'Microsoft\VisualStudio\11.0\Setup\VS\ProductDir'],
                  common_tools_var='VS110COMNTOOLS',
                  executable_path=r'Common7\IDE\devenv.com',
                  batch_file_path=r'Common7\Tools\vsvars32.bat',
-                 default_dirname='Microsoft Visual Studio 11',
                  supported_arch=['x86', 'amd64'],
     ),
 
-    # Visual C++ 11 Express Edition
-    # The batch file we look for is in the VC directory,
-    # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
+    # Visual C++ 2012 Express Edition (for Desktop)
     VisualStudio('11.0Exp',
                  vc_version='11.0',
-                 sdk_version='6.1',
-                 hkeys=[r'Microsoft\VCExpress\11.0\Setup\VS\ProductDir'],
+                 sdk_version='8.0A',
+                 hkeys=[r'Microsoft\VisualStudio\11.0\Setup\VS\ProductDir'],
                  common_tools_var='VS110COMNTOOLS',
-                 executable_path=r'Common7\IDE\VCExpress.exe',
+                 executable_path=r'Common7\IDE\WDExpress.exe',
                  batch_file_path=r'Common7\Tools\vsvars32.bat',
-                 default_dirname='Microsoft Visual Studio 11',
-                 supported_arch=['x86'],
+                 supported_arch=['x86', 'amd64'],
     ),
 
     # Visual Studio 2010
-    # The batch file we look for is in the VC directory,
-    # so the devenv.com executable is up in ..\..\Common7\IDE.
     VisualStudio('10.0',
-                 sdk_version='6.1',
+                 sdk_version='7.0A',
                  hkeys=[r'Microsoft\VisualStudio\10.0\Setup\VS\ProductDir'],
                  common_tools_var='VS100COMNTOOLS',
                  executable_path=r'Common7\IDE\devenv.com',
                  batch_file_path=r'Common7\Tools\vsvars32.bat',
-                 default_dirname='Microsoft Visual Studio 10',
                  supported_arch=['x86', 'amd64'],
     ),
 
     # Visual C++ 2010 Express Edition
-    # The batch file we look for is in the VC directory,
-    # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
     VisualStudio('10.0Exp',
                  vc_version='10.0',
-                 sdk_version='6.1',
+                 sdk_version='7.0A',
                  hkeys=[r'Microsoft\VCExpress\10.0\Setup\VS\ProductDir'],
                  common_tools_var='VS100COMNTOOLS',
                  executable_path=r'Common7\IDE\VCExpress.exe',
                  batch_file_path=r'Common7\Tools\vsvars32.bat',
-                 default_dirname='Microsoft Visual Studio 10',
                  supported_arch=['x86'],
     ),
 
     # Visual Studio 2008
-    # The batch file we look for is in the VC directory,
-    # so the devenv.com executable is up in ..\..\Common7\IDE.
     VisualStudio('9.0',
-                 sdk_version='6.1',
+                 sdk_version='6.0A',
                  hkeys=[r'Microsoft\VisualStudio\9.0\Setup\VS\ProductDir'],
                  common_tools_var='VS90COMNTOOLS',
                  executable_path=r'Common7\IDE\devenv.com',
                  batch_file_path=r'Common7\Tools\vsvars32.bat',
-                 default_dirname='Microsoft Visual Studio 9',
                  supported_arch=['x86', 'amd64'],
     ),
 
     # Visual C++ 2008 Express Edition
-    # The batch file we look for is in the VC directory,
-    # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
     VisualStudio('9.0Exp',
                  vc_version='9.0',
-                 sdk_version='6.1',
+                 sdk_version='6.0A',
                  hkeys=[r'Microsoft\VCExpress\9.0\Setup\VS\ProductDir'],
                  common_tools_var='VS90COMNTOOLS',
                  executable_path=r'Common7\IDE\VCExpress.exe',
                  batch_file_path=r'Common7\Tools\vsvars32.bat',
-                 default_dirname='Microsoft Visual Studio 9',
                  supported_arch=['x86'],
     ),
 
     # Visual Studio 2005
-    # The batch file we look for is in the VC directory,
-    # so the devenv.com executable is up in ..\..\Common7\IDE.
     VisualStudio('8.0',
                  sdk_version='6.0A',
                  hkeys=[r'Microsoft\VisualStudio\8.0\Setup\VS\ProductDir'],
@@ -315,8 +300,6 @@ SupportedVSList = [
     ),
 
     # Visual C++ 2005 Express Edition
-    # The batch file we look for is in the VC directory,
-    # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
     VisualStudio('8.0Exp',
                  vc_version='8.0Exp',
                  sdk_version='6.0A',
@@ -329,8 +312,6 @@ SupportedVSList = [
     ),
 
     # Visual Studio .NET 2003
-    # The batch file we look for is in the Common7\Tools directory,
-    # so the devenv.com executable is next door in ..\IDE.
     VisualStudio('7.1',
                  sdk_version='6.0',
                  hkeys=[r'Microsoft\VisualStudio\7.1\Setup\VS\ProductDir'],
@@ -342,8 +323,6 @@ SupportedVSList = [
     ),
 
     # Visual Studio .NET
-    # The batch file we look for is in the Common7\Tools directory,
-    # so the devenv.com executable is next door in ..\IDE.
     VisualStudio('7.0',
                  sdk_version='2003R2',
                  hkeys=[r'Microsoft\VisualStudio\7.0\Setup\VS\ProductDir'],
@@ -402,11 +381,11 @@ def reset_installed_visual_studios():
     InstalledVSMap  = None
     for vs in SupportedVSList:
         vs.reset()
-        
+
     # Need to clear installed VC's as well as they are used in finding
     # installed VS's
     SCons.Tool.MSCommon.vc.reset_installed_vcs()
-        
+
 
 # We may be asked to update multiple construction environments with
 # SDK information.  When doing this, we check on-disk for whether
@@ -471,7 +450,7 @@ def get_default_version(env):
 
     If no version was requested by the user through the MSVS environment
     variable, query all the available the visual studios through
-    query_versions, and take the highest one.
+    get_installed_visual_studios, and take the highest one.
 
     Return
     ------
@@ -479,6 +458,7 @@ def get_default_version(env):
         the default version.
     """
     if 'MSVS' not in env or not SCons.Util.is_Dict(env['MSVS']):
+        # get all versions, and remember them for speed later
         versions = [vs.version for vs in get_installed_visual_studios()]
         env['MSVS'] = {'VERSIONS' : versions}
     else:
@@ -488,6 +468,8 @@ def get_default_version(env):
         if versions:
             env['MSVS_VERSION'] = versions[0] #use highest version by default
         else:
+            debug('get_default_version: WARNING: no installed versions found, '
+                  'using first in SupportedVSList (%s)'%SupportedVSList[0].version)
             env['MSVS_VERSION'] = SupportedVSList[0].version
 
     env['MSVS']['VERSION'] = env['MSVS_VERSION']
index 3e132ad35b17e4f1bbd3148d294281e9739d9d53..4b84de4d53ad0e99b32fdb73ff9a91e8dfc80fb2 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/Perforce.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/Perforce.py  2014/07/05 09:42:21 garyo"
 
 import os
 
index dc5e9dbb4a39ee4ab8a5d498ea6b797f8966b458..247d918ed7cc4b1c82a66b15f59aecc2131f3af7 100644 (file)
@@ -7,7 +7,7 @@ Phar Lap ETS tool chain.  Right now, this is linkloc and
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@ Phar Lap ETS tool chain.  Right now, this is linkloc and
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/PharLapCommon.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/PharLapCommon.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index 4ecb4992c0b0b2393bc812eab76612ffbc009a46..20f85d44a43198ccfb1225f6020a04cf330b7820 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/RCS.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/RCS.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index cee057b6a89a205cb3bf621e884415362145f30a..a26cec4267c6906e3fa5f939ab0de9c7263354c6 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/SCCS.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/SCCS.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index 3b45b12b948e44143941db305149f41e3e82d5ea..6ea0684880df2db31b8222cfb843cecea4a8d098 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/Subversion.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/Subversion.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index b946507a010d62901fd00f1abda8961bb306fecb..947b7a59fa8d1345d3b32df4b843756cd35b3cb7 100644 (file)
@@ -14,7 +14,7 @@ tool definition.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -35,7 +35,7 @@ tool definition.
 # 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__ = "src/engine/SCons/Tool/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/__init__.py  2014/07/05 09:42:21 garyo"
 
 import imp
 import sys
@@ -705,7 +705,7 @@ def tool_list(platform, env):
         assemblers = ['masm', 'nasm', 'gas', '386asm' ]
         fortran_compilers = ['gfortran', 'g77', 'ifl', 'cvf', 'f95', 'f90', 'fortran']
         ars = ['mslib', 'ar', 'tlib']
-        other_plat_tools=['msvs','midl']
+        other_plat_tools = ['msvs', 'midl']
     elif str(platform) == 'os2':
         "prefer IBM tools on OS/2"
         linkers = ['ilink', 'gnulink', ]#'mslink']
@@ -772,6 +772,9 @@ def tool_list(platform, env):
         fortran_compilers = ['gfortran', 'g77', 'ifort', 'ifl', 'f95', 'f90', 'f77']
         ars = ['ar', 'mslib']
 
+    if not str(platform) == 'win32':
+        other_plat_tools += ['m4', 'rpm']
+
     c_compiler = FindTool(c_compilers, env) or c_compilers[0]
 
     # XXX this logic about what tool provides what should somehow be
@@ -795,12 +798,13 @@ def tool_list(platform, env):
         fortran_compiler = FindTool(fortran_compilers, env) or fortran_compilers[0]
         ar = FindTool(ars, env) or ars[0]
 
+    d_compilers = ['dmd', 'gdc', 'ldc']
+    d_compiler = FindTool(d_compilers, env) or d_compilers[0]
+
     other_tools = FindAllTools(other_plat_tools + [
-                               'dmd',
                                #TODO: merge 'install' into 'filesystem' and
                                # make 'filesystem' the default
                                'filesystem',
-                               'm4',
                                'wix', #'midl', 'msvs',
                                # Parser generators
                                'lex', 'yacc',
@@ -812,14 +816,14 @@ def tool_list(platform, env):
                                'dvipdf', 'dvips', 'gs',
                                'tex', 'latex', 'pdflatex', 'pdftex',
                                # Archivers
-                               'tar', 'zip', 'rpm',
+                               'tar', 'zip',
                                # SourceCode factories
                                'BitKeeper', 'CVS', 'Perforce',
                                'RCS', 'SCCS', # 'Subversion',
                                ], env)
 
     tools = ([linker, c_compiler, cxx_compiler,
-              fortran_compiler, assembler, ar]
+              fortran_compiler, assembler, ar, d_compiler]
              + other_tools)
 
     return [x for x in tools if x]
index 6f1ea5b16fc68ff31f3a7a2ae7843d91652995e3..d1dc8f37c137fe31437391bf7ac7ef40de230e44 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/aixc++.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/aixc++.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
@@ -43,32 +43,25 @@ packages = ['vacpp.cmp.core', 'vacpp.cmp.batch', 'vacpp.cmp.C', 'ibmcxx.cmp']
 
 def get_xlc(env):
     xlc = env.get('CXX', 'xlC')
-    xlc_r = env.get('SHCXX', 'xlC_r')
-    return SCons.Platform.aix.get_xlc(env, xlc, xlc_r, packages)
-
-def smart_cxxflags(source, target, env, for_signature):
-    build_dir = env.GetBuildPath()
-    if build_dir:
-        return '-qtempinc=' + os.path.join(build_dir, 'tempinc')
-    return ''
+    return SCons.Platform.aix.get_xlc(env, xlc, packages)
 
 def generate(env):
     """Add Builders and construction variables for xlC / Visual Age
     suite to an Environment."""
-    path, _cxx, _shcxx, version = get_xlc(env)
-    if path:
+    path, _cxx, version = get_xlc(env)
+    if path and _cxx:
         _cxx = os.path.join(path, _cxx)
-        _shcxx = os.path.join(path, _shcxx)
+
+    if 'CXX' not in env:
+        env['CXX'] = _cxx
 
     cplusplus.generate(env)
 
-    env['CXX'] = _cxx
-    env['SHCXX'] = _shcxx
-    env['CXXVERSION'] = version
-    env['SHOBJSUFFIX'] = '.pic.o'
+    if version:
+        env['CXXVERSION'] = version
     
 def exists(env):
-    path, _cxx, _shcxx, version = get_xlc(env)
+    path, _cxx, version = get_xlc(env)
     if path and _cxx:
         xlc = os.path.join(path, _cxx)
         if os.path.exists(xlc):
index bdcb68128b8ec0367f2c7b8e9eb34b8a79bde4ed..fc40a122b6ccc2fd27954f1b270da52db10e6e48 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/aixcc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/aixcc.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
@@ -42,25 +42,25 @@ packages = ['vac.C', 'ibmcxx.cmp']
 
 def get_xlc(env):
     xlc = env.get('CC', 'xlc')
-    xlc_r = env.get('SHCC', 'xlc_r')
-    return SCons.Platform.aix.get_xlc(env, xlc, xlc_r, packages)
+    return SCons.Platform.aix.get_xlc(env, xlc, packages)
 
 def generate(env):
     """Add Builders and construction variables for xlc / Visual Age
     suite to an Environment."""
-    path, _cc, _shcc, version = get_xlc(env)
-    if path:
+    path, _cc, version = get_xlc(env)
+    if path and _cc:
         _cc = os.path.join(path, _cc)
-        _shcc = os.path.join(path, _shcc)
+
+    if 'CC' not in env:
+        env['CC'] = _cc
 
     cc.generate(env)
 
-    env['CC'] = _cc
-    env['SHCC'] = _shcc
-    env['CCVERSION'] = version
+    if version:
+        env['CCVERSION'] = version
 
 def exists(env):
-    path, _cc, _shcc, version = get_xlc(env)
+    path, _cc, version = get_xlc(env)
     if path and _cc:
         xlc = os.path.join(path, _cc)
         if os.path.exists(xlc):
index 3a8400b29c34557992d27cebeff467257da1a9b5..83c06442cc093a659061c5d15d103fe769b32481 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/aixf77.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/aixf77.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index 44a7ca579dd05c29274102f1ddef37c03194193d..1b838439b913f36b0ca53925e62e04f80f808414 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,14 +30,13 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/aixlink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/aixlink.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
 
 import SCons.Util
 
-import aixcc
 import link
 
 cplusplus = __import__('c++', globals(), locals(), [])
@@ -62,12 +61,14 @@ def generate(env):
     env['SHLIBSUFFIX']    = '.a'
 
 def exists(env):
-    path, _cc, _shcc, version = aixcc.get_xlc(env)
-    if path and _cc:
-        xlc = os.path.join(path, _cc)
-        if os.path.exists(xlc):
-            return xlc
-    return None
+    # TODO: sync with link.smart_link() to choose a linker
+    linkers = { 'CXX': ['aixc++'], 'CC': ['aixcc'] }
+    alltools = []
+    for langvar, linktools in linkers.items():
+        if langvar in env: # use CC over CXX when user specified CC but not CXX
+            return SCons.Tool.FindTool(linktools, env)
+        alltools.extend(linktools)
+    return SCons.Tool.FindTool(alltools, env)
 
 # Local Variables:
 # tab-width:4
index 70ad558d96d762ab5f28d5fd803225a348000ad1..1d44433ab849ab6dc2864e7aef11dd50ddf93e12 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/applelink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/applelink.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index d9ef9a42a40929596881abe1e8e15ee7e6b25509..958deb445887627fca7ed1bfad73f3181e67fc8b 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/ar.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/ar.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index d245f7b40edddaeae71ea1a53b1e181057af502e..885baa23c464e80e7d7f9d4c31c9126eed69e365 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/as.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/as.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index ce4f23484618819a0a97f37eea1c46097a9ee4ac..651f15feccc75d0c116f2d63ea362276f30ce076 100644 (file)
@@ -5,7 +5,7 @@ XXX
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ XXX
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/bcc32.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/bcc32.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index 7b98b767d85aa3f17910678b4d1db53435bdfc44..a35bdf9bf21e03b7eeb777e09ca230e307390aed 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/c++.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/c++.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
@@ -72,7 +72,8 @@ def generate(env):
 
     SCons.Tool.cc.add_common_cc_variables(env)
 
-    env['CXX']        = 'c++'
+    if 'CXX' not in env:
+        env['CXX']    = env.Detect(compilers) or compilers[0]
     env['CXXFLAGS']   = SCons.Util.CLVar('')
     env['CXXCOM']     = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
     env['SHCXX']      = '$CXX'
@@ -90,7 +91,7 @@ def generate(env):
     env['CXXFILESUFFIX'] = '.cc'
 
 def exists(env):
-    return env.Detect(compilers)
+    return env.Detect(env.get('CXX', compilers))
 
 # Local Variables:
 # tab-width:4
index 0702138d70129e02007f5caee3f19373f11f6ee3..5b5ab05ce2370a4a7c57d620909d2acaeeac7041 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/cc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/cc.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Tool
 import SCons.Defaults
@@ -62,6 +62,8 @@ def add_common_cc_variables(env):
     if 'SHCCFLAGS' not in env:
         env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
 
+compilers = ['cc']
+
 def generate(env):
     """
     Add Builders and construction variables for C compilers to an Environment.
@@ -76,7 +78,8 @@ def generate(env):
 
     add_common_cc_variables(env)
 
-    env['CC']        = 'cc'
+    if 'CC' not in env:
+        env['CC']    = env.Detect(compilers) or compilers[0]
     env['CFLAGS']    = SCons.Util.CLVar('')
     env['CCCOM']     = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
     env['SHCC']      = '$CC'
@@ -93,7 +96,7 @@ def generate(env):
     env['CFILESUFFIX'] = '.c'
 
 def exists(env):
-    return env.Detect('cc')
+    return env.Detect(env.get('CC', compilers))
 
 # Local Variables:
 # tab-width:4
index d35c1b13d056ad6e304c9dc1dd91db89c41a3a3f..3b712adba393d3e52f0faf22645cfd32e156a7a5 100644 (file)
@@ -5,7 +5,7 @@ Tool-specific initialization for the Compaq Visual Fortran compiler.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ Tool-specific initialization for the Compaq Visual Fortran compiler.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/cvf.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/cvf.py  2014/07/05 09:42:21 garyo"
 
 import fortran
 
index ccb215c8a19137aa5d7e4e6eb5ebb232b84877a1..4b733cdcd8aa67f05a7f595bde22480de0e290d3 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/default.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/default.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Tool
 
index 67355b1ad52a14d64ba2bd9723e4957d842a2b30..aae9a27409aed1f3e217b0892bba0e435cec6087 100644 (file)
@@ -3,14 +3,14 @@
 Tool-specific initialization for the Digital Mars D compiler.
 (http://digitalmars.com/d)
 
-Coded by Andy Friesen (andy@ikagames.com)
+Originally coded by Andy Friesen (andy@ikagames.com)
 15 November 2003
 
-Amended by Russel Winder (russel@russel.org.uk)
-2010-02-07
+Evolved by Russel Winder (russel@winder.org.uk)
+2010-02-07 onwards
 
 There are a number of problems with this script at this point in time.
-The one that irritates me the most is the Windows linker setup.  The D
+The one that irritates the most is the Windows linker setup.  The D
 linker doesn't have a way to add lib paths on the commandline, as far
 as I can see.  You have to specify paths relative to the SConscript or
 use absolute paths.  To hack around it, add '#/blah'.  This will link
@@ -18,14 +18,15 @@ blah.lib from the directory where SConstruct resides.
 
 Compiler variables:
     DC - The name of the D compiler to use.  Defaults to dmd or gdmd,
-    whichever is found.
+        whichever is found.
     DPATH - List of paths to search for import modules.
     DVERSIONS - List of version tags to enable when compiling.
     DDEBUG - List of debug tags to enable when compiling.
 
 Linker related variables:
     LIBS - List of library files to link in.
-    DLINK - Name of the linker to use.  Defaults to dmd or gdmd.
+    DLINK - Name of the linker to use.  Defaults to dmd or gdmd,
+        whichever is found.
     DLINKFLAGS - List of linker flags.
 
 Lib tool variables:
@@ -35,7 +36,7 @@ Lib tool variables:
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -57,9 +58,10 @@ Lib tool variables:
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/dmd.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/dmd.py  2014/07/05 09:42:21 garyo"
 
 import os
+import subprocess
 
 import SCons.Action
 import SCons.Builder
@@ -67,57 +69,36 @@ import SCons.Defaults
 import SCons.Scanner.D
 import SCons.Tool
 
-# Adapted from c++.py
-def isD(source):
-    if not source:
-        return 0
+import SCons.Tool.DCommon
 
-    for s in source:
-        if s.sources:
-            ext = os.path.splitext(str(s.sources[0]))[1]
-            if ext == '.d':
-                return 1
-    return 0
-
-smart_link = {}
-
-smart_lib = {}
 
 def generate(env):
-    global smart_link
-    global smart_lib
-
     static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
 
-    DAction = SCons.Action.Action('$DCOM', '$DCOMSTR')
-
-    static_obj.add_action('.d', DAction)
-    shared_obj.add_action('.d', DAction)
+    static_obj.add_action('.d', SCons.Defaults.DAction)
+    shared_obj.add_action('.d', SCons.Defaults.ShDAction)
     static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
     shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
 
-    dc = env.Detect(['dmd', 'gdmd'])
-    env['DC'] = dc
+    env['DC'] = env.Detect(['dmd', 'gdmd'])
     env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -of$TARGET $SOURCES'
     env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)}  $)'
     env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)}  $)'
     env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
     env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
 
+    env['SHDC'] = '$DC'
+    env['SHDCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -fPIC -of$TARGET $SOURCES'
+
     env['DPATH'] = ['#/']
     env['DFLAGS'] = []
     env['DVERSIONS'] = []
     env['DDEBUG'] = []
 
-    if dc:
-        # Add the path to the standard library.
-        # This is merely for the convenience of the dependency scanner.
-        dmd_path = env.WhereIs(dc)
-        if dmd_path:
-            x = dmd_path.rindex(dc)
-            phobosDir = dmd_path[:x] + '/../src/phobos'
-            if os.path.isdir(phobosDir):
-                env.Append(DPATH = [phobosDir])
+    env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0
+
+    if env['DC']:
+        SCons.Tool.DCommon.addDPATHToEnv(env, env['DC'])
 
     env['DINCPREFIX'] = '-I'
     env['DINCSUFFIX'] = ''
@@ -129,106 +110,39 @@ def generate(env):
     env['DFLAGSUFFIX'] = ''
     env['DFILESUFFIX'] = '.d'
 
-    # Need to use the Digital Mars linker/lib on windows.
-    # *nix can just use GNU link.
-    if env['PLATFORM'] == 'win32':
-        env['DLINK'] = '$DC'
-        env['DLINKCOM'] = '$DLINK -of$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
-        env['DLIB'] = 'lib'
-        env['DLIBCOM'] = '$DLIB $_DLIBFLAGS -c $TARGET $SOURCES $_DLINKLIBFLAGS'
-
-        env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
-        env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
-        env['DLINKFLAGS'] = []
-        env['DLIBLINKPREFIX'] = ''
-        env['DLIBLINKSUFFIX'] = '.lib'
-        env['DLIBFLAGPREFIX'] = '-'
-        env['DLIBFLAGSUFFIX'] = ''
-        env['DLINKFLAGPREFIX'] = '-'
-        env['DLINKFLAGSUFFIX'] = ''
-
-        SCons.Tool.createStaticLibBuilder(env)
-
-        # Basically, we hijack the link and ar builders with our own.
-        # these builders check for the presence of D source, and swap out
-        # the system's defaults for the Digital Mars tools.  If there's no D
-        # source, then we silently return the previous settings.
-        linkcom = env.get('LINKCOM')
-        try:
-            env['SMART_LINKCOM'] = smart_link[linkcom]
-        except KeyError:
-            def _smartLink(source, target, env, for_signature,
-                           defaultLinker=linkcom):
-                if isD(source):
-                    # XXX I'm not sure how to add a $DLINKCOMSTR variable
-                    # so that it works with this _smartLink() logic,
-                    # and I don't have a D compiler/linker to try it out,
-                    # so we'll leave it alone for now.
-                    return '$DLINKCOM'
-                else:
-                    return defaultLinker
-            env['SMART_LINKCOM'] = smart_link[linkcom] = _smartLink
-
-        arcom = env.get('ARCOM')
-        try:
-            env['SMART_ARCOM'] = smart_lib[arcom]
-        except KeyError:
-            def _smartLib(source, target, env, for_signature,
-                         defaultLib=arcom):
-                if isD(source):
-                    # XXX I'm not sure how to add a $DLIBCOMSTR variable
-                    # so that it works with this _smartLib() logic, and
-                    # I don't have a D compiler/archiver to try it out,
-                    # so we'll leave it alone for now.
-                    return '$DLIBCOM'
-                else:
-                    return defaultLib
-            env['SMART_ARCOM'] = smart_lib[arcom] = _smartLib
-
-        # It is worth noting that the final space in these strings is
-        # absolutely pivotal.  SCons sees these as actions and not generators
-        # if it is not there. (very bad)
-        env['ARCOM'] = '$SMART_ARCOM '
-        env['LINKCOM'] = '$SMART_LINKCOM '
-    else: # assuming linux
-        linkcom = env.get('LINKCOM')
-        try:
-            env['SMART_LINKCOM'] = smart_link[linkcom]
-        except KeyError:
-            def _smartLink(source, target, env, for_signature,
-                           defaultLinker=linkcom, dc=dc):
-                if isD(source):
-                    try:
-                        libs = env['LIBS']
-                    except KeyError:
-                        libs = []
-                    if dc == 'dmd':
-                        # TODO: This assumes that the dmd executable is in the
-                        # bin directory and that the libraries are in a peer
-                        # directory lib.  This true of the Digital Mars
-                        # distribution but . . .
-                        import glob
-                        dHome = env.WhereIs(dc).replace('/dmd' , '/..')
-                        if glob.glob(dHome + '/lib/*phobos2*'):
-                            if 'phobos2' not in libs:
-                                env.Append(LIBPATH = [dHome + '/lib'])
-                                env.Append(LIBS = ['phobos2'])
-                                # TODO: Find out when there will be a
-                                # 64-bit version of D.
-                                env.Append(LINKFLAGS = ['-m32'])
-                        else:
-                            if 'phobos' not in libs:
-                                env.Append(LIBS = ['phobos'])
-                    elif dc is 'gdmd':
-                        env.Append(LIBS = ['gphobos'])
-                    if 'pthread' not in libs:
-                        env.Append(LIBS = ['pthread'])
-                    if 'm' not in libs:
-                        env.Append(LIBS = ['m'])
-                return defaultLinker
-            env['SMART_LINKCOM'] = smart_link[linkcom] = _smartLink
-
-        env['LINKCOM'] = '$SMART_LINKCOM '
+    env['DLINK'] = '$DC'
+    env['DLINKFLAGS'] = SCons.Util.CLVar('')
+    env['DLINKCOM'] = '$DLINK -of$TARGET $DLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS'
+
+    env['DSHLINK'] = '$DC'
+    env['DSHLINKFLAGS'] = SCons.Util.CLVar('$DLINKFLAGS -shared -defaultlib=libphobos2.so')
+    env['SHDLINKCOM'] = '$DLINK -of$TARGET $DSHLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS'
+
+    env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-L-l'
+    env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else ''
+    env['_DLIBFLAGS'] = '${_stripixes(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES,  __env__)}'
+
+    env['DLIBDIRPREFIX'] = '-L-L'
+    env['DLIBDIRSUFFIX'] = ''
+    env['_DLIBDIRFLAGS'] = '$( ${_concat(DLIBDIRPREFIX, LIBPATH, DLIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+
+
+    env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr'
+    env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '')
+
+    #env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
+
+    env['DLIBFLAGPREFIX'] = '-'
+    env['DLIBFLAGSUFFIX'] = ''
+
+    # __RPATH is set to $_RPATH in the platform specification if that
+    # platform supports it.
+    env['DRPATHPREFIX'] = '-L-rpath='
+    env['DRPATHSUFFIX'] = ''
+    env['_DRPATH'] = '${_concat(DRPATHPREFIX, RPATH, DRPATHSUFFIX, __env__)}'
+
+    SCons.Tool.createStaticLibBuilder(env)
+
 
 def exists(env):
     return env.Detect(['dmd', 'gdmd'])
index 72ea175863ee823b15d54cb671288eda1b0187bb..26a1a953f4064358a41c580485006975c00a0121 100644 (file)
@@ -242,7 +242,7 @@ def __xml_scan(node, env, path, arg):
 
     styledoc = libxml2.parseFile(xsl_file)
     style = libxslt.parseStylesheetDoc(styledoc)
-    doc = libxml2.parseFile(str(node))
+    doc = libxml2.readFile(str(node), None, libxml2.XML_PARSE_NOENT)
     result = style.applyStylesheet(doc, None)
 
     depfiles = []
@@ -348,7 +348,7 @@ def __xinclude_libxml2(target, source, env):
     Resolving XIncludes, using the libxml2 module.
     """
     doc = libxml2.readFile(str(source[0]), None, libxml2.XML_PARSE_NOENT)
-    doc.xincludeProcess()
+    doc.xincludeProcessFlags(libxml2.XML_PARSE_NOENT)
     doc.saveFile(str(target[0]))
     doc.freeDoc()
 
@@ -429,6 +429,11 @@ def DocbookEpub(env, target, source=None, *args, **kw):
         mime_file.close()
         zf.write(mime_file.name, compress_type = zipfile.ZIP_STORED)
         for s in source:
+            if os.path.isfile(str(s)):
+                head, tail = os.path.split(str(s))
+                if not head:
+                    continue
+                s = head
             for dirpath, dirnames, filenames in os.walk(str(s)):
                 for fname in filenames:
                     path = os.path.join(dirpath, fname)
index f5caf21f7317aa459cfaf796f7ee4fe226a51268..eb5fd7bea27b6e78931f2bc2cb265d4cbf0944ef 100644 (file)
@@ -5,7 +5,7 @@ Common DVI Builder definition for various other Tool modules that use it.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ Common DVI Builder definition for various other Tool modules that use it.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/dvi.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/dvi.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Builder
 import SCons.Tool
index a49a11241bdcf3c487900242f980d13c411b45db..d90936492217ee7fe78f99f1fa71bc0e39355ccf 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/dvipdf.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/dvipdf.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Defaults
index 2b09245eb2b3cae8a0dd762dd889f2dee7c0b66b..544b7eb21fd5b6ccfe35de9a1078d3d654ba1f5c 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/dvips.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/dvips.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index 258db7066cb53713c6b414a904a18720d9d7033b..9fad6493a336c960d3170afcacf6279a1f91892a 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/f03.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/f03.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index c56f72782168d2c7a8c78cbac509ac2862a68590..b5e055b2d5ed00eddbcebf0278e72346e8bda9f4 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/f77.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/f77.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Scanner.Fortran
index 39be3b4bd812b2da45d8243b7327a298bef522e4..7973090ffe879ebf7e7f72ac95f87fceef10c704 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/f90.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/f90.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Scanner.Fortran
index 3acc39a51078d5d8911539d844f12fd1eb517d57..6ce9513274164d3b7ac4ceb3d0b8017bc1712c99 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/f95.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/f95.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index 3c124b79c749df9a0ee0db8db2ec6c387f569b40..ad018e9319c53b28d15fa692a885e9db0b571515 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/filesystem.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/filesystem.py  2014/07/05 09:42:21 garyo"
 
 import SCons
 from SCons.Tool.install import copyFunc
index b3b0d0b8ed8e6bc522bda46b1e124a15502d471c..072752ff385658262597660a749cebf4f9d23c20 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/fortran.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/fortran.py  2014/07/05 09:42:21 garyo"
 
 import re
 
index d894644e4e223479c8ba48bbaecbd3351bfebf0b..837fde3a1885a4b71ce3b2965d9a10eaf30ad34b 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/g++.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/g++.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import re
@@ -40,6 +40,8 @@ import subprocess
 import SCons.Tool
 import SCons.Util
 
+import gcc
+
 cplusplus = __import__('c++', globals(), locals(), [])
 
 compilers = ['g++']
@@ -48,9 +50,10 @@ def generate(env):
     """Add Builders and construction variables for g++ to an Environment."""
     static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
 
-    cplusplus.generate(env)
+    if 'CXX' not in env:
+        env['CXX']    = env.Detect(compilers) or compilers[0]
 
-    env['CXX']        = env.Detect(compilers)
+    cplusplus.generate(env)
 
     # platform specific settings
     if env['PLATFORM'] == 'aix':
@@ -62,26 +65,13 @@ def generate(env):
     elif env['PLATFORM'] == 'sunos':
         env['SHOBJSUFFIX'] = '.pic.o'
     # determine compiler version
-    if env['CXX']:
-        #pipe = SCons.Action._subproc(env, [env['CXX'], '-dumpversion'],
-        pipe = SCons.Action._subproc(env, [env['CXX'], '--version'],
-                                     stdin = 'devnull',
-                                     stderr = 'devnull',
-                                     stdout = subprocess.PIPE)
-        if pipe.wait() != 0: return
-        # -dumpversion was added in GCC 3.0.  As long as we're supporting
-        # GCC versions older than that, we should use --version and a
-        # regular expression.
-        #line = pipe.stdout.read().strip()
-        #if line:
-        #    env['CXXVERSION'] = line
-        line = pipe.stdout.readline()
-        match = re.search(r'[0-9]+(\.[0-9]+)+', line)
-        if match:
-            env['CXXVERSION'] = match.group(0)
+    version = gcc.detect_version(env, env['CXX'])
+    if version:
+        env['CXXVERSION'] = version
 
 def exists(env):
-    return env.Detect(compilers)
+    # is executable, and is a GNU compiler (or accepts '--version' at least)
+    return gcc.detect_version(env, env.Detect(env.get('CXX', compilers)))
 
 # Local Variables:
 # tab-width:4
index 7a7b7aefcbf5bec670740db64ddd04aaa00737f3..e77250e759d572315c8c9a6ec14aee9b28b10ce4 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/g77.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/g77.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 from SCons.Tool.FortranCommon import add_all_to_env, add_f77_to_env
index f016c969faa660657ca4adfad3fde121c728595f..3226b62d803e0fc309b997e609fed65053e8f5c8 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/gas.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/gas.py  2014/07/05 09:42:21 garyo"
 
 as_module = __import__('as', globals(), locals(), [])
 
index 09e48319fb911d442a748d9a00672fd65d9bd651..fb5e475846528db485ab3ca2ee08976f62570352 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/gcc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/gcc.py  2014/07/05 09:42:21 garyo"
 
 import cc
 import os
@@ -44,34 +44,54 @@ compilers = ['gcc', 'cc']
 
 def generate(env):
     """Add Builders and construction variables for gcc to an Environment."""
+
+    if 'CC' not in env:
+        env['CC'] = env.Detect(compilers) or compilers[0]
+
     cc.generate(env)
 
-    env['CC'] = env.Detect(compilers) or 'gcc'
     if env['PLATFORM'] in ['cygwin', 'win32']:
         env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
     else:
         env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS -fPIC')
     # determine compiler version
-    if env['CC']:
-        #pipe = SCons.Action._subproc(env, [env['CC'], '-dumpversion'],
-        pipe = SCons.Action._subproc(env, [env['CC'], '--version'],
-                                     stdin = 'devnull',
-                                     stderr = 'devnull',
-                                     stdout = subprocess.PIPE)
-        if pipe.wait() != 0: return
-        # -dumpversion was added in GCC 3.0.  As long as we're supporting
-        # GCC versions older than that, we should use --version and a
-        # regular expression.
-        #line = pipe.stdout.read().strip()
-        #if line:
-        #    env['CCVERSION'] = line
-        line = pipe.stdout.readline()
-        match = re.search(r'[0-9]+(\.[0-9]+)+', line)
-        if match:
-            env['CCVERSION'] = match.group(0)
+    version = detect_version(env, env['CC'])
+    if version:
+        env['CCVERSION'] = version
 
 def exists(env):
-    return env.Detect(compilers)
+    # is executable, and is a GNU compiler (or accepts '--version' at least)
+    return detect_version(env, env.Detect(env.get('CC', compilers)))
+
+def detect_version(env, cc):
+    """Return the version of the GNU compiler, or None if it is not a GNU compiler."""
+    cc = env.subst(cc)
+    if not cc:
+        return None
+    version = None
+    #pipe = SCons.Action._subproc(env, SCons.Util.CLVar(cc) + ['-dumpversion'],
+    pipe = SCons.Action._subproc(env, SCons.Util.CLVar(cc) + ['--version'],
+                                 stdin = 'devnull',
+                                 stderr = 'devnull',
+                                 stdout = subprocess.PIPE)
+    # -dumpversion was added in GCC 3.0.  As long as we're supporting
+    # GCC versions older than that, we should use --version and a
+    # regular expression.
+    #line = pipe.stdout.read().strip()
+    #if line:
+    #    version = line
+    line = pipe.stdout.readline()
+    match = re.search(r'[0-9]+(\.[0-9]+)+', line)
+    if match:
+        version = match.group(0)
+    # Non-GNU compiler's output (like AIX xlc's) may exceed the stdout buffer:
+    # So continue with reading to let the child process actually terminate.
+    while pipe.stdout.readline():
+        pass
+    ret = pipe.wait()
+    if ret != 0:
+        return None
+    return version
 
 # Local Variables:
 # tab-width:4
diff --git a/scons-local/SCons/Tool/gdc.py b/scons-local/SCons/Tool/gdc.py
new file mode 100644 (file)
index 0000000..7c2ab95
--- /dev/null
@@ -0,0 +1,130 @@
+"""SCons.Tool.gdc
+
+Tool-specific initialization for the GDC compiler.
+(https://github.com/D-Programming-GDC/GDC)
+
+Developed by Russel Winder (russel@winder.org.uk)
+2012-05-09 onwards
+
+Compiler variables:
+    DC - The name of the D compiler to use.  Defaults to gdc.
+    DPATH - List of paths to search for import modules.
+    DVERSIONS - List of version tags to enable when compiling.
+    DDEBUG - List of debug tags to enable when compiling.
+
+Linker related variables:
+    LIBS - List of library files to link in.
+    DLINK - Name of the linker to use.  Defaults to gdc.
+    DLINKFLAGS - List of linker flags.
+
+Lib tool variables:
+    DLIB - Name of the lib tool to use.  Defaults to lib.
+    DLIBFLAGS - List of flags to pass to the lib tool.
+    LIBS - Same as for the linker. (libraries to pull into the .lib)
+"""
+
+#
+# Copyright (c) 2001 - 2014 The SCons Foundation
+#
+# 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__ = "src/engine/SCons/Tool/gdc.py  2014/07/05 09:42:21 garyo"
+
+import SCons.Action
+import SCons.Defaults
+import SCons.Tool
+
+import SCons.Tool.DCommon
+
+
+def generate(env):
+    static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
+
+    static_obj.add_action('.d', SCons.Defaults.DAction)
+    shared_obj.add_action('.d', SCons.Defaults.ShDAction)
+    static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
+    shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
+
+    env['DC'] = env.Detect('gdc')
+    env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -o $TARGET $SOURCES'
+    env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)}  $)'
+    env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)}  $)'
+    env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
+    env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
+
+    env['SHDC'] = '$DC'
+    env['SHDCOM'] = '$SHDC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -fPIC -c -o $TARGET $SOURCES'
+
+    env['DPATH'] = ['#/']
+    env['DFLAGS'] = []
+    env['DVERSIONS'] = []
+    env['DDEBUG'] = []
+
+    env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0
+
+    if env['DC']:
+        SCons.Tool.DCommon.addDPATHToEnv(env, env['DC'])
+
+    env['DINCPREFIX'] = '-I'
+    env['DINCSUFFIX'] = ''
+    env['DVERPREFIX'] = '-version='
+    env['DVERSUFFIX'] = ''
+    env['DDEBUGPREFIX'] = '-debug='
+    env['DDEBUGSUFFIX'] = ''
+    env['DFLAGPREFIX'] = '-'
+    env['DFLAGSUFFIX'] = ''
+    env['DFILESUFFIX'] = '.d'
+
+    env['DLINK'] = '$DC'
+    env['DLINKFLAGS'] = SCons.Util.CLVar('')
+    env['DLINKCOM'] = '$DLINK -o $TARGET $DLINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
+
+    env['SHDLINK'] = '$DC'
+    env['SHDLINKFLAGS'] = SCons.Util.CLVar('$DLINKFLAGS -shared')
+    env['SHDLINKCOM'] = '$DLINK -o $TARGET $DLINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
+
+    env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr'
+    env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLINKLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '')
+
+    env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
+
+    env['DLIBFLAGPREFIX'] = '-'
+    env['DLIBFLAGSUFFIX'] = ''
+    env['DLINKFLAGPREFIX'] = '-'
+    env['DLINKFLAGSUFFIX'] = ''
+
+    # __RPATH is set to $_RPATH in the platform specification if that
+    # platform supports it.
+    env['RPATHPREFIX'] = '-Wl,-rpath='
+    env['RPATHSUFFIX'] = ''
+    env['_RPATH'] = '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}'
+
+    SCons.Tool.createStaticLibBuilder(env)
+
+
+def exists(env):
+    return env.Detect('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
index 8a2588834e3fe12687198b67aac46ed782b96ce6..af9f8977eaac3487367bc98c4a52409969f74c30 100644 (file)
@@ -2,7 +2,7 @@
 """
 
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -23,7 +23,7 @@
 # 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__ = "src/engine/SCons/Tool/gettext.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/gettext.py  2014/07/05 09:42:21 garyo"
 
 #############################################################################
 def generate(env,**kw):
index 4d2c137d12dc57aa27a3cd84b0df3ba03a2b8304..a178f82712ef30ed99d280325f355a9892893b61 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/gfortran.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/gfortran.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index d475de444fcdb97f8330edae1c0911829b93ad58..a0cf93764f0b56d0b65ca37938fbfd3f251d5be5 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,14 +31,12 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/gnulink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/gnulink.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
 import link
 
-linkers = ['g++', 'gcc']
-
 def generate(env):
     """Add Builders and construction variables for gnulink to an Environment."""
     link.generate(env)
@@ -53,7 +51,14 @@ def generate(env):
     env['_RPATH'] = '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}'
     
 def exists(env):
-    return env.Detect(linkers)
+    # TODO: sync with link.smart_link() to choose a linker
+    linkers = { 'CXX': ['g++'], 'CC': ['gcc'] }
+    alltools = []
+    for langvar, linktools in linkers.items():
+        if langvar in env: # use CC over CXX when user specified CC but not CXX
+            return SCons.Tool.FindTool(linktools, env)
+        alltools.extend(linktools)
+    return SCons.Tool.FindTool(alltools, env) # find CXX or CC
 
 # Local Variables:
 # tab-width:4
index 91c6434a0306946cb25c533ffce671a05394581d..a507be81b00142586898b57d1e18b3d6fb41dda0 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/gs.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/gs.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index 4920cffe11cd99743082cadb317ea0b43338f913..c73b12928b51f8e744662bad174a2851053027f3 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/hpc++.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/hpc++.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index bb745bae2cbb515b45a1c356b29983d77b825c39..d9dbbb7fd90e4b567be01261b7be939afc6b228f 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/hpcc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/hpcc.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index ea979f5682f351a91044a29f3e5d342d703fa56c..fd2e0ae4060b571634675f419bbd48d294441ec1 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/hplink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/hplink.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index ac0629c6ad7953073778be6b5b44ed3f41d48734..67baed04b57ab68eb82087f007a4d522109aa1d0 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/icc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/icc.py  2014/07/05 09:42:21 garyo"
 
 import cc
 
index 518a90267e74ee4a5655157b1a0e600215bc489f..17ad4cab7d93cfd5598d54381651c1ac0cb45a0b 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/icl.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/icl.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Tool.intelc
 
index 6e52fca03896acd5194dcda69a82d7d7465028e5..a7b2772e1e4be81bb4daa1b38429e40b48438a90 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/ifl.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/ifl.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 from SCons.Scanner.Fortran import FortranScan
index c61dc1275f5887b5e7017ee1d0692d7130e20169..fe941ee089bc0a10d92d2afe844bd68a78ef0c73 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/ifort.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/ifort.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 from SCons.Scanner.Fortran import FortranScan
index 7cd94d74e8cf8489cf9aa60ab8356e47c54b8f1c..6def57ba9e03b4f5c883943779b27c21c7de211a 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/ilink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/ilink.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index c8a49db7851907a38de0643ae8e2aad4a0e29d61..d7fae38301dac843d870efe37b24839f662a5527 100644 (file)
@@ -5,7 +5,7 @@ XXX
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ XXX
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/ilink32.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/ilink32.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Tool
 import SCons.Tool.bcc32
index 8c326507807038862273fba5efb1dd4296248bae..33e005a9c2af7af2aff24d1f5540fdb6d6397bc7 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/install.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/install.py  2014/07/05 09:42:21 garyo"
 
 import os
 import re
index 1bd799fd7ef9a30cf9a189716dd1326cc36e7518..37042f889e9adf7cede2a95c3079273c2e6fb1bc 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 from __future__ import division
 
-__revision__ = "src/engine/SCons/Tool/intelc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/intelc.py  2014/07/05 09:42:21 garyo"
 
 import math, sys, os.path, glob, string, re
 
@@ -156,7 +156,43 @@ def get_intel_registry_value(valuename, version=None, abi=None):
     try:
         k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
     except SCons.Util.RegError:
-        raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
+        # For version 13 and later, check UUID subkeys for valuename
+        if is_win64:
+            K = 'Software\\Wow6432Node\\Intel\\Suites\\' + version + "\\Defaults\\C++\\" + abi.upper()
+        else:
+            K = 'Software\\Intel\\Suites\\' + version + "\\Defaults\\C++\\" + abi.upper()
+        try:
+            k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
+            uuid = SCons.Util.RegQueryValueEx(k, 'SubKey')[0]
+
+            if is_win64:
+                K = 'Software\\Wow6432Node\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++"
+            else:
+                K = 'Software\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++"
+            k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
+
+            try:
+                v = SCons.Util.RegQueryValueEx(k, valuename)[0]
+                return v  # or v.encode('iso-8859-1', 'replace') to remove unicode?
+            except SCons.Util.RegError:
+                if abi.upper() == 'EM64T':
+                    abi = 'em64t_native'
+                if is_win64:
+                    K = 'Software\\Wow6432Node\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++\\" + abi.upper()
+                else:
+                    K = 'Software\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++\\" + abi.upper()
+                k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
+
+            try:
+                v = SCons.Util.RegQueryValueEx(k, valuename)[0]
+                return v  # or v.encode('iso-8859-1', 'replace') to remove unicode?
+            except SCons.Util.RegError:
+                raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
+
+        except SCons.Util.RegError:
+            raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
+        except WindowsError:
+            raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
 
     # Get the value:
     try:
@@ -180,7 +216,16 @@ def get_all_compiler_versions():
             k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
                                         keyname)
         except WindowsError:
-            return []
+            # For version 13 or later, check for default instance UUID
+            if is_win64:
+                keyname = 'Software\\WoW6432Node\\Intel\\Suites'
+            else:
+                keyname = 'Software\\Intel\\Suites'
+            try:
+                k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
+                                            keyname)
+            except WindowsError:
+                return []
         i = 0
         versions = []
         try:
@@ -192,6 +237,9 @@ def get_all_compiler_versions():
                 # and then the install directory deleted or moved (rather
                 # than uninstalling properly), so the registry values
                 # are still there.
+                if subkey == 'Defaults': # Ignore default instances
+                    i = i + 1
+                    continue
                 ok = False
                 for try_abi in ('IA32', 'IA32e',  'IA64', 'EM64T'):
                     try:
@@ -268,9 +316,17 @@ def get_intel_compiler_top(version, abi):
         if not SCons.Util.can_read_reg:
             raise NoRegistryModuleError("No Windows registry module was found")
         top = get_intel_registry_value('ProductDir', version, abi)
+        archdir={'x86_64': 'intel64',
+                 'amd64' : 'intel64',
+                 'em64t' : 'intel64',
+                 'x86'   : 'ia32',
+                 'i386'  : 'ia32',
+                 'ia32'  : 'ia32'
+        }[abi] # for v11 and greater
         # pre-11, icl was in Bin.  11 and later, it's in Bin/<abi> apparently.
         if not os.path.exists(os.path.join(top, "Bin", "icl.exe")) \
-              and not os.path.exists(os.path.join(top, "Bin", abi, "icl.exe")):
+              and not os.path.exists(os.path.join(top, "Bin", abi, "icl.exe")) \
+              and not os.path.exists(os.path.join(top, "Bin", archdir, "icl.exe")):
             raise MissingDirError("Can't find Intel compiler in %s"%(top))
     elif is_mac or is_linux:
         def find_in_2008style_dir(version):
index 3fb58db92ea130a4b7300f1a4f1e5731b6ac11eb..ec4c3aa7e4580f02a07ea3c865466fb2b016f56d 100644 (file)
@@ -11,7 +11,7 @@ packages fake_root.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -33,7 +33,7 @@ packages fake_root.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/ipkg.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/ipkg.py  2014/07/05 09:42:21 garyo"
 
 import os
 
index 8b5c7f1fee699652f3c662f034c7929b31862528..2077285c1a786cd218f3464434e0f21069426164 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/jar.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/jar.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Subst
 import SCons.Util
index 9249989841f5d952c569a34f01f821848491b975..9bdbccad81fbd4c4874150d28c1157d57b9fd561 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/javac.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/javac.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index 2c2533dc80b925d663b61a32ed2f531f42249014..1db73eba113da68f516a7861c9a8f453d402aba8 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/javah.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/javah.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index 899a508df1ea30e6cf73af3ba7c02ad4c1d78fdd..caa61991b0b30ef1cd2463d5f44396d4518577fd 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/latex.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/latex.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Defaults
diff --git a/scons-local/SCons/Tool/ldc.py b/scons-local/SCons/Tool/ldc.py
new file mode 100644 (file)
index 0000000..9df5c93
--- /dev/null
@@ -0,0 +1,143 @@
+"""SCons.Tool.ldc
+
+Tool-specific initialization for the LDC compiler.
+(http://www.dsource.org/projects/ldc)
+
+Developed by Russel Winder (russel@winder.org.uk)
+2012-05-09 onwards
+
+Compiler variables:
+    DC - The name of the D compiler to use.  Defaults to ldc2.
+    DPATH - List of paths to search for import modules.
+    DVERSIONS - List of version tags to enable when compiling.
+    DDEBUG - List of debug tags to enable when compiling.
+
+Linker related variables:
+    LIBS - List of library files to link in.
+    DLINK - Name of the linker to use.  Defaults to ldc2.
+    DLINKFLAGS - List of linker flags.
+
+Lib tool variables:
+    DLIB - Name of the lib tool to use.  Defaults to lib.
+    DLIBFLAGS - List of flags to pass to the lib tool.
+    LIBS - Same as for the linker. (libraries to pull into the .lib)
+"""
+
+#
+# Copyright (c) 2001 - 2014 The SCons Foundation
+#
+# 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__ = "src/engine/SCons/Tool/ldc.py  2014/07/05 09:42:21 garyo"
+
+import os
+import subprocess
+
+import SCons.Action
+import SCons.Builder
+import SCons.Defaults
+import SCons.Scanner.D
+import SCons.Tool
+
+import SCons.Tool.DCommon
+
+
+def generate(env):
+    static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
+
+    static_obj.add_action('.d', SCons.Defaults.DAction)
+    shared_obj.add_action('.d', SCons.Defaults.ShDAction)
+    static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
+    shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
+
+    env['DC'] = env.Detect('ldc2')
+    env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -of=$TARGET $SOURCES'
+    env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)}  $)'
+    env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)}  $)'
+    env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
+    env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
+
+    env['SHDC'] = '$DC'
+    env['SHDCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -relocation-model=pic -of=$TARGET $SOURCES'
+
+    env['DPATH'] = ['#/']
+    env['DFLAGS'] = []
+    env['DVERSIONS'] = []
+    env['DDEBUG'] = []
+
+    env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0
+
+    if env['DC']:
+        SCons.Tool.DCommon.addDPATHToEnv(env, env['DC'])
+
+    env['DINCPREFIX'] = '-I='
+    env['DINCSUFFIX'] = ''
+    env['DVERPREFIX'] = '-version='
+    env['DVERSUFFIX'] = ''
+    env['DDEBUGPREFIX'] = '-debug='
+    env['DDEBUGSUFFIX'] = ''
+    env['DFLAGPREFIX'] = '-'
+    env['DFLAGSUFFIX'] = ''
+    env['DFILESUFFIX'] = '.d'
+
+    env['DLINK'] = '$DC'
+    env['DLINKFLAGS'] = SCons.Util.CLVar('')
+    env['DLINKCOM'] = '$DLINK -of=$TARGET $DLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS'
+
+    env['DSHLINK'] = '$DC'
+    env['DSHLINKFLAGS'] = SCons.Util.CLVar('$DLINKFLAGS -shared')
+    env['SHDLINKCOM'] = '$DLINK -of=$TARGET $DSHLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS'
+
+    env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-L-l'
+    env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else ''
+    #env['_DLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+    env['_DLIBFLAGS'] = '${_stripixes(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES,  __env__)}'
+
+    env['DLIBDIRPREFIX'] = '-L-L'
+    env['DLIBDIRSUFFIX'] = ''
+    env['_DLIBDIRFLAGS'] = '$( ${_concat(DLIBDIRPREFIX, LIBPATH, DLIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+
+
+    env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr'
+    env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '')
+
+    #env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
+
+    env['DLIBFLAGPREFIX'] = '-'
+    env['DLIBFLAGSUFFIX'] = ''
+
+    # __RPATH is set to $_RPATH in the platform specification if that
+    # platform supports it.
+    env['DRPATHPREFIX'] = '-L-rpath='
+    env['DRPATHSUFFIX'] = ''
+    env['_RPATH'] = '${_concat(DRPATHPREFIX, RPATH, DRPATHSUFFIX, __env__)}'
+
+    SCons.Tool.createStaticLibBuilder(env)
+
+
+def exists(env):
+    return env.Detect('ldc2')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
index 00e292f03f16c810afc15942c1877e4ddceb110c..5c076d45256f68065f627dc7f439ab5fb1bab5a7 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/lex.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/lex.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index f6e883fd726912849055d715bd2223c31fcf5093..8e299b991b8d4fd8bee96e238eea3e6de606223a 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/link.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/link.py  2014/07/05 09:42:21 garyo"
 
 import re
 
@@ -42,6 +42,8 @@ import SCons.Warnings
 
 from SCons.Tool.FortranCommon import isfortran
 
+from SCons.Tool.DCommon import isD
+
 cplusplus = __import__('c++', globals(), locals(), [])
 
 issued_mixed_link_warning = False
@@ -49,7 +51,8 @@ issued_mixed_link_warning = False
 def smart_link(source, target, env, for_signature):
     has_cplusplus = cplusplus.iscplusplus(source)
     has_fortran = isfortran(env, source)
-    if has_cplusplus and has_fortran:
+    has_d = isD(env, source)
+    if has_cplusplus and has_fortran and not has_d:
         global issued_mixed_link_warning
         if not issued_mixed_link_warning:
             msg = "Using $CXX to link Fortran and C++ code together.\n\t" + \
@@ -59,6 +62,10 @@ def smart_link(source, target, env, for_signature):
                                 msg % env.subst('$CXX'))
             issued_mixed_link_warning = True
         return '$CXX'
+    elif has_d:
+        env['LINKCOM'] = env['DLINKCOM']
+        env['SHLINKCOM'] = env['SHDLINKCOM']
+        return '$DC'
     elif has_fortran:
         return '$FORTRAN'
     elif has_cplusplus:
@@ -138,7 +145,7 @@ def shlib_emitter_names(target, source, env):
                     print "shlib_emitter_names: side effect: ", name
                 # add version_name to list of names to be a Side effect
                 version_names.append(version_name)
-                
+
     except KeyError:
         version = None
     return version_names
@@ -178,8 +185,8 @@ def generate(env):
     # don't set up the emitter, cause AppendUnique will generate a list
     # starting with None :-(
     env.Append(LDMODULEEMITTER='$SHLIBEMITTER')
-    env['LDMODULEPREFIX'] = '$SHLIBPREFIX' 
-    env['LDMODULESUFFIX'] = '$SHLIBSUFFIX' 
+    env['LDMODULEPREFIX'] = '$SHLIBPREFIX'
+    env['LDMODULESUFFIX'] = '$SHLIBSUFFIX'
     env['LDMODULEFLAGS'] = '$SHLINKFLAGS'
     env['LDMODULECOM'] = '$LDMODULE -o $TARGET $LDMODULEFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
 
index 9f5a6dcccf274c7ad6d4d487e4a6129a326115f7..a9b97d3d8d9c755d5fcc8b9fa331a5ea541209c6 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/linkloc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/linkloc.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import re
index 5088b581955c306e6384c94d686d986476a1e195..11834d4b0347873e01f8b8eb3d7ab93466b6f4f3 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/m4.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/m4.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index 178584d907bef219e6280f71921b3379d1883d8f..13ac842c0a79caa7ee4ef44b98d32bbdd133db8a 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/masm.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/masm.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index e5a871f12964d04400fbc3522ab6fd76fb0dfd60..a92f282bf5b7b5117ae3d8c26bc47d4bcdc5da3f 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/midl.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/midl.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index 46ca9e41584bda07ff2315230e4744f003d29ab5..8d248b0fa8f44eea3cc3c53bb2a55c7fc08041a9 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/mingw.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/mingw.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index b83173838efd01b4046781878dec566baa166c7e..63f6385bece6c84230388d50a263a02a95a03d05 100644 (file)
@@ -1,6 +1,6 @@
 """ msgfmt tool """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # 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__ = "src/engine/SCons/Tool/msgfmt.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/msgfmt.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Builder import BuilderBase
 #############################################################################
index d745dc54c3282e2b3597a5bb0e14b42f4aa6f16e..de7c8e1a531ba38f814c9ddd0eb39d4563e04e75 100644 (file)
@@ -3,7 +3,7 @@
 Tool specific initialization of msginit tool.
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -24,7 +24,7 @@ Tool specific initialization of msginit tool.
 # 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__ = "src/engine/SCons/Tool/msginit.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/msginit.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Warnings
 import SCons.Builder
index e50824e450c7d0cd16c787358eebb1216496fc9c..d3b91a757cab4b1caf3d8a28ff82da8051c2c52b 100644 (file)
@@ -3,7 +3,7 @@
 Tool specific initialization for `msgmerge` tool.
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -24,7 +24,7 @@ Tool specific initialization for `msgmerge` tool.
 # 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__ = "src/engine/SCons/Tool/msgmerge.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/msgmerge.py  2014/07/05 09:42:21 garyo"
 
 #############################################################################
 def _update_or_init_po_files(target, source, env):
index 0f95e4143a7282d2c8ce7e111c0091dd72f3005f..00cea716950d0091a485512587298e184f2e5d28 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/mslib.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/mslib.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index 9374ffefad0c6894f2baa5fad5ae25e1e8d908ea..cc5f60139b86c0b779bc9ea7ffbbedff334cec89 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/mslink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/mslink.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index 6112bff651b2e9b52ae64939e8bd611c747e4fe3..323ee1dbfb5d7947192348a202ac972e4587ee8c 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/mssdk.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/mssdk.py  2014/07/05 09:42:21 garyo"
 
 """engine.SCons.Tool.mssdk
 
index e09fe9f8905296b3bbaaa47b345e99f488018df2..b236d8941eafc7b8b3ccd83ea3e2c299945bedfc 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/msvc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/msvc.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import re
index 6e05b47a73dfb96feb67db5fc4ddaeb37eb754da..ab15373e1f23237c1cad22abdd9f184700301f39 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # 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__ = "src/engine/SCons/Tool/msvs.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/msvs.py  2014/07/05 09:42:21 garyo"
 
 import SCons.compat
 
index 1f12b4864aec64f97159366454fc5186f6db06e3..744eaf7e4ca608563c9457cff1066a0a08e28f00 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/mwcc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/mwcc.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index 649e220476a5d0aeaf0fd049d963790bf4a09fca..d16a247bab8f45beb018bb38aee7c77fb1213fdc 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/mwld.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/mwld.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Tool
 
index 805eeb046de8d7ceeeea27d5e1e661dee71c51f2..d8d41c5f48b564e59bcc7e7ee0d6959ca44bf450 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/nasm.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/nasm.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index a356f463401cb110a535d6a740bf63995a9f2fb4..065f06b7eebc4214679b980a34de8304cf83c5b0 100644 (file)
@@ -4,7 +4,7 @@ SCons Packaging Tool.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -25,7 +25,7 @@ SCons Packaging Tool.
 # 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__ = "src/engine/SCons/Tool/packaging/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/__init__.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Environment
 from SCons.Variables import *
index c7c2ecbeae75b25db6a1b75a77421ef546826f79..88d3a4b55f0de055f859496524150aa1fac3ea52 100644 (file)
@@ -2,7 +2,7 @@
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -24,7 +24,7 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/packaging/ipk.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/ipk.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Builder
 import SCons.Node.FS
index 5c81c2fe177b9992c0a1967c3f2e35b3aaf7a93d..e91be283f73f25eb8b87c5f4ad2a4a53e4fdfcd8 100644 (file)
@@ -4,7 +4,7 @@ The msi packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -25,7 +25,7 @@ The msi packager.
 # 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__ = "src/engine/SCons/Tool/packaging/msi.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/msi.py  2014/07/05 09:42:21 garyo"
 
 import os
 import SCons
index 049bf4597fc32e3d75b4c81ff3dd8281d3e0e435..eea0dce5bee84c42f0c3409dc3c8a19807a1eff0 100644 (file)
@@ -4,7 +4,7 @@ The rpm packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -25,7 +25,7 @@ The rpm packager.
 # 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__ = "src/engine/SCons/Tool/packaging/rpm.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/rpm.py  2014/07/05 09:42:21 garyo"
 
 import os
 
index 6a98b385df1daa3e3945a6f98226aff9890d3443..f21a22ec9d1b089564fffba997f95a1c5e22e53e 100644 (file)
@@ -4,7 +4,7 @@ The tarbz2 SRC packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ The tarbz2 SRC packager.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/packaging/src_tarbz2.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/src_tarbz2.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Tool.packaging import putintopackageroot
 
index de7d17b224954155c8d939bd7b350801b2afc8b9..f19a2e5399b0550a7ddbe29227e880f0d59947e7 100644 (file)
@@ -4,7 +4,7 @@ The targz SRC packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ The targz SRC packager.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/packaging/src_targz.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/src_targz.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Tool.packaging import putintopackageroot
 
index 86160dece4d53375939fcff332544fdecc320ac7..a500970aae2c6aacdaa35674afa0c9b30ea16294 100644 (file)
@@ -4,7 +4,7 @@ The zip SRC packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ The zip SRC packager.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/packaging/src_zip.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/src_zip.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Tool.packaging import putintopackageroot
 
index 7df69320d7bb8ae0ad63254352c32edc7bf84b97..288698c78777ab391489aa73c3be22d504deff78 100644 (file)
@@ -4,7 +4,7 @@ The tarbz2 SRC packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ The tarbz2 SRC packager.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/packaging/tarbz2.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/tarbz2.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot
 
index 6a9024ceb9c4a8e96423cb14d40e11a35aa9ec63..75fed12519b759689a983c72c03307cb97aa4826 100644 (file)
@@ -4,7 +4,7 @@ The targz SRC packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ The targz SRC packager.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/packaging/targz.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/targz.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot
 
index 862589ca774b85dc0b51840a04d663925d3f0360..b57b6559a4d7b9aacda53d94fe024e5629707e94 100644 (file)
@@ -4,7 +4,7 @@ The zip SRC packager.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ The zip SRC packager.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/packaging/zip.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/packaging/zip.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot
 
index b93891d39415faf70922b4016e1a8a1927f2d646..0bd1c086f2a9485699bfc54802c50950a4137a0e 100644 (file)
@@ -6,7 +6,7 @@ Add an explicit action to run epstopdf to convert .eps files to .pdf
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@ Add an explicit action to run epstopdf to convert .eps files to .pdf
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/pdf.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/pdf.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Builder
 import SCons.Tool
index a5ec458764037bf34f47ede65dd45128acca1111..9c119b03f79621fa052011d86a8dda94a3dd3ab3 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/pdflatex.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/pdflatex.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Util
index aa002ad1049ddaea8e0836177c134dbde5e431a5..7f21bf610befc18a5b0761be40b589e6cb8d1ec4 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/pdftex.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/pdftex.py  2014/07/05 09:42:21 garyo"
 
 import os
 import SCons.Action
index 22c7770008a64b64dcc18d78ad64161ba875d550..b6335753d8eb0e704eb9e8612d947cf0ca07e4de 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/qt.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/qt.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import re
index 689d823b0456f20f0fb732f7468f8858209c9099..0539a502f36e1c14fc149968bc6e3c84d3627025 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/rmic.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/rmic.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index 2caf244feea73e017312a09e2565c5198ad8fb3c..6c845afb855a53c043de5f9307aa113abe5f6531 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/rpcgen.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/rpcgen.py  2014/07/05 09:42:21 garyo"
 
 from SCons.Builder import Builder
 import SCons.Util
index 9be0d796d3d3f5c050025b63ce2d8c1a84ed6ee7..5db0036ca6072697af4da5c97b08151176852047 100644 (file)
@@ -11,7 +11,7 @@ tar.gz consisting of the source file and a specfile.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -33,7 +33,7 @@ tar.gz consisting of the source file and a specfile.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/rpm.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/rpm.py  2014/07/05 09:42:21 garyo"
 
 import os
 import re
index f482fbbf2a3daf87e94f302aedfe6753210a88ca..5599a8ef45f8ad6a599a72c9dd26e9a151395aab 100644 (file)
@@ -10,11 +10,11 @@ mimic the exact naming rules of the RPM source code.
 They were directly derived from the file "rpmrc.in" of the version
 rpm-4.9.1.3. For updating to a more recent version of RPM, this Python
 script can be used standalone. The usage() function below shows the
-exact syntax. 
+exact syntax.
 
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -35,10 +35,11 @@ exact syntax.
 # 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__ = "src/engine/SCons/Tool/rpmutils.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/rpmutils.py  2014/07/05 09:42:21 garyo"
 
 
 import platform
+import subprocess
 
 # Start of rpmrc dictionaries (Marker, don't change or remove!)
 os_canon = {
@@ -435,20 +436,29 @@ arch_canon = {
 
 # End of rpmrc dictionaries (Marker, don't change or remove!)
 
-def defaultMachine():
+def defaultMachine(use_rpm_default=True):
     """ Return the canonicalized machine name. """
-    rmachine = platform.machine()
-    
-    # Try to lookup the string in the canon table
-    if rmachine in arch_canon:
-        rmachine = arch_canon[rmachine][0]
-    
+
+    if use_rpm_default:
+        try:
+            # This should be the most reliable way to get the default arch
+            rmachine = subprocess.check_output(['rpm', '--eval=%_target_cpu'], shell=False).rstrip()
+        except Exception as e:
+            # Something went wrong, try again by looking up platform.machine()
+            return defaultMachine(False)
+    else:
+        rmachine = platform.machine()
+
+        # Try to lookup the string in the canon table
+        if rmachine in arch_canon:
+            rmachine = arch_canon[rmachine][0]
+
     return rmachine
 
 def defaultSystem():
     """ Return the canonicalized system name. """
     rsystem = platform.system()
-    
+
     # Try to lookup the string in the canon tables
     if rsystem in os_canon:
         rsystem = os_canon[rsystem][0]
@@ -523,7 +533,7 @@ def usage():
 
 def main():
     import sys
-    
+
     if len(sys.argv) < 3:
         usage()
         sys.exit(0)
index a1a94a57da8fdf281d1b0dd31eff754b62e7f66c..a7d662b55606f6d205d0ba78a4fe5947abafa1f0 100644 (file)
@@ -11,7 +11,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -33,7 +33,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sgiar.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sgiar.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index 4dcdc1d7299cd1c45784272fee58ba3d1ff21cdc..ba1456669605870bbfab42b1b713ccdd3024764d 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sgic++.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sgic++.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index 15c34c19d859fc50c2bf4ba2a71e819593dc0606..0bf5a2100dcc289f01dd7cfe5312807618416ba3 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sgicc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sgicc.py  2014/07/05 09:42:21 garyo"
 
 import cc
 
index 10069c6ccacd7ec10c8ce9837a33a7b36db62da5..1c311714daa3855f26e41a441c7cba090913511a 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sgilink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sgilink.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index 154e44f7fcde5e85840eae8bfb26aba9e59f9145..e8a24e040435c6062579934662a73c22f79bf326 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sunar.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sunar.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Defaults
 import SCons.Tool
index 2f1ceaf060e555576cc3f414e134e161b78f2d18..af6c15bee9f04bcbf5f17523a00e1b935884141d 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sunc++.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sunc++.py  2014/07/05 09:42:21 garyo"
 
 import SCons
 
index 67edb8ae4fb97a075e10d35d8c4df35506307526..e5e70e9112dbd9f3c9212cffc7459210a04a0353 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/suncc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/suncc.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index 5eb664de4d9c30578716ba891309680f515b14bd..4acb313dfffd17ad9991857ec7353552bdc39a62 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sunf77.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sunf77.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index 0a08c70e9bbc642a85bb128764eb6eb2b4b38dda..6163a89f3e8a6593af4eb3327a2a951ab86356c9 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sunf90.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sunf90.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index fd0be66ea802cec53afdc9604557e85983a0de43..a078fd83c43122f79465dccd09571817bd534ba3 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sunf95.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sunf95.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Util
 
index 5cc6024cb21c72f7435f34728c38a2e50eecad5d..1746170fbe60e0360ccae5a2b7ceb16fcd12fec3 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/sunlink.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/sunlink.py  2014/07/05 09:42:21 garyo"
 
 import os
 import os.path
index 188d229dfb9add9c1b9ac4603a01332312963bed..2413eb07ff7b7b4e8efcceb19e3f37aaf5346a28 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/swig.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/swig.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import re
index 9c09f0e58ab5d5743dff6360626c422c31d6be33..6539937dc39cb2fa7735717c4c9e1b733999ede8 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/tar.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/tar.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Action
 import SCons.Builder
index 515002cedaeb719a1d43882c758e523ef0b5787d..167059e9d9733ab469aa51889d89876b1d2e581a 100644 (file)
@@ -10,7 +10,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/tex.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/tex.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import re
@@ -102,6 +102,7 @@ makeacronyms_re = re.compile(r"^[^%\n]*\\makeglossaries", re.MULTILINE)
 beamer_re = re.compile(r"^[^%\n]*\\documentclass\{beamer\}", re.MULTILINE)
 regex = r'^[^%\n]*\\newglossary\s*\[([^\]]+)\]?\s*\{([^}]*)\}\s*\{([^}]*)\}\s*\{([^}]*)\}\s*\{([^}]*)\}'
 newglossary_re = re.compile(regex, re.MULTILINE)
+biblatex_re = re.compile(r"^[^%\n]*\\usepackage.*\{biblatex\}", re.MULTILINE)
 
 newglossary_suffix = []
 
@@ -684,15 +685,18 @@ def tex_emitter_core(target, source, env, graphics_extensions):
     auxfilename = targetbase + '.aux'
     logfilename = targetbase + '.log'
     flsfilename = targetbase + '.fls'
+    syncfilename = targetbase + '.synctex.gz'
 
     env.SideEffect(auxfilename,target[0])
     env.SideEffect(logfilename,target[0])
     env.SideEffect(flsfilename,target[0])
+    env.SideEffect(syncfilename,target[0])
     if Verbose:
-        print "side effect :",auxfilename,logfilename,flsfilename
+        print "side effect :",auxfilename,logfilename,flsfilename,syncfilename
     env.Clean(target[0],auxfilename)
     env.Clean(target[0],logfilename)
     env.Clean(target[0],flsfilename)
+    env.Clean(target[0],syncfilename)
 
     content = source[0].get_text_contents()
 
@@ -719,7 +723,8 @@ def tex_emitter_core(target, source, env, graphics_extensions):
                          makeglossaries_re,
                          makeacronyms_re,
                          beamer_re,
-                         newglossary_re ]
+                         newglossary_re,
+                         biblatex_re ]
     # set up list with the file suffixes that need emitting
     # when a feature is found
     file_tests_suff = [['.aux','aux_file'],
@@ -737,7 +742,8 @@ def tex_emitter_core(target, source, env, graphics_extensions):
                   ['.glo', '.gls', '.glg','glossaries'],
                   ['.acn', '.acr', '.alg','acronyms'],
                   ['.nav', '.snm', '.out', '.toc','beamer'],
-                  ['newglossary',] ]
+                  ['newglossary',],
+                  ['.bcf', '.blg','biblatex'] ]
     # for newglossary the suffixes are added as we find the command
     # build the list of lists
     file_tests = []
index 048b0f0d6e2d3a47641d45276b90f656113ecfc5..43a6b608a267ae8ca3d4dd24aa1872f5346ccc42 100644 (file)
@@ -1,6 +1,6 @@
 # -*- python -*-
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -44,7 +44,7 @@ Textfile/Substfile builder for SCons.
     is unpredictible whether the expansion will occur.
 """
 
-__revision__ = "src/engine/SCons/Tool/textfile.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/textfile.py  2014/07/05 09:42:21 garyo"
 
 import SCons
 
index 834d5d5d46d3e3f1236fc9adc1294dc782652c34..596b12ee3bdeface42d857cde9409414851e7ae0 100644 (file)
@@ -5,7 +5,7 @@ XXX
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ XXX
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/tlib.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/tlib.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Tool
 import SCons.Tool.bcc32
index 1cc2ef25dc0a355991bd6289bb04960e0268650b..da51e97449e365ddfafb4ab400a22c6f17823ac2 100644 (file)
@@ -8,7 +8,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/wix.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/wix.py  2014/07/05 09:42:21 garyo"
 
 import SCons.Builder
 import SCons.Action
index 3224ec929a2902b244008093763fa374af8be692..cd94faedcade261d5cab665e7f978a011d77a7e1 100644 (file)
@@ -3,7 +3,7 @@
 Tool specific initialization of `xgettext` tool.
 """
 
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 # 
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -24,7 +24,7 @@ Tool specific initialization of `xgettext` tool.
 # 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__ = "src/engine/SCons/Tool/xgettext.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/xgettext.py  2014/07/05 09:42:21 garyo"
 
 #############################################################################
 class _CmdRunner(object):
index 15aca3968f09b5fce18f714045d33e0c0458e974..a1a490dafab097bb6bd129338cd6304393ab7ad8 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/yacc.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/yacc.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index 8a914cf2acfd4d03e5f7900f912de02d876cfb64..83cc9c382b8f9e3aafa3f912f4ceb5bda6f38951 100644 (file)
@@ -9,7 +9,7 @@ selection method.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Tool/zip.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Tool/zip.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 
index 9fc649bd5e97afc3fe30078aaded7e2b8d51e9f5..141fddfd07a1347166267719207721f5a92dfc41 100644 (file)
@@ -3,7 +3,7 @@
 Various utility functions go here.
 """
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -24,7 +24,7 @@ Various utility functions go here.
 # 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__ = "src/engine/SCons/Util.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Util.py  2014/07/05 09:42:21 garyo"
 
 import os
 import sys
index e7814bbb70a0fe274411c736d5e2e9762b666db5..974c645d207b29133cc4784aae8c50abd9fa0273 100644 (file)
@@ -12,7 +12,7 @@ Usage example:
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -34,7 +34,7 @@ Usage example:
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Variables/BoolVariable.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Variables/BoolVariable.py  2014/07/05 09:42:21 garyo"
 
 __all__ = ['BoolVariable',]
 
index 33fa45bf21ee77913d45dd4190256609549899c5..1402077dae6fa5f757d7bff8730d8acd26c0394b 100644 (file)
@@ -15,7 +15,7 @@ Usage example:
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -37,7 +37,7 @@ Usage example:
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Variables/EnumVariable.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Variables/EnumVariable.py  2014/07/05 09:42:21 garyo"
 
 __all__ = ['EnumVariable',]
 
index e831f68cb151a6b6ac3ca3d2159f58e3ea67823f..99ed31db2b6b38b1b00a52fe5357c104fd264733 100644 (file)
@@ -25,7 +25,7 @@ Usage example:
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -46,7 +46,7 @@ Usage example:
 # 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__ = "src/engine/SCons/Variables/ListVariable.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Variables/ListVariable.py  2014/07/05 09:42:21 garyo"
 
 # Know Bug: This should behave like a Set-Type, but does not really,
 # since elements can occur twice.
index 72e3674d5ac042015606a202ca3ee6c7d7633399..96666b7db48b8c3e6d7c75b9df7ac8e58be4eb67 100644 (file)
@@ -28,7 +28,7 @@ Usage example:
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -50,7 +50,7 @@ Usage example:
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Variables/PackageVariable.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Variables/PackageVariable.py  2014/07/05 09:42:21 garyo"
 
 __all__ = ['PackageVariable',]
 
index 556de5911a1812006f2a64fc66cfcc4d1fba99f9..70275dc92a37645e352e2260db632b34eb5f508e 100644 (file)
@@ -46,7 +46,7 @@ Usage example:
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -68,7 +68,7 @@ Usage example:
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 
-__revision__ = "src/engine/SCons/Variables/PathVariable.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Variables/PathVariable.py  2014/07/05 09:42:21 garyo"
 
 __all__ = ['PathVariable',]
 
index f5e9b93d1e1a49e51780a51f5a1dbcab3c1c8dee..8c90fc7c0edd97b5bfdab2862ef70255288da242 100644 (file)
@@ -5,7 +5,7 @@ customizable variables to an SCons build.
 """
 
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@ customizable variables to an SCons build.
 # 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__ = "src/engine/SCons/Variables/__init__.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Variables/__init__.py  2014/07/05 09:42:21 garyo"
 
 import os.path
 import sys
index bbbd1dc4b2c3b9ab1bfc355fae796c6cc82935a6..cb7f556e1e9d900dc98e2318a6f5e35b322c5470 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
+# Copyright (c) 2001 - 2014 The SCons Foundation
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@ This file implements the warnings framework for SCons.
 
 """
 
-__revision__ = "src/engine/SCons/Warnings.py  2014/03/02 14:18:15 garyo"
+__revision__ = "src/engine/SCons/Warnings.py  2014/07/05 09:42:21 garyo"
 
 import sys
 
index f41a1b6b9adf44a94f5ca61bd3c47ee26121b6f2..031bae41585f4a36c2a9bdfef8a0fac0ef6900d5 100644 (file)
@@ -5,7 +5,7 @@ The main package for the SCons software construction utility.
 """