$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: ghost_at_[hidden]
Date: 2007-08-26 13:15:56
Author: vladimir_prus
Date: 2007-08-26 13:15:51 EDT (Sun, 26 Aug 2007)
New Revision: 38968
URL: http://svn.boost.org/trac/boost/changeset/38968
Log:
Use SVN for nightly builds
Text files modified: 
   trunk/tools/build/v2/build/virtual-target.jam |    93 ++++++++++++++++++++++++--------------- 
   trunk/tools/build/v2/nightly.sh               |     2                                         
   trunk/tools/build/v2/tools/builtin.jam        |    29 +++++------                             
   trunk/tools/build/v2/tools/sun.jam            |     7 +++                                     
   trunk/tools/build/v2/util/path.jam            |     9 +++                                     
   5 files changed, 86 insertions(+), 54 deletions(-)
Modified: trunk/tools/build/v2/build/virtual-target.jam
==============================================================================
--- trunk/tools/build/v2/build/virtual-target.jam	(original)
+++ trunk/tools/build/v2/build/virtual-target.jam	2007-08-26 13:15:51 EDT (Sun, 26 Aug 2007)
@@ -378,40 +378,18 @@
                         
             return l$(location-grist) ;
         }                
-    }            
-
-    # Given the target name specified in constructor, returns the
-    # name which should be really used, by looking at the <tag> properties.
-    # The tag properties come in two flavour:
-    #   - <tag>value, 
-    #   - <tag>@rule-name
-    # In the first case, value is just added to name
-    # In the second case, the specified rule is called with specified name,
-    # target type and properties and should return the new name.
-    # If not <tag> property is specified, or the rule specified by
-    # <tag> returns nothing, returns the result of calling 
-    # virtual-target.add-suffix
-    rule _adjust-name ( specified-name )
+    }
+    
+    # Applies the <tag> feature to the specified name,
+    # and returns the new name. If there no <tag>
+    # or <tag> rule retuend nothing, return empty string.
+    # 'ps' is the property set to be used when calling
+    # the 'tag' rule. Typically, that should be
+    # obtained from 'tag-properties'.
+    rule apply-tag ( specified-name : ps )
     {        
-        local ps ;
-        if $(self.action) 
-        {
-            ps = [ $(self.action).properties ] ;
-        }
-        else
-        {
-            ps = [ property-set.empty ] ;
-        }
-        
-        #~ We add ourselves to the properties so that any tag rule can get
-        #~ more direct information about the target than just that available
-        #~ through the properties. This is useful in implementing
-        #~ name changes based on the sources of the target. For example to
-        #~ make unique names of object files based on the source file.
-        #~ --grafik
-        ps = [ property-set.create [ $(ps).raw ] <target>$(__name__) ] ;
-        
         local tag = [ $(ps).get <tag> ] ;
+        local result ;
 
         if $(tag)
         {
@@ -423,7 +401,7 @@
                     errors.error "<tag>@rulename is present but is not the only <tag> feature" ;
                 }
                 
-                self.name = [ indirect.call $(rule-name) $(specified-name) :
+                result = [ indirect.call $(rule-name) $(specified-name) :
                   $(self.type) :  $(ps) ] ;
             }
             else
@@ -431,14 +409,57 @@
                 errors.error 
                   "The value of the <tag> feature must be '@rule-nane'" ;
             }
+        }        
+        return $(result) ;
+    }
+
+    rule tag-properties ( )
+    {        
+        local ps ;
+        if $(self.action) 
+        {
+            ps = [ $(self.action).properties ] ;
+        }
+        else
+        {
+            ps = [ property-set.empty ] ;            
         }
+
         
-        # If there's no tag or the tag rule returned nothing.
-        if ! $(tag) || ! $(self.name)
+        #~ We add ourselves to the properties so that any tag rule can get
+        #~ more direct information about the target than just that available
+        #~ through the properties. This is useful in implementing
+        #~ name changes based on the sources of the target. For example to
+        #~ make unique names of object files based on the source file.
+        #~ --grafik
+        ps = [ property-set.create [ $(ps).raw ] <target>$(__name__) ] ;
+
+        return $(ps) ;
+    }
+        
+    # Given the target name specified in constructor, returns the
+    # name which should be really used, by looking at the <tag> properties.
+    # The tag properties come in two flavour:
+    #   - <tag>value, 
+    #   - <tag>@rule-name
+    # In the first case, value is just added to name
+    # In the second case, the specified rule is called with specified name,
+    # target type and properties and should return the new name.
+    # If not <tag> property is specified, or the rule specified by
+    # <tag> returns nothing, returns the result of calling 
+    # virtual-target.add-suffix
+    rule _adjust-name ( specified-name )
+    {        
+        local ps = [ tag-properties ] ;
+        
+        self.name = [ apply-tag $(specified-name) : $(ps) ] ;
+        # If tag rule does not exists or returned nothing,
+        # just add prefix/suffix.
+        if ! $(self.name)
         {                            
             self.name = [ virtual-target.add-prefix-and-suffix
                 $(specified-name) : $(self.type) : $(ps) ] ;
-        }    
+        }
     }
 
     rule actualize-no-scanner ( )
Modified: trunk/tools/build/v2/nightly.sh
==============================================================================
--- trunk/tools/build/v2/nightly.sh	(original)
+++ trunk/tools/build/v2/nightly.sh	2007-08-26 13:15:51 EDT (Sun, 26 Aug 2007)
@@ -18,7 +18,7 @@
 cd /tmp
 rm -rf boost-build
 echo "Checking out sources"
-cvs -d :ext:vladimir_prus_at_[hidden]:/cvsroot/boost co -P -d  boost-build boost/tools > /tmp/boost_build_checkout_log
+svn co http://svn.boost.org/svn/boost/trunk/tools boost-build > /tmp/boost_build_checkout_log
 mv /tmp/boost_build_checkout_log boost-build/checkout-log
 cd boost-build/build/v2
 echo "Building packages and uploading docs"
Modified: trunk/tools/build/v2/tools/builtin.jam
==============================================================================
--- trunk/tools/build/v2/tools/builtin.jam	(original)
+++ trunk/tools/build/v2/tools/builtin.jam	2007-08-26 13:15:51 EDT (Sun, 26 Aug 2007)
@@ -333,31 +333,28 @@
     rule __init__ ( name     
         : project 
         : shared ?                                
-        : real-name ?
         : search *
         : action
     )
     {
-        abstract-file-target.__init__ $(name) : SEARCHED_LIB : $(project) 
-          : $(action) ;
+        abstract-file-target.__init__ $(name) exact : SEARCHED_LIB : $(project) 
+          : $(action) : ;
+        
+        local rn = [ apply-tag $(name) : [ tag-properties ] ] ;
+        if $(rn)
+        {
+           self.name = $(rn) ;
+        }        
         
         self.shared = $(shared) ;
-        self.real-name = $(real-name) ;
-        self.real-name ?= $(name) ;
         self.search = $(search) ;
     }
-    
-    
+        
     rule shared ( )
     {
         return $(self.shared) ;
     }
-    
-    rule real-name ( ) 
-    {
-        return $(self.real-name) ;
-    }
-    
+        
     rule search ( )
     {
         return $(self.search) ;
@@ -578,8 +575,8 @@
             local search = [ feature.get-values <search> : $(properties) ] ;
 
             a = [ new null-action $(property-set) ] ;
-            local t = [ new searched-lib-target $(name) : $(project) : $(shared)
-                            : [ feature.get-values <name> : $(properties) ]
+            local lib-name = [ feature.get-values <name> : $(properties) ] ;
+            local t = [ new searched-lib-target $(lib-name) : $(project) : $(shared)
                             : $(search)
                             : $(a)
                       ] ;
@@ -809,7 +806,7 @@
         {
             if [ type.is-derived [ $(s).type ] SEARCHED_LIB ]
             {
-                local name = [ $(s).real-name ] ;
+                local name = [ $(s).name ] ;
                 if [ $(s).shared ] 
                 {                    
                     fsa +=  $(name) ;
Modified: trunk/tools/build/v2/tools/sun.jam
==============================================================================
--- trunk/tools/build/v2/tools/sun.jam	(original)
+++ trunk/tools/build/v2/tools/sun.jam	2007-08-26 13:15:51 EDT (Sun, 26 Aug 2007)
@@ -54,6 +54,13 @@
 
 flags sun.compile.c++ OPTIONS <inlining>off : +d ;
 
+# The -m32 and -m64 options are supported starting
+# with Sun Studio 12.  On earlier compilers, the
+# 'address-model' feature is not supported and should not
+# be used. Instead, use -xarch=generic64 command line
+# option.
+# See http://svn.boost.org/trac/boost/ticket/1186
+# for details.
 flags sun OPTIONS <address-model>32 : -m32 ;
 flags sun OPTIONS <address-model>64 : -m64 ;
 # On sparc, there's a difference between -Kpic
Modified: trunk/tools/build/v2/util/path.jam
==============================================================================
--- trunk/tools/build/v2/util/path.jam	(original)
+++ trunk/tools/build/v2/util/path.jam	2007-08-26 13:15:51 EDT (Sun, 26 Aug 2007)
@@ -380,7 +380,14 @@
                 errors.error $(child) is not a subdir of $(parent) ;
             }                
         }    
-        return [ join $(split2) ] ;    
+        if $(split2)
+        {
+            return [ join $(split2) ] ;    
+        }
+        else
+        {
+            return "." ;
+        }
     }    
 }