$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: ghost_at_[hidden]
Date: 2007-09-30 14:43:09
Author: vladimir_prus
Date: 2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
New Revision: 39622
URL: http://svn.boost.org/trac/boost/changeset/39622
Log:
Merge from trunk
Added:
   branches/build/Milestone_12/jam/doc/history.qbk
      - copied unchanged from r39621, /trunk/tools/jam/doc/history.qbk
Properties modified: 
   branches/build/Milestone_12/jam/build_dist.bat   (contents, props changed)
   branches/build/Milestone_12/jam/build_dist.sh   (contents, props changed)
Text files modified: 
   branches/build/Milestone_12/jam/build_dist.bat     |    35 ++++++++--                              
   branches/build/Milestone_12/jam/build_dist.sh      |    28 ++++++--                                
   branches/build/Milestone_12/jam/doc/bjam.qbk       |     9 ++                                      
   branches/build/Milestone_12/jam/src/boost-jam.spec |   128 ++++++++++++++++++++--------------------
   branches/build/Milestone_12/jam/src/build.jam      |    48 ++++++++++-----                         
   branches/build/Milestone_12/jam/src/compile.c      |     1                                         
   branches/build/Milestone_12/jam/src/execunix.c     |    18 ++++-                                   
   branches/build/Milestone_12/jam/src/patchlevel.h   |     6                                         
   8 files changed, 170 insertions(+), 103 deletions(-)
Modified: branches/build/Milestone_12/jam/build_dist.bat
==============================================================================
--- branches/build/Milestone_12/jam/build_dist.bat	(original)
+++ branches/build/Milestone_12/jam/build_dist.bat	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -1,15 +1,36 @@
 @ECHO OFF
 
-REM ~ Copyright 2006 Rene Rivera.
+REM ~ Copyright 2006-2007 Rene Rivera.
 REM ~ Distributed under the Boost Software License, Version 1.0.
 REM ~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-setlocal
+REM ~ Make stage for building.
+rd /S /Q stage
+md stage
+cd stage
 
-cd doc
-del /F /S /Q html
-bjam --v2
-del /F /S /Q ..\src\images ..\src\jam ..\src\*.html ..\src\*.png ..\src\*.css ..\src\LICENSE*.txt
-xcopy /S /I /Y html ..\src
+REM ~ Copy sources to stage.
 cd ..\src
+xcopy *.bat ..\stage\
+xcopy *.jam ..\stage\
+xcopy *.sh ..\stage\
+xcopy *.com ..\stage\
+xcopy *.c ..\stage\
+xcopy *.h ..\stage\
+xcopy *.y ..\stage\
+xcopy *.yy ..\stage\
+xcopy Jambase ..\stage\
+xcopy /S /I /Y modules ..\stage\modules
+xcopy /S /I /Y boehm_gc ..\stage\boehm_gc
+cd ..\stage
+call .\build.bat
+
+REM ~ Build docs, and copy result to stage.
+cd ..\doc
+rd /S /Q html
+..\stage\bin.ntx86\bjam --v2
+xcopy /S /I /Y html ..\stage
+cd ..\stage
+
+REM ~ Build distribution archives.
 call .\build.bat --- dist
Modified: branches/build/Milestone_12/jam/build_dist.sh
==============================================================================
--- branches/build/Milestone_12/jam/build_dist.sh	(original)
+++ branches/build/Milestone_12/jam/build_dist.sh	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -1,13 +1,27 @@
 #!/bin/sh
 
-#~ Copyright 2002-2005 Rene Rivera.
+#~ Copyright 2006-2007 Rene Rivera.
 #~ Distributed under the Boost Software License, Version 1.0.
 #~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-cd doc
-rm -Rf html
-bjam --v2
-rm -Rf ../src/images ../src/jam ../src/*.html ../src/*.png ../src/*.css ../src/LICENSE*.txt
-cp -R html/* ../src
+#~ Make stage for building.
+rm -rf stage
+mkdir stage
+cd stage
+
+#~ Copy sources to stage.
 cd ../src
-. ./build.sh --- dist
+cp -R *.bat *.jam *.sh *.com *.c *.h *.y *.yy Jambase modules boehm_gc ../stage
+find ../stage -name '.svn' -type d -exec rm -rf '{}' ';'
+cd ../stage
+./build.sh
+
+#~ Build docs, and copy result to stage.
+cd ../doc
+rm -Rf html
+../stage/bin.*/bjam --v2
+cp -R html/* ../stage
+cd ../stage
+
+#~ Build distribution archives.
+sh ./build.sh --- dist
Modified: branches/build/Milestone_12/jam/doc/bjam.qbk
==============================================================================
--- branches/build/Milestone_12/jam/doc/bjam.qbk	(original)
+++ branches/build/Milestone_12/jam/doc/bjam.qbk	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -1,6 +1,6 @@
 [article Boost.Jam
     [quickbook 1.3]
-    [version: 3.1.15]
+    [version: 3.1.16]
     [authors [Rivera, Rene], [Abrahams, David], [Prus, Vladimir]]
     [copyright 2003 2004 2005 2006 2007 Rene Rivera, David Abrahams, Vladimir Prus]
     [category tool-build]
@@ -21,7 +21,7 @@
 
 [/ Shortcuts ]
 
-[def :version: 3.1.15]
+[def :version: 3.1.16]
 
 [/ Images ]
 
@@ -1738,3 +1738,8 @@
 [endsect]
 
 [endsect]
+
+
+[section History]
+[include history.qbk]
+[endsect]
\ No newline at end of file
Modified: branches/build/Milestone_12/jam/src/boost-jam.spec
==============================================================================
--- branches/build/Milestone_12/jam/src/boost-jam.spec	(original)
+++ branches/build/Milestone_12/jam/src/boost-jam.spec	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -1,64 +1,64 @@
-Name: boost-jam
-Version: 3.1.15
-Summary: Build tool
-Release: 1
-Source: %{name}-%{version}.tgz
-
-License: Boost Software License, Version 1.0
-Group: Development/Tools
-URL: http://www.boost.org
-Packager: Rene Rivera <grafik_at_[hidden]>
-BuildRoot: /var/tmp/%{name}-%{version}.root
-
-%description
-Boost Jam is a build tool based on FTJam, which in turn is based on 
-Perforce Jam. It contains significant improvements made to facilitate
-its use in the Boost Build System, but should be backward compatible 
-with Perforce Jam.
-
-Authors:
-    Perforce Jam : Cristopher Seiwald
-    FT Jam : David Turner
-    Boost Jam : David Abrahams
-
-Copyright:
-    /+\
-    +\  Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
-    \+/
-    License is hereby granted to use this software and distribute it
-    freely, as long as this copyright notice is retained and modifications 
-    are clearly marked.
-    ALL WARRANTIES ARE HEREBY DISCLAIMED.
-
-Also:
-    Copyright 2001-2006 David Abrahams.
-    Copyright 2002-2006 Rene Rivera.
-    Copyright 2003-2006 Vladimir Prus.
-    
-    Distributed under the Boost Software License, Version 1.0.
-    (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-%prep
-%setup -n %{name}-%{version}
-
-%build
-LOCATE_TARGET=bin ./build.sh $BOOST_JAM_TOOLSET
-
-%install
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT%{_bindir}
-mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-install -m 755 bin/bjam $RPM_BUILD_ROOT%{_bindir}/bjam-%{version}
-ln -sf bjam-%{version} $RPM_BUILD_ROOT%{_bindir}/bjam
-cp -R *.html *.png *.css LICENSE*.txt images jam $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-
-find $RPM_BUILD_ROOT -name CVS -type d -exec rm -r {} \;
-
-%files
-%defattr(-,root,root)
-%attr(755,root,root) /usr/bin/*
-%doc %{_docdir}/%{name}-%{version}
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+Name: boost-jam
+Version: 3.1.16
+Summary: Build tool
+Release: 1
+Source: %{name}-%{version}.tgz
+
+License: Boost Software License, Version 1.0
+Group: Development/Tools
+URL: http://www.boost.org
+Packager: Rene Rivera <grafik_at_[hidden]>
+BuildRoot: /var/tmp/%{name}-%{version}.root
+
+%description
+Boost Jam is a build tool based on FTJam, which in turn is based on 
+Perforce Jam. It contains significant improvements made to facilitate
+its use in the Boost Build System, but should be backward compatible 
+with Perforce Jam.
+
+Authors:
+    Perforce Jam : Cristopher Seiwald
+    FT Jam : David Turner
+    Boost Jam : David Abrahams
+
+Copyright:
+    /+\
+    +\  Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
+    \+/
+    License is hereby granted to use this software and distribute it
+    freely, as long as this copyright notice is retained and modifications 
+    are clearly marked.
+    ALL WARRANTIES ARE HEREBY DISCLAIMED.
+
+Also:
+    Copyright 2001-2006 David Abrahams.
+    Copyright 2002-2006 Rene Rivera.
+    Copyright 2003-2006 Vladimir Prus.
+    
+    Distributed under the Boost Software License, Version 1.0.
+    (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+%prep
+%setup -n %{name}-%{version}
+
+%build
+LOCATE_TARGET=bin ./build.sh $BOOST_JAM_TOOLSET
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT%{_bindir}
+mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+install -m 755 bin/bjam $RPM_BUILD_ROOT%{_bindir}/bjam-%{version}
+ln -sf bjam-%{version} $RPM_BUILD_ROOT%{_bindir}/bjam
+cp -R *.html *.png *.css LICENSE*.txt images jam $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+
+find $RPM_BUILD_ROOT -name CVS -type d -exec rm -r {} \;
+
+%files
+%defattr(-,root,root)
+%attr(755,root,root) /usr/bin/*
+%doc %{_docdir}/%{name}-%{version}
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
Modified: branches/build/Milestone_12/jam/src/build.jam
==============================================================================
--- branches/build/Milestone_12/jam/src/build.jam	(original)
+++ branches/build/Milestone_12/jam/src/build.jam	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -13,7 +13,7 @@
 ./ ?= "" ; 
 
 # Info about what we are building.
-_VERSION_ = 3 1 15 ;
+_VERSION_ = 3 1 16 ;
 NAME = boost-jam ;
 VERSION = $(_VERSION_:J=$(.)) ;
 RELEASE = 1 ;
@@ -818,18 +818,19 @@
     build.jam build.bat build.sh build_vms.com
     Jambase
     jamgram.y jamgram.yy
-    [ .path debian changelog ]
-    [ .path debian control ]
-    [ .path debian copyright ]
-    [ .path debian jam.man.sgml ]
-    [ .path debian rules ]
     [ .path modules set.c ]
     [ .path modules path.c ]
     [ .path modules regex.c ]
     [ .path modules property-set.c ]
     [ .path modules sequence.c ]
     [ .path modules order.c ]
-    boost-jam.spec
+    [ GLOB [ .path boehm_gc ] : * ]
+    [ GLOB [ .path boehm_gc include ] : * ]
+    [ GLOB [ .path boehm_gc include private ] : * ]
+    [ GLOB [ .path boehm_gc cord ] : * ]
+    [ GLOB [ .path boehm_gc Mac_files ] : * ]
+    [ GLOB [ .path boehm_gc tests ] : * ]
+    [ GLOB [ .path boehm_gc doc ] : * ]
     ;
 dist.bin =
     bjam
@@ -863,9 +864,19 @@
 }
 if $(UNIX)
 {
+    tar ?= [ GLOB $(PATH) : star bsdtar tar ] ;
+    tar = $(tar[1]) ;
+    switch $(tar:D=:S=)
+    {
+        case star : tar += -c artype=pax -D -d -to-stdout ;
+        case * : tar += -c -f - ;
+    }
     actions [PACK] {
-    tar zcf "$(<)" "$(>)"
+    "$(tar)" "$(>)" | gzip -c9 > "$(<)"
     }
+    #~ actions [PACK] {
+    #~ tar cf "$(<:S=.tar)" "$(>)"
+    #~ }
     actions [ZIP] {
     gzip -c9 "$(>)" > "$(<)"
     }
@@ -893,16 +904,21 @@
 rule .package ( dst-dir : src-files + )
 {
     local dst-files ;
+    local src-files-actual ;
     for local src-path in $(src-files)
     {
-        local src-subdir = $(src-path:D) ;
-        local src-file = $(src-path) ;
-        while $(src-subdir:D) { src-subdir = $(src-subdir:D) ; }
-        if $(src-subdir) = ".."
+        if ! [ GLOB $(src-path:P) : $(src-path:B) ] || [ CHECK_IF_FILE $(src-path) ]
         {
-            src-file = $(src-file:D=) ;
+            local src-subdir = $(src-path:D) ;
+            local src-file = $(src-path) ;
+            while $(src-subdir:D) { src-subdir = $(src-subdir:D) ; }
+            if $(src-subdir) = ".."
+            {
+                src-file = $(src-file:D=) ;
+            }
+            dst-files += $(src-file:R=$(dst-dir)) ;
+            src-files-actual += $(src-path) ;
         }
-        dst-files += $(src-file:R=$(dst-dir)) ;
     }
     
     local pack = ;
@@ -913,7 +929,7 @@
     DEPENDS $(pack) : $(dst-files) ;
     
     local dst-files-queue = $(dst-files) ;
-    for local src-path in $(src-files)
+    for local src-path in $(src-files-actual)
     {
         local dst-file = $(dst-files-queue[1]) ;
         dst-files-queue = $(dst-files-queue[2-]) ;
@@ -976,6 +992,6 @@
     .package $(NAME)-$(VERSION)-$(RELEASE)-$(platform) : $(dist.bin) ;
     if $(rpm-tool)
     {
-        .rpm $(NAME)-$(VERSION)-$(RELEASE) : $(NAME)-$(VERSION).tgz ;
+        #~ .rpm $(NAME)-$(VERSION)-$(RELEASE) : $(NAME)-$(VERSION).tgz ;
     }
 }
Modified: branches/build/Milestone_12/jam/src/compile.c
==============================================================================
--- branches/build/Milestone_12/jam/src/compile.c	(original)
+++ branches/build/Milestone_12/jam/src/compile.c	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -1016,6 +1016,7 @@
         /*  Make targets[1,N-1] depend on targets[0], to describe the multply
             generated targets for the rule. Do it with includes, to reflect
             non-build dependency. */
+        if ( action->targets )
         {
             TARGET * t0 = action->targets->target;
             for ( t = action->targets->next; t; t = t->next )
Modified: branches/build/Milestone_12/jam/src/execunix.c
==============================================================================
--- branches/build/Milestone_12/jam/src/execunix.c	(original)
+++ branches/build/Milestone_12/jam/src/execunix.c	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -62,7 +62,7 @@
 
 static clock_t tps = 0;
 static struct timeval tv;
-static int timeout = 0;
+static int select_timeout = 0;
 static int intr = 0;
 static int cmdsrunning = 0;
 
@@ -221,6 +221,13 @@
              * we use killpg(pid, SIGKILL) to kill the
              * process group leader and all its children.
              */
+             if (0 < globs.timeout)
+             {
+                struct rlimit r_limit;
+                r_limit.rlim_cur = globs.timeout;
+                r_limit.rlim_max = globs.timeout;
+                setrlimit(RLIMIT_CPU, &r_limit);
+            }
             setpgid(cmdtab[slot].pid, cmdtab[slot].pid);
 
             execvp( argv[0], argv );
@@ -358,7 +365,7 @@
     int i, fd_max = 0;
     struct tms buf;
     clock_t current = times(&buf);
-    timeout = globs.timeout;
+    select_timeout = globs.timeout;
 
     /* compute max read file descriptor for use in select */
     FD_ZERO(fds);
@@ -380,7 +387,10 @@
 
         if (globs.timeout && cmdtab[i].pid) {
             clock_t consumed = (current - cmdtab[i].start_time) / tps;
-            timeout = (globs.timeout - consumed) < timeout ? (globs.timeout - consumed) : timeout;
+            clock_t process_timesout = globs.timeout - consumed;
+            if (0 < process_timesout && process_timesout < select_timeout) {
+                select_timeout = process_timesout;
+            }
             if (globs.timeout <= consumed) {
                 killpg(cmdtab[i].pid, SIGKILL);
                 cmdtab[i].exit_reason = EXIT_TIMEOUT;
@@ -418,7 +428,7 @@
 
         if (0 < globs.timeout) {
             /* force select to timeout so we can terminate expired processes */
-            tv.tv_sec = timeout;
+            tv.tv_sec = select_timeout;
             tv.tv_usec = 0;
 
             /* select will wait until: io on a descriptor, a signal, or we time out */
Modified: branches/build/Milestone_12/jam/src/patchlevel.h
==============================================================================
--- branches/build/Milestone_12/jam/src/patchlevel.h	(original)
+++ branches/build/Milestone_12/jam/src/patchlevel.h	2007-09-30 14:43:06 EDT (Sun, 30 Sep 2007)
@@ -9,9 +9,9 @@
 
 #define VERSION_MAJOR 3
 #define VERSION_MINOR 1
-#define VERSION_PATCH 15
+#define VERSION_PATCH 16
 #define VERSION_MAJOR_SYM "03"
 #define VERSION_MINOR_SYM "1"
-#define VERSION_PATCH_SYM "15"
-#define VERSION "3.1.15"
+#define VERSION_PATCH_SYM "16"
+#define VERSION "3.1.16"
 #define JAMVERSYM "JAMVERSION=3.1"