$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r58775 - trunk/tools/build/v2/tools
From: ghost_at_[hidden]
Date: 2010-01-06 14:00:49
Author: vladimir_prus
Date: 2010-01-06 14:00:48 EST (Wed, 06 Jan 2010)
New Revision: 58775
URL: http://svn.boost.org/trac/boost/changeset/58775
Log:
Do not relink on installation if dll paths did not change.
Text files modified: 
   trunk/tools/build/v2/tools/stage.jam |    28 +++++++++++++++++++++++++---            
   1 files changed, 25 insertions(+), 3 deletions(-)
Modified: trunk/tools/build/v2/tools/stage.jam
==============================================================================
--- trunk/tools/build/v2/tools/stage.jam	(original)
+++ trunk/tools/build/v2/tools/stage.jam	2010-01-06 14:00:48 EST (Wed, 06 Jan 2010)
@@ -354,18 +354,40 @@
 
     rule run ( project name ? : property-set : source : multiple ? )
     {
+        local need-relink ;
+        
         if [ $(property-set).get <os> ] in NT CYGWIN ||
             [ $(property-set).get <target-os> ] in windows cygwin
         {
-            # Relinking is never needed on NT.
-            return [ stage.copy-file $(project)
-              : $(source) : $(property-set) ] ;
         }
         else
         {
+            # See if the dll-path properties are not changed during
+            # install. If so, copy, don't relink.
+            local a = [ $(source).action ] ;
+            local p = [ $(a).properties ] ;
+            local original = [ $(p).get <dll-path> ] ;
+            local current = [ $(property-set).get <dll-path> ] ;
+            
+            ECHO "XXX" $(current) "--" $(original) ;
+
+            if $(current) != $(original)
+            {
+                need-relink = true ;
+            }            
+        }
+        
+            
+        if $(need-relink)
+        {
             return [ stage.relink-file $(project)
               : $(source) : $(property-set) ] ;
         }
+        else
+        {
+            return [ stage.copy-file $(project)
+              : $(source) : $(property-set) ] ;
+        }
     }
 }