diff --git a/src/tools/stage.jam b/src/tools/stage.jam index fcbcd5acc..769b5f574 100644 --- a/src/tools/stage.jam +++ b/src/tools/stage.jam @@ -354,16 +354,38 @@ class installed-exe-generator : generator rule run ( project name ? : property-set : source : multiple ? ) { + local need-relink ; + if [ $(property-set).get ] in NT CYGWIN || [ $(property-set).get ] in windows cygwin { - # Relinking is never needed on NT. - return [ stage.copy-file $(project) + } + 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 ] ; + local current = [ $(property-set).get ] ; + + ECHO "XXX" $(current) "--" $(original) ; + + if $(current) != $(original) + { + need-relink = true ; + } + } + + + if $(need-relink) + { + return [ stage.relink-file $(project) : $(source) : $(property-set) ] ; } else { - return [ stage.relink-file $(project) + return [ stage.copy-file $(project) : $(source) : $(property-set) ] ; } }