[pkg-boost-commits] r14066 - in boost-jam/branches/upstream/current: . jam
cavok at alioth.debian.org
cavok at alioth.debian.org
Sun May 13 21:31:20 UTC 2007
Author: cavok
Date: 2007-05-13 21:31:20 +0000 (Sun, 13 May 2007)
New Revision: 14066
Modified:
boost-jam/branches/upstream/current/boost-jam.spec
boost-jam/branches/upstream/current/boostbook.css
boost-jam/branches/upstream/current/build.bat
boost-jam/branches/upstream/current/build.jam
boost-jam/branches/upstream/current/builtins.c
boost-jam/branches/upstream/current/execnt.c
boost-jam/branches/upstream/current/headers.c
boost-jam/branches/upstream/current/index.html
boost-jam/branches/upstream/current/jam/building.html
boost-jam/branches/upstream/current/jam/language.html
boost-jam/branches/upstream/current/jam/miscellaneous.html
boost-jam/branches/upstream/current/jam/usage.html
boost-jam/branches/upstream/current/patchlevel.h
boost-jam/branches/upstream/current/variable.c
Log:
[svn-upgrade] Integrating new upstream version, boost-jam (3.1.14)
Modified: boost-jam/branches/upstream/current/boost-jam.spec
===================================================================
--- boost-jam/branches/upstream/current/boost-jam.spec 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/boost-jam.spec 2007-05-13 21:31:20 UTC (rev 14066)
@@ -1,5 +1,5 @@
Name: boost-jam
-Version: 3.1.13
+Version: 3.1.14
Summary: Build tool
Release: 1
Source: %{name}-%{version}.tgz
Modified: boost-jam/branches/upstream/current/boostbook.css
===================================================================
--- boost-jam/branches/upstream/current/boostbook.css 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/boostbook.css 2007-05-13 21:31:20 UTC (rev 14066)
@@ -2,9 +2,8 @@
Copyright (c) 2004 Joel de Guzman
http://spirit.sourceforge.net/
- Use, modification and distribution is subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
+ Distributed under the Boost Software License, Version 1.0. (See accompany-
+ ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
/*=============================================================================
@@ -509,3 +508,12 @@
font-weight: bold;
}
}
+
+/*=============================================================================
+ Images
+=============================================================================*/
+
+ span.inlinemediaobject img
+ {
+ vertical-align: middle;
+ }
\ No newline at end of file
Modified: boost-jam/branches/upstream/current/build.bat
===================================================================
--- boost-jam/branches/upstream/current/build.bat 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/build.bat 2007-05-13 21:31:20 UTC (rev 14066)
@@ -59,94 +59,94 @@
setlocal & endlocal
if NOT "_%VS80COMNTOOLS%_" == "__" (
- set BOOST_JAM_TOOLSET=vc8
- set BOOST_JAM_TOOLSET_ROOT=%VS80COMNTOOLS%..\..\VC\
+ set "BOOST_JAM_TOOLSET=vc8"
+ set "BOOST_JAM_TOOLSET_ROOT=%VS80COMNTOOLS%..\..\VC\"
goto :eof)
setlocal & endlocal
if EXIST "%ProgramFiles%\Microsoft Visual Studio 8\VC\bin\VCVARS32.BAT" (
- set BOOST_JAM_TOOLSET=vc8
- set BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio 8\VC\
+ set "BOOST_JAM_TOOLSET=vc8"
+ set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio 8\VC\"
goto :eof)
setlocal & endlocal
if NOT "_%VS71COMNTOOLS%_" == "__" (
- set BOOST_JAM_TOOLSET=vc7
- set BOOST_JAM_TOOLSET_ROOT=%VS71COMNTOOLS%\..\..\VC7\
+ set "BOOST_JAM_TOOLSET=vc7"
+ set "BOOST_JAM_TOOLSET_ROOT=%VS71COMNTOOLS%\..\..\VC7\"
goto :eof)
setlocal & endlocal
if NOT "_%VCINSTALLDIR%_" == "__" (
- set BOOST_JAM_TOOLSET=vc7
- set BOOST_JAM_TOOLSET_ROOT=%VCINSTALLDIR%\VC7\
+ set "BOOST_JAM_TOOLSET=vc7"
+ set "BOOST_JAM_TOOLSET_ROOT=%VCINSTALLDIR%\VC7\"
goto :eof)
setlocal & endlocal
if EXIST "%ProgramFiles%\Microsoft Visual Studio .NET 2003\VC7\bin\VCVARS32.BAT" (
- set BOOST_JAM_TOOLSET=vc7
- set BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio .NET 2003\VC7\
+ set "BOOST_JAM_TOOLSET=vc7"
+ set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio .NET 2003\VC7\"
goto :eof)
setlocal & endlocal
if EXIST "%ProgramFiles%\Microsoft Visual Studio .NET\VC7\bin\VCVARS32.BAT" (
- set BOOST_JAM_TOOLSET=vc7
- set BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio .NET\VC7\
+ set "BOOST_JAM_TOOLSET=vc7"
+ set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio .NET\VC7\"
goto :eof)
setlocal & endlocal
if NOT "_%MSVCDir%_" == "__" (
- set BOOST_JAM_TOOLSET=msvc
- set BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\
+ set "BOOST_JAM_TOOLSET=msvc"
+ set "BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\"
goto :eof)
setlocal & endlocal
if EXIST "%ProgramFiles%\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" (
- set BOOST_JAM_TOOLSET=msvc
- set BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio\VC98\
+ set "BOOST_JAM_TOOLSET=msvc"
+ set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio\VC98\"
goto :eof)
setlocal & endlocal
if EXIST "%ProgramFiles%\Microsoft Visual C++\VC98\bin\VCVARS32.BAT" (
- set BOOST_JAM_TOOLSET=msvc
- set BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual C++\VC98\
+ set "BOOST_JAM_TOOLSET=msvc"
+ set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual C++\VC98\"
goto :eof)
setlocal & endlocal
call :Test_Path cl.exe
if not errorlevel 1 (
- set BOOST_JAM_TOOLSET=msvc
- set BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\
+ set "BOOST_JAM_TOOLSET=msvc"
+ set "BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\"
goto :eof)
setlocal & endlocal
call :Test_Path vcvars32.bat
if not errorlevel 1 (
- set BOOST_JAM_TOOLSET=msvc
+ set "BOOST_JAM_TOOLSET=msvc"
call "%FOUND_PATH%VCVARS32.BAT"
- set BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\
+ set "BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\"
goto :eof)
setlocal & endlocal
if EXIST "C:\Borland\BCC55\Bin\bcc32.exe" (
- set BOOST_JAM_TOOLSET=borland
- set BOOST_JAM_TOOLSET_ROOT=C:\Borland\BCC55\
+ set "BOOST_JAM_TOOLSET=borland"
+ set "BOOST_JAM_TOOLSET_ROOT=C:\Borland\BCC55\"
goto :eof)
setlocal & endlocal
call :Test_Path bcc32.exe
if not errorlevel 1 (
- set BOOST_JAM_TOOLSET=borland
- set BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\
+ set "BOOST_JAM_TOOLSET=borland"
+ set "BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\"
goto :eof)
setlocal & endlocal
call :Test_Path icl.exe
if not errorlevel 1 (
- set BOOST_JAM_TOOLSET=intel-win32
- set BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\
+ set "BOOST_JAM_TOOLSET=intel-win32"
+ set "BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\"
goto :eof)
setlocal & endlocal
if EXIST "C:\MinGW\bin\gcc.exe" (
- set BOOST_JAM_TOOLSET=mingw
- set BOOST_JAM_TOOLSET_ROOT=C:\MinGW\
+ set "BOOST_JAM_TOOLSET=mingw"
+ set "BOOST_JAM_TOOLSET_ROOT=C:\MinGW\"
goto :eof)
setlocal & endlocal
if NOT "_%CWFolder%_" == "__" (
- set BOOST_JAM_TOOLSET=metrowerks
- set BOOST_JAM_TOOLSET_ROOT=%CWFolder%\
+ set "BOOST_JAM_TOOLSET=metrowerks"
+ set "BOOST_JAM_TOOLSET_ROOT=%CWFolder%\"
goto :eof )
setlocal & endlocal
call :Test_Path mwcc.exe
if not errorlevel 1 (
- set BOOST_JAM_TOOLSET=metrowerks
- set BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\..\
+ set "BOOST_JAM_TOOLSET=metrowerks"
+ set "BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\..\"
goto :eof)
setlocal & endlocal
call :Error_Print "Could not find a suitable toolset."
@@ -157,16 +157,16 @@
setlocal & endlocal
call :Test_Path yacc.exe
if not errorlevel 1 (
- set YACC=yacc -d
+ set "YACC=yacc -d"
goto :eof)
setlocal & endlocal
call :Test_Path bison.exe
if not errorlevel 1 (
- set YACC=bison -d --yacc
+ set "YACC=bison -d --yacc"
goto :eof)
setlocal & endlocal
if EXIST "C:\Program Files\GnuWin32\bin\bison.exe" (
- set YACC="C:\Program Files\GnuWin32\bin\bison.exe" -d --yacc
+ set "YACC=C:\Program Files\GnuWin32\bin\bison.exe" -d --yacc
goto :eof)
setlocal & endlocal
call :Error_Print "Could not find Yacc to build the Jam grammar."
@@ -182,13 +182,13 @@
call :Guess_Toolset
if not errorlevel 1 goto Setup_Toolset
) else (
- call :Test_Option %1
+ call :Test_Option "%1"
if not errorlevel 1 (
call :Guess_Toolset
if not errorlevel 1 goto Setup_Toolset
) else (
setlocal & endlocal
- set BOOST_JAM_TOOLSET=%1
+ set "BOOST_JAM_TOOLSET=%1"
shift
goto Setup_Toolset
)
@@ -206,60 +206,68 @@
REM is a single command, even though it's in multiple lines here.
if "_%BOOST_JAM_TOOLSET%_" == "_metrowerks_" (
if NOT "_%CWFolder%_" == "__" (
- set BOOST_JAM_TOOLSET_ROOT=%CWFolder%\) )
+ set "BOOST_JAM_TOOLSET_ROOT=%CWFolder%\"
+ ) )
if "_%BOOST_JAM_TOOLSET%_" == "_metrowerks_" (
if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
- set PATH=%BOOST_JAM_TOOLSET_ROOT%Other Metrowerks Tools\Command Line Tools;%PATH%)
- set BOOST_JAM_CC=mwcc -runtime ss -cwd include -DNT -lkernel32.lib -ladvapi32.lib -luser32.lib
- set BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe
- set BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe
- set BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe
- set _known_=1
+ set "PATH=%BOOST_JAM_TOOLSET_ROOT%Other Metrowerks Tools\Command Line Tools;%PATH%"
+ )
+ set "BOOST_JAM_CC=mwcc -runtime ss -cwd include -DNT -lkernel32.lib -ladvapi32.lib -luser32.lib"
+ set "BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe"
+ set "BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe"
+ set "BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_msvc_" (
if NOT "_%MSVCDir%_" == "__" (
- set BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\) )
+ set "BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\"
+ ) )
if "_%BOOST_JAM_TOOLSET%_" == "_msvc_" (
if EXIST "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" (
call "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" ) )
if "_%BOOST_JAM_TOOLSET%_" == "_msvc_" (
if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
- set PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%)
- set BOOST_JAM_CC=cl /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib advapi32.lib user32.lib
- set BOOST_JAM_OPT_JAM=/Febootstrap\jam0
- set BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0
- set BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0
- set _known_=1
+ set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"
+ )
+ set "BOOST_JAM_CC=cl /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib advapi32.lib user32.lib"
+ set "BOOST_JAM_OPT_JAM=/Febootstrap\jam0"
+ set "BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0"
+ set "BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_vc7_" (
if NOT "_%MSVCDir%_" == "__" (
- set BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\) )
+ set "BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\"
+ ) )
if "_%BOOST_JAM_TOOLSET%_" == "_vc7_" (
if EXIST "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" (
call "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" ) )
if "_%BOOST_JAM_TOOLSET%_" == "_vc7_" (
if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
- set PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%)
- set BOOST_JAM_CC=cl /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib advapi32.lib user32.lib
- set BOOST_JAM_OPT_JAM=/Febootstrap\jam0
- set BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0
- set BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0
- set _known_=1
+ set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"
+ )
+ set "BOOST_JAM_CC=cl /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib advapi32.lib user32.lib"
+ set "BOOST_JAM_OPT_JAM=/Febootstrap\jam0"
+ set "BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0"
+ set "BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_vc8_" (
if NOT "_%MSVCDir%_" == "__" (
- set BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\) )
+ set "BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\"
+ ) )
if "_%BOOST_JAM_TOOLSET%_" == "_vc8_" (
if EXIST "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" (
call "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" ) )
if "_%BOOST_JAM_TOOLSET%_" == "_vc8_" (
if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
- set PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%)
- set BOOST_JAM_CC=cl /nologo /RTC1 /Zi /MTd -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib
- set BOOST_JAM_OPT_JAM=/Febootstrap\jam0
- set BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0
- set BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0
- set _known_=1
+ set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"
+ )
+ set "BOOST_JAM_CC=cl /nologo /RTC1 /Zi /MTd -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib"
+ set "BOOST_JAM_OPT_JAM=/Febootstrap\jam0"
+ set "BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0"
+ set "BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_borland_" (
if "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
@@ -267,50 +275,55 @@
if "_%BOOST_JAM_TOOLSET%_" == "_borland_" (
if "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
if not errorlevel 1 (
- set BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\) ) )
+ set "BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\"
+ ) ) )
if "_%BOOST_JAM_TOOLSET%_" == "_borland_" (
- if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (set PATH=%BOOST_JAM_TOOLSET_ROOT%Bin;%PATH%)
- set BOOST_JAM_CC=bcc32 -WC -w- -q "-I%BOOST_JAM_TOOLSET_ROOT%Include" "-L%BOOST_JAM_TOOLSET_ROOT%Lib" /DNT -nbootstrap
- set BOOST_JAM_OPT_JAM=-ejam0
- set BOOST_JAM_OPT_MKJAMBASE=-emkjambasejam0
- set BOOST_JAM_OPT_YYACC=-eyyacc0
- set _known_=1
+ if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
+ set "PATH=%BOOST_JAM_TOOLSET_ROOT%Bin;%PATH%"
+ )
+ set "BOOST_JAM_CC=bcc32 -WC -w- -q "-I%BOOST_JAM_TOOLSET_ROOT%Include" "-L%BOOST_JAM_TOOLSET_ROOT%Lib" /DNT -nbootstrap"
+ set "BOOST_JAM_OPT_JAM=-ejam0"
+ set "BOOST_JAM_OPT_MKJAMBASE=-emkjambasejam0"
+ set "BOOST_JAM_OPT_YYACC=-eyyacc0"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_como_" (
- set BOOST_JAM_CC=como -DNT
- set BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe
- set BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe
- set BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe
- set _known_=1
+ set "BOOST_JAM_CC=como -DNT"
+ set "BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe"
+ set "BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe"
+ set "BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_gcc_" (
- set BOOST_JAM_CC=gcc -DNT
- set BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe
- set BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe
- set BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe
- set _known_=1
+ set "BOOST_JAM_CC=gcc -DNT"
+ set "BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe"
+ set "BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe"
+ set "BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_gcc-nocygwin_" (
- set BOOST_JAM_CC=gcc -DNT -mno-cygwin
- set BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe
- set BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe
- set BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe
- set _known_=1
+ set "BOOST_JAM_CC=gcc -DNT -mno-cygwin"
+ set "BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe"
+ set "BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe"
+ set "BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_intel-win32_" (
- set BOOST_JAM_CC=icl -DNT /nologo kernel32.lib advapi32.lib user32.lib
- set BOOST_JAM_OPT_JAM=/Febootstrap\jam0
- set BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0
- set BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0
- set _known_=1
+ set "BOOST_JAM_CC=icl -DNT /nologo kernel32.lib advapi32.lib user32.lib"
+ set "BOOST_JAM_OPT_JAM=/Febootstrap\jam0"
+ set "BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0"
+ set "BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0"
+ set "_known_=1"
)
if "_%BOOST_JAM_TOOLSET%_" == "_mingw_" (
- if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (set PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%)
- set BOOST_JAM_CC=gcc -DNT
- set BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe
- set BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe
- set BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe
- set _known_=1
+ if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
+ set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"
+ )
+ set "BOOST_JAM_CC=gcc -DNT"
+ set "BOOST_JAM_OPT_JAM=-o bootstrap\jam0.exe"
+ set "BOOST_JAM_OPT_MKJAMBASE=-o bootstrap\mkjambase0.exe"
+ set "BOOST_JAM_OPT_YYACC=-o bootstrap\yyacc0.exe"
+ set "_known_=1"
)
if "_%_known_%_" == "__" (
call :Error_Print "Unknown toolset: %BOOST_JAM_TOOLSET%"
Modified: boost-jam/branches/upstream/current/build.jam
===================================================================
--- boost-jam/branches/upstream/current/build.jam 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/build.jam 2007-05-13 21:31:20 UTC (rev 14066)
@@ -12,7 +12,7 @@
else { . = "." ; }
# Info about what we are building.
-_VERSION_ = 3 1 13 ;
+_VERSION_ = 3 1 14 ;
NAME = boost-jam ;
VERSION = $(_VERSION_:J=$(.)) ;
RELEASE = 1 ;
Modified: boost-jam/branches/upstream/current/builtins.c
===================================================================
--- boost-jam/branches/upstream/current/builtins.c 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/builtins.c 2007-05-13 21:31:20 UTC (rev 14066)
@@ -937,6 +937,17 @@
*result = list_new( *result, copystr( *(char**)np ) );
}
+static struct hash *get_running_module_vars()
+{
+ struct hash *dummy, *vars = NULL;
+ /* Get the global variables pointer (that of the currently running module) */
+ var_hash_swap(&vars);
+ dummy = vars;
+ /* Put the global variables pointer in its right place */
+ var_hash_swap(&dummy);
+ return vars;
+}
+
LIST *
builtin_varnames(
PARSE *parse,
@@ -946,8 +957,14 @@
LIST *result = L0;
module_t* source_module = bindmodule( arg0 ? arg0->string : 0 );
- if ( source_module->variables )
- hashenumerate( source_module->variables, add_hash_key, &result );
+ /* The running module _always_ has its 'variables' member set to NULL
+ * due to the way enter_module and var_hash_swap work */
+ struct hash *vars =
+ source_module == frame->module ?
+ get_running_module_vars() : source_module->variables;
+
+ if ( vars )
+ hashenumerate( vars, add_hash_key, &result );
return result;
}
Modified: boost-jam/branches/upstream/current/execnt.c
===================================================================
--- boost-jam/branches/upstream/current/execnt.c 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/execnt.c 2007-05-13 21:31:20 UTC (rev 14066)
@@ -915,6 +915,17 @@
return 0.0;
}
+static double
+creation_time(HANDLE process)
+{
+ FILETIME creation, exit, kernel, user, current;
+ if (GetProcessTimes(process, &creation, &exit, &kernel, &user))
+ {
+ return filetime_seconds(creation);
+ }
+ return 0.0;
+}
+
/* it's just stupidly silly that one has to do this! */
typedef struct PROCESS_BASIC_INFORMATION__ {
LONG ExitStatus;
@@ -998,10 +1009,17 @@
TerminateProcess(process,-2);
}
-int is_parent_child(DWORD parent, DWORD child)
+/* Recursive check if first process is parent (directly or indirectly) of
+the second one. Both processes are passed as process ids, not handles.
+Special return value 2 means that the second process is smss.exe and its
+parent process is System (first argument is ignored) */
+static int
+is_parent_child(DWORD parent, DWORD child)
{
HANDLE process_snapshot_h = INVALID_HANDLE_VALUE;
+ if (!child)
+ return 0;
if (parent == child)
return 1;
@@ -1016,8 +1034,70 @@
ok == TRUE;
ok = Process32Next(process_snapshot_h, &pinfo) )
{
- if (pinfo.th32ProcessID == child && pinfo.th32ParentProcessID)
- return is_parent_child(parent, pinfo.th32ParentProcessID);
+ if (pinfo.th32ProcessID == child)
+ {
+ /*
+ Unfortunately, process ids are not really unique. There might
+ be spurious "parent and child" relationship match between
+ two non-related processes if real parent process of a given
+ process has exited (while child process kept running as an
+ "orphan") and the process id of such parent process has been
+ reused by internals of the operating system when creating
+ another process. Thus additional check is needed - process
+ creation time. This check may fail (ie. return 0) for system
+ processes due to insufficient privileges, and that's OK. */
+ double tchild = 0.0;
+ double tparent = 0.0;
+ HANDLE hchild = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pinfo.th32ProcessID);
+
+ CloseHandle(process_snapshot_h);
+
+ /* csrss.exe may display message box like following:
+ xyz.exe - Unable To Locate Component
+ This application has failed to start because
+ boost_foo-bar.dll was not found. Re-installing the
+ application may fix the problem
+ This actually happens when starting test process that depends
+ on a dynamic library which failed to build. We want to
+ automatically close these message boxes even though csrss.exe
+ is not our child process. We may depend on the fact that (in
+ all current versions of Windows) csrss.exe is directly
+ child of smss.exe process, which in turn is directly child of
+ System process, which always has process id == 4 .
+ This check must be performed before comparison of process
+ creation time */
+ if (stricmp(pinfo.szExeFile, "csrss.exe") == 0
+ && is_parent_child(parent, pinfo.th32ParentProcessID) == 2)
+ {
+ return 1;
+ }
+ else if (stricmp(pinfo.szExeFile, "smss.exe") == 0
+ && pinfo.th32ParentProcessID == 4)
+ {
+ return 2;
+ }
+
+ if (hchild != 0)
+ {
+ HANDLE hparent = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pinfo.th32ParentProcessID);
+ if (hparent != 0)
+ {
+ tchild = creation_time(hchild);
+ tparent = creation_time(hparent);
+
+ CloseHandle(hparent);
+ }
+ CloseHandle(hchild);
+ }
+
+ /* return 0 if one of the following is true:
+ 1. we failed to read process creation time
+ 2. child was created before alleged parent */
+ if (tchild == 0.0 || tparent == 0.0 || tchild < tparent)
+ return 0;
+
+ return is_parent_child(parent, pinfo.th32ParentProcessID) & 1;
+ }
}
CloseHandle(process_snapshot_h);
@@ -1026,37 +1106,63 @@
return 0;
}
-int related(HANDLE h, DWORD p)
-{
- return is_parent_child(get_process_id(h), p);
-}
+typedef struct PROCESS_HANDLE_ID {HANDLE h; DWORD pid;} PROCESS_HANDLE_ID;
-BOOL CALLBACK window_enum(HWND hwnd, LPARAM lParam)
+/* This function is called by the operating system for each topmost window. */
+BOOL CALLBACK
+window_enum(HWND hwnd, LPARAM lParam)
{
- char buf[10] = {0};
- HANDLE h = *((HANDLE*) (lParam));
+ char buf[7] = {0};
+ PROCESS_HANDLE_ID p = *((PROCESS_HANDLE_ID*) (lParam));
DWORD pid = 0;
+ DWORD tid = 0;
- if (!GetClassNameA(hwnd, buf, 10))
- return TRUE; // failed to read class name
+ /* we want to find and close any window that:
+ 1. is visible and
+ 2. is a dialog and
+ 3. is displayed by any of our child processes */
+ if (!IsWindowVisible(hwnd))
+ return TRUE;
- if (strcmp(buf, "#32770"))
- return TRUE; // not a dialog
+ if (!GetClassNameA(hwnd, buf, sizeof(buf)))
+ return TRUE; /* failed to read class name; presume it's not a dialog */
+
+ if (strcmp(buf, "#32770") != 0)
+ return TRUE; /* not a dialog */
- GetWindowThreadProcessId(hwnd, &pid);
- if (related(h, pid))
+ /* GetWindowThreadProcessId returns 0 on error, otherwise thread id
+ of window message pump thread */
+ tid = GetWindowThreadProcessId(hwnd, &pid);
+
+ if (tid && is_parent_child(p.pid, pid))
{
- PostMessage(hwnd, WM_QUIT, 0, 0);
- // just one window at a time
+ /* ask really nice */
+ PostMessageA(hwnd, WM_CLOSE, 0, 0);
+ /* now wait and see if it worked. If not, insist */
+ if (WaitForSingleObject(p.h, 200) == WAIT_TIMEOUT)
+ {
+ PostThreadMessageA(tid, WM_QUIT, 0, 0);
+ WaitForSingleObject(p.h, 300);
+ }
+
+ /* done, we do not want to check any other window now */
return FALSE;
}
return TRUE;
}
-void close_alert(HANDLE process)
+static void
+close_alert(HANDLE process)
{
- EnumWindows(&window_enum, (LPARAM) &process);
+ DWORD pid = get_process_id(process);
+ /* If process already exited or we just cannot get its process id, do not
+ go any further */
+ if (pid)
+ {
+ PROCESS_HANDLE_ID p = {process, pid};
+ EnumWindows(&window_enum, (LPARAM) &p);
+ }
}
static int
@@ -1094,9 +1200,10 @@
if ( globs.timeout > 0 )
{
+ unsigned int alert_wait = 1;
/* with a timeout we wait for a finish or a timeout, we check every second
to see if something timed out */
- for (waitcode = WAIT_TIMEOUT; waitcode == WAIT_TIMEOUT;)
+ for (waitcode = WAIT_TIMEOUT; waitcode == WAIT_TIMEOUT; ++alert_wait)
{
waitcode = WaitForMultipleObjects( num_active, active_handles, FALSE, 1*1000 /* 1 second */ );
if ( waitcode == WAIT_TIMEOUT )
@@ -1105,10 +1212,16 @@
for ( i = 0; i < num_active; ++i )
{
double t = running_time(active_handles[i]);
+
+ /* periodically (each 5 secs) check and close message boxes
+ displayed by any of our child processes */
+ if ((alert_wait % ((unsigned int) 5)) == 0)
+ close_alert(active_handles[i]);
+
if ( t > (double)globs.timeout )
{
/* the job may have left an alert dialog around,
- try and get rid of it before killing */
+ try and get rid of it before killing */
close_alert(active_handles[i]);
/* we have a "runaway" job, kill it */
kill_all(0,active_handles[i]);
Modified: boost-jam/branches/upstream/current/headers.c
===================================================================
--- boost-jam/branches/upstream/current/headers.c 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/headers.c 2007-05-13 21:31:20 UTC (rev 14066)
@@ -148,6 +148,15 @@
while( fgets( buf, sizeof( buf ), f ) )
{
+ int size = strlen (buf);
+ /* Remove trailing \r and \n, if any. */
+ while (size > 0
+ && (buf[size-1] == '\n' && buf[size-1] == '\r'))
+ {
+ buf[size-1] = '\0';
+ --size;
+ }
+
for( i = 0; i < rec; i++ )
if( regexec( re[i], buf ) && re[i]->startp[1] )
{
Modified: boost-jam/branches/upstream/current/index.html
===================================================================
--- boost-jam/branches/upstream/current/index.html 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/index.html 2007-05-13 21:31:20 UTC (rev 14066)
@@ -1,10 +1,10 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Boost.Jam : 3.1.13</title>
+<title>Boost.Jam : 3.1.14</title>
<link rel="stylesheet" href="boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
-<link rel="start" href="index.html" title="Boost.Jam : 3.1.13">
+<link rel="start" href="index.html" title="Boost.Jam : 3.1.14">
<link rel="next" href="jam/building.html" title=" Building BJam">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
<div class="titlepage">
<div>
<div><h2 class="title">
-<a name="jam"></a>Boost.Jam : 3.1.13</h2></div>
+<a name="jam"></a>Boost.Jam : 3.1.14</h2></div>
<div><div class="author"><h3 class="author">
<span class="firstname">Rene</span> <span class="surname">Rivera</span>
</h3></div></div>
@@ -28,7 +28,7 @@
<div><p class="copyright">Copyright © 2003-2006 Rene
Rivera, David Abrahams, Vladimir Prus</p></div>
<div><div class="legalnotice">
-<a name="id2546892"></a><p>
+<a name="id2559082"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
@@ -76,11 +76,11 @@
Jam</a>.
</p>
<p>
- This is version 3.1.13 of BJam and is based on version 2.4 of Jam/MR:
+ This is version 3.1.14 of BJam and is based on version 2.4 of Jam/MR:
</p>
-<pre class="programlisting">/+\
+<pre class="programlisting"><span class="emphasis"><em>+\
+\ Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
-+/
+\+</em></span>
This is Release 2.4 of Jam/MR, a make-like program.
License is hereby granted to use this software and distribute it
freely, as long as this copyright notice is retained and modifications
@@ -121,7 +121,7 @@
</div>
</div>
<table width="100%"><tr>
-<td align="left"><small><p>Last revised: June 06, 2006 at 20:55:19 GMT</p></small></td>
+<td align="left"><small><p>Last revised: May 01, 2007 at 04:47:56 GMT</p></small></td>
<td align="right"><small></small></td>
</tr></table>
<hr>
Modified: boost-jam/branches/upstream/current/jam/building.html
===================================================================
--- boost-jam/branches/upstream/current/jam/building.html 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/jam/building.html 2007-05-13 21:31:20 UTC (rev 14066)
@@ -4,9 +4,9 @@
<title> Building BJam</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
-<link rel="start" href="../index.html" title="Boost.Jam : 3.1.13">
-<link rel="up" href="../index.html" title="Boost.Jam : 3.1.13">
-<link rel="prev" href="../index.html" title="Boost.Jam : 3.1.13">
+<link rel="start" href="../index.html" title="Boost.Jam : 3.1.14">
+<link rel="up" href="../index.html" title="Boost.Jam : 3.1.14">
+<link rel="prev" href="../index.html" title="Boost.Jam : 3.1.14">
<link rel="next" href="usage.html" title=" Using BJam">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -57,20 +57,23 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The toolset used to build Boost.Jam is independent of the toolsets used for
- Boost.Build. Only one version of Boost.Jam is needed to use Boost.Build.
- </p></td></tr>
+<tr><td align="left" valign="top">
+<p>
+ </p>
+<p>
+ The toolset used to build Boost.Jam is independent of the toolsets used
+ for Boost.Build. Only one version of Boost.Jam is needed to use Boost.Build.
+ </p>
+<p>
+ </p>
+</td></tr>
</table></div>
<p>
The supported toolsets, and wether they are auto-detected, are:
</p>
-<div class="informaltable">
-<h4>
-<a name="id2508292"></a>
- <span class="table-title">Supported Toolsets</span>
- </h4>
-<table class="table">
+<div class="table">
+<a name="id2520501"></a><p class="title"><b>Table 1. Supported Toolsets</b></p>
+<table class="table" summary="Supported Toolsets">
<colgroup>
<col>
<col>
@@ -78,216 +81,536 @@
<col>
</colgroup>
<thead><tr>
-<th>Script</th>
-<th>Platform</th>
-<th>Toolset</th>
-<th>Detection</th>
+<th>
+ <p>
+ Script
+ </p>
+ </th>
+<th>
+ <p>
+ Platform
+ </p>
+ </th>
+<th>
+ <p>
+ Toolset
+ </p>
+ </th>
+<th>
+ <p>
+ Detection
+ </p>
+ </th>
</tr></thead>
<tbody>
<tr>
-<td><code class="literal">build.bat</code></td>
-<td>Windows NT, 2000, and
- XP</td>
-<td> <a href="http://www.borland.com/bcppbuilder/freecompiler" target="_top"><code class="literal">borland</code></a><br>
+<td>
+ <p>
+ <code class="literal">build.bat</code>
+ </p>
+ </td>
+<td>
+ <p>
+ Windows NT, 2000, and XP
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.borland.com/bcppbuilder/freecompiler" target="_top"><code class="literal">borland</code></a><br>
<a href="http://www.borland.com/" target="_top">Borland</a> C++Builder (BCC
- 5.5)</td>
-<td> * Common install location: "<code class="literal">C:\Borland\BCC55</code>"<br>
- * <code class="literal">BCC32.EXE</code> in <code class="literal">PATH</code> </td>
+ 5.5)
+ </p>
+ </td>
+<td>
+ <p>
+ * Common install location: "<code class="literal">C:\Borland\BCC55</code>"<br>
+ * <code class="literal">BCC32.EXE</code> in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.comeaucomputing.com/" target="_top"><code class="literal">como</code></a><br>
- Comeau Computing C/C++</td>
-<td> </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.comeaucomputing.com/" target="_top"><code class="literal">como</code></a><br>
+ Comeau Computing C/C++
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://gcc.gnu.org/" target="_top"><code class="literal">gcc</code></a><br>
- GNU GCC</td>
-<td> </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://gcc.gnu.org/" target="_top"><code class="literal">gcc</code></a><br>
+ GNU GCC
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://gcc.gnu.org/" target="_top"><code class="literal">gcc-nocygwin</code></a><br>
- GNU GCC</td>
-<td> </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://gcc.gnu.org/" target="_top"><code class="literal">gcc-nocygwin</code></a><br>
+ GNU GCC
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.intel.com/software/products/compilers/c60" target="_top"><code class="literal">intel-win32</code></a><br>
- Intel C++ Compiler for Windows</td>
-<td> * <code class="literal">ICL.EXE</code>
- in <code class="literal">PATH</code> </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.intel.com/software/products/compilers/c60" target="_top"><code class="literal">intel-win32</code></a><br>
+ Intel C++ Compiler for Windows
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">ICL.EXE</code> in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.metrowerks.com/" target="_top"><code class="literal">metrowerks</code></a><br>
- MetroWerks CodeWarrior C/C++ 7.x, 8.x, 9.x</td>
-<td> * <code class="literal">CWFolder</code>
- variable configured * <code class="literal">MWCC.EXE</code> in <code class="literal">PATH</code>
- </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.metrowerks.com/" target="_top"><code class="literal">metrowerks</code></a><br>
+ MetroWerks CodeWarrior C/C++ 7.x, 8.x, 9.x
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">CWFolder</code> variable configured * <code class="literal">MWCC.EXE</code>
+ in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.mingw.org/" target="_top"><code class="literal">mingw</code></a><br>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.mingw.org/" target="_top"><code class="literal">mingw</code></a><br>
GNU <a href="http://gcc.gnu.org/" target="_top">GCC</a> as the <a href="http://www.mingw.org/" target="_top">MinGW</a>
- configuration</td>
-<td> * Common install location: "<code class="literal">C:\MinGW</code>"
- </td>
+ configuration
+ </p>
+ </td>
+<td>
+ <p>
+ * Common install location: "<code class="literal">C:\MinGW</code>"
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://msdn.microsoft.com/visualc/" target="_top"><code class="literal">msvc</code></a><br>
- Microsoft Visual C++ 6.x</td>
-<td> * <code class="literal">VCVARS32.BAT</code>
- already configured<br> * <code class="literal">%MSVCDir%</code> is present in
- environment<br> * Common install locations: "<code class="literal">%ProgramFiles%\Microsoft
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://msdn.microsoft.com/visualc/" target="_top"><code class="literal">msvc</code></a><br>
+ Microsoft Visual C++ 6.x
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">VCVARS32.BAT</code> already configured<br> * <code class="literal">%MSVCDir%</code>
+ is present in environment<br> * Common install locations: "<code class="literal">%ProgramFiles%\Microsoft
Visual Studio</code>", "<code class="literal">%ProgramFiles%\Microsoft
Visual C++</code>"<br> * <code class="literal">CL.EXE</code> in <code class="literal">PATH</code><br>
- * <code class="literal">VCVARS32.BAT</code> in <code class="literal">PATH</code> </td>
+ * <code class="literal">VCVARS32.BAT</code> in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://msdn.microsoft.com/visualc/" target="_top"><code class="literal">vc7</code></a><br>
- Microsoft Visual C++ 7.x</td>
-<td> * <code class="literal">VCVARS32.BAT</code>
- or <code class="literal">VSVARS32.BAT</code> already configured * <code class="literal">%VS71COMNTOOLS%</code>
- is present in environment<br> * <code class="literal">%VCINSTALLDIR%</code> is
- present in environment<br> * Common install locations: "<code class="literal">%ProgramFiles%\Microsoft
- Visual Studio .NET</code>", "<code class="literal">%ProgramFiles%\Microsoft
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://msdn.microsoft.com/visualc/" target="_top"><code class="literal">vc7</code></a><br>
+ Microsoft Visual C++ 7.x
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">VCVARS32.BAT</code> or <code class="literal">VSVARS32.BAT</code>
+ already configured * <code class="literal">%VS71COMNTOOLS%</code> is present in
+ environment<br> * <code class="literal">%VCINSTALLDIR%</code> is present in environment<br>
+ * Common install locations: "<code class="literal">%ProgramFiles%\Microsoft Visual
+ Studio .NET</code>", "<code class="literal">%ProgramFiles%\Microsoft
Visual Studio .NET 2003</code>"<br> * <code class="literal">CL.EXE</code>
in <code class="literal">PATH</code><br> * <code class="literal">VCVARS32.BAT</code> in
- <code class="literal">PATH</code> </td>
+ <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://msdn.microsoft.com/visualc/" target="_top"><code class="literal">vc8</code></a><br>
- Microsoft Visual C++ 8.x</td>
-<td> * <code class="literal">VCVARS32.BAT</code>
- or <code class="literal">VSVARS32.BAT</code> already configured<br> * <code class="literal">%VS80COMNTOOLS%</code>
- is present in environment<br> * Common install location: "<code class="literal">%ProgramFiles%\Microsoft
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://msdn.microsoft.com/visualc/" target="_top"><code class="literal">vc8</code></a><br>
+ Microsoft Visual C++ 8.x
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">VCVARS32.BAT</code> or <code class="literal">VSVARS32.BAT</code>
+ already configured<br> * <code class="literal">%VS80COMNTOOLS%</code> is present
+ in environment<br> * Common install location: "<code class="literal">%ProgramFiles%\Microsoft
Visual Studio 8</code>"<br> * <code class="literal">CL.EXE</code> in
<code class="literal">PATH</code><br> * <code class="literal">VCVARS32.BAT</code> in <code class="literal">PATH</code>
- </td>
+ </p>
+ </td>
</tr>
<tr>
-<td><code class="literal">build.sh</code></td>
-<td>Unix, Linux, Cygwin,
- etc.</td>
-<td> <a href="http://www.hp.com/go/c++" target="_top"><code class="literal">acc</code></a><br>
- HP-UX aCC</td>
-<td> * <code class="literal">aCC</code> in <code class="literal">PATH</code><br>
- * <code class="literal">uname</code> is "HP-UX" </td>
+<td>
+ <p>
+ <code class="literal">build.sh</code>
+ </p>
+ </td>
+<td>
+ <p>
+ Unix, Linux, Cygwin, etc.
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.hp.com/go/c++" target="_top"><code class="literal">acc</code></a><br>
+ HP-UX aCC
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">aCC</code> in <code class="literal">PATH</code><br> * <code class="literal">uname</code>
+ is "HP-UX"
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.comeaucomputing.com/" target="_top"><code class="literal">como</code></a><br>
- Comeau Computing C/C++</td>
-<td> * como in <code class="literal">PATH</code>
- </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.comeaucomputing.com/" target="_top"><code class="literal">como</code></a><br>
+ Comeau Computing C/C++
+ </p>
+ </td>
+<td>
+ <p>
+ * como in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://gcc.gnu.org/" target="_top"><code class="literal">gcc</code></a><br>
- GNU GCC</td>
-<td> * gcc in <code class="literal">PATH</code> </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://gcc.gnu.org/" target="_top"><code class="literal">gcc</code></a><br>
+ GNU GCC
+ </p>
+ </td>
+<td>
+ <p>
+ * gcc in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.intel.com/software/products/compilers/c60l/" target="_top"><code class="literal">intel-linux</code></a><br>
- Intel C++ for Linux</td>
-<td> * <code class="literal">icc</code> in <code class="literal">PATH</code><br>
- * Common install locations: "<code class="literal">/opt/intel/cc/9.0</code>",
- "<code class="literal">/opt/intel_cc_80</code>", "<code class="literal">/opt/intel/compiler70</code>",
- "<code class="literal">/opt/intel/compiler60</code>", "<code class="literal">/opt/intel/compiler50</code>"
- </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.intel.com/software/products/compilers/c60l/" target="_top"><code class="literal">intel-linux</code></a><br>
+ Intel C++ for Linux
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">icc</code> in <code class="literal">PATH</code><br> * Common install
+ locations: "<code class="literal">/opt/intel/cc/9.0</code>", "<code class="literal">/opt/intel_cc_80</code>",
+ "<code class="literal">/opt/intel/compiler70</code>", "<code class="literal">/opt/intel/compiler60</code>",
+ "<code class="literal">/opt/intel/compiler50</code>"
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <code class="literal">kcc</code><br>
- Intel KAI C++</td>
-<td> * <code class="literal">KCC</code> in <code class="literal">PATH</code>
- </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal">kcc</code><br> Intel KAI C++
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">KCC</code> in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.borland.com/bcppbuilder/freecompiler" target="_top"><code class="literal">kylix</code></a><br>
- <a href="http://www.borland.com/" target="_top">Borland</a> C++Builder</td>
<td>
- * bc++ in PATH </td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.borland.com/bcppbuilder/freecompiler" target="_top"><code class="literal">kylix</code></a><br>
+ <a href="http://www.borland.com/" target="_top">Borland</a> C++Builder
+ </p>
+ </td>
+<td>
+ <p>
+ * bc++ in PATH
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.sgi.com/developers/devtools/languages/mipspro.html" target="_top"><code class="literal">mipspro</code></a><br>
- SGI MIPSpro C</td>
-<td> * <code class="literal">uname</code> is "<code class="literal">IRIX</code>"
- or "<code class="literal">IRIX64</code>" </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.sgi.com/developers/devtools/languages/mipspro.html" target="_top"><code class="literal">mipspro</code></a><br>
+ SGI MIPSpro C
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">uname</code> is "<code class="literal">IRIX</code>" or
+ "<code class="literal">IRIX64</code>"
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <code class="literal">sunpro</code><br>
- Sun Workshop 6 C++</td>
-<td> * Standard install location: "<code class="literal">/opt/SUNWspro</code>"
- </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal">sunpro</code><br> Sun Workshop 6 C++
+ </p>
+ </td>
+<td>
+ <p>
+ * Standard install location: "<code class="literal">/opt/SUNWspro</code>"
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <code class="literal">qcc</code><br>
- <a href="http://www.qnx.com/" target="_top">QNX Neutrino</a>
-</td>
<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal">qcc</code><br> <a href="http://www.qnx.com/" target="_top">QNX Neutrino</a>
+ </p>
+ </td>
+<td>
+ <p>
* <code class="literal">uname</code> is "<code class="literal">QNX</code>" and
- <code class="literal">qcc</code> in <code class="literal">PATH</code> </td>
+ <code class="literal">qcc</code> in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www.tru64unix.compaq.com/cplus/" target="_top"><code class="literal">true64cxx</code></a><br>
- Compaq C++ Compiler for True64 UNIX</td>
-<td> * <code class="literal">uname</code>
- is "<code class="literal">OSF1</code>" </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.tru64unix.compaq.com/cplus/" target="_top"><code class="literal">true64cxx</code></a><br>
+ Compaq C++ Compiler for True64 UNIX
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">uname</code> is "<code class="literal">OSF1</code>"
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td> </td>
-<td> <a href="http://www-3.ibm.com/software/ad/vacpp/" target="_top"><code class="literal">vacpp</code></a><br>
- IBM VisualAge C++</td>
-<td> * <code class="literal">xlc</code> in <code class="literal">PATH</code>
- </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www-3.ibm.com/software/ad/vacpp/" target="_top"><code class="literal">vacpp</code></a><br>
+ IBM VisualAge C++
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">xlc</code> in <code class="literal">PATH</code>
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td>MacOS X</td>
-<td> <a href="http://developer.apple.com/tools/compilers.html" target="_top"><code class="literal">darwin</code></a><br>
- Apple MacOS X GCC</td>
-<td> * <code class="literal">uname</code> is "<code class="literal">Darwin</code>"
- </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ MacOS X
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://developer.apple.com/tools/compilers.html" target="_top"><code class="literal">darwin</code></a><br>
+ Apple MacOS X GCC
+ </p>
+ </td>
+<td>
+ <p>
+ * <code class="literal">uname</code> is "<code class="literal">Darwin</code>"
+ </p>
+ </td>
</tr>
<tr>
-<td> </td>
-<td>Windows NT, 2000, and XP</td>
-<td> <a href="http://www.mingw.org/" target="_top"><code class="literal">mingw</code></a><br> GNU
- <a href="http://gcc.gnu.org/" target="_top">GCC</a> as the <a href="http://www.mingw.org/" target="_top">MinGW</a>
- configuration with the MSYS shell</td>
-<td> * Common install location:
- "<code class="literal">/mingw</code>" </td>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ Windows NT, 2000, and XP
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://www.mingw.org/" target="_top"><code class="literal">mingw</code></a><br>
+ GNU <a href="http://gcc.gnu.org/" target="_top">GCC</a> as the <a href="http://www.mingw.org/" target="_top">MinGW</a>
+ configuration with the MSYS shell
+ </p>
+ </td>
+<td>
+ <p>
+ * Common install location: "<code class="literal">/mingw</code>"
+ </p>
+ </td>
</tr>
</tbody>
</table>
Modified: boost-jam/branches/upstream/current/jam/language.html
===================================================================
--- boost-jam/branches/upstream/current/jam/language.html 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/jam/language.html 2007-05-13 21:31:20 UTC (rev 14066)
@@ -4,8 +4,8 @@
<title> Language</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
-<link rel="start" href="../index.html" title="Boost.Jam : 3.1.13">
-<link rel="up" href="../index.html" title="Boost.Jam : 3.1.13">
+<link rel="start" href="../index.html" title="Boost.Jam : 3.1.14">
+<link rel="up" href="../index.html" title="Boost.Jam : 3.1.14">
<link rel="prev" href="usage.html" title=" Using BJam">
<link rel="next" href="miscellaneous.html" title="Miscellaneous">
</head>
@@ -85,9 +85,9 @@
<p>
Whenever a target is bound to a location in the filesystem, Boost Jam will
look for a variable called <code class="literal">BINDRULE</code> (first "on"
- the target being bound, then in the global module). If non-empty, <code class="literal">$(BINDRULE[1])</code>
+ the target being bound, then in the global module). If non-empty, =$(BINDRULE[1])=
names a rule which is called with the name of the target and the path it
- is being bound to. The signature of the rule named by <code class="literal">$(BINDRULE[1])</code>
+ is being bound to. The signature of the rule named by =$(BINDRULE[1])=
should match the following:
</p>
<pre class="programlisting">rule <span class="emphasis"><em>bind-rule</em></span> ( <span class="emphasis"><em>target</em></span> : <span class="emphasis"><em>path</em></span> )
@@ -117,7 +117,7 @@
</p>
<p>
Rules can return values, which can be expanded into a list with "[
- <span class="emphasis"><em>rule</em></span> <span class="emphasis"><em>args</em></span> ... ]". A rule's
+ <span class="emphasis"><em>rule</em></span> <span class="emphasis"><em>args</em></span> ... ]". A rule's
value is the value of its last statement, though only the following statements
have values: 'if' (value of the leg chosen), 'switch' (value of the case
chosen), set (value of the resulting variable), and 'return' (value of its
@@ -142,18 +142,18 @@
<p>
Invoke a rule.
</p>
-<pre class="programlisting"><span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ;
+<pre class="programlisting"><span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ;
</pre>
<p>
Invoke a rule under the influence of target's specific variables..
</p>
-<pre class="programlisting">on <span class="emphasis"><em>target</em></span> <span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ;
+<pre class="programlisting">on <span class="emphasis"><em>target</em></span> <span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ;
</pre>
<p>
Used as an argument, expands to the return value of the rule invoked.
</p>
-<pre class="programlisting">[ <span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ]
-[ on <span class="emphasis"><em>target</em></span> <span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ]
+<pre class="programlisting">[ <span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ]
+[ on <span class="emphasis"><em>target</em></span> <span class="emphasis"><em>rulename</em></span> <span class="emphasis"><em>field1</em></span> : <span class="emphasis"><em>field2</em></span> : <span class="emphasis"><em>...</em></span> : <span class="emphasis"><em>fieldN</em></span> ]
</pre>
<p>
A rule is invoked with values in <span class="emphasis"><em>field1</em></span> through <span class="emphasis"><em>fieldN</em></span>.
@@ -261,40 +261,65 @@
in the rule declaration) is bound to a single element of the corresponding
actual argument unless followed by one of these modifiers:
</p>
-<div class="informaltable">
-<h4>
-<a name="id2558760"></a>
- </h4>
-<table class="table">
+<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>Symbol</th>
-<th>Semantics of preceding symbol</th>
+<th>
+ <p>
+ Symbol
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics of preceding symbol
+ </p>
+ </th>
</tr></thead>
<tbody>
<tr>
-<td><code class="literal">?</code></td>
-<td>optional</td>
+<td>
+ <p>
+ <code class="literal">?</code>
+ </p>
+ </td>
+<td>
+ <p>
+ optional
+ </p>
+ </td>
</tr>
<tr>
-<td><code class="literal">*</code></td>
-<td>Bind to zero or more unbound
- elements of the actual argument. When <code class="literal">*</code> appears
- where an argument name is expected, any number of additional arguments
- are accepted. This feature can be used to implement "varargs"
- rules.</td>
+<td>
+ <p>
+ <code class="literal">*</code>
+ </p>
+ </td>
+<td>
+ <p>
+ Bind to zero or more unbound elements of the actual argument. When
+ <code class="literal">*</code> appears where an argument name is expected,
+ any number of additional arguments are accepted. This feature can
+ be used to implement "varargs" rules.
+ </p>
+ </td>
</tr>
<tr>
-<td><code class="literal">+</code></td>
-<td>Bind to one or more unbound
- elements of the actual argument.</td>
+<td>
+ <p>
+ <code class="literal">+</code>
+ </p>
+ </td>
+<td>
+ <p>
+ Bind to one or more unbound elements of the actual argument.
+ </p>
+ </td>
</tr>
</tbody>
-</table>
-</div>
+</table></div>
<p>
The actual and formal arguments are checked for inconsistencies, which
cause Jam to exit with an error code:
@@ -414,10 +439,16 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
<th align="left">Warning</th>
</tr>
-<tr><td align="left" valign="top"><p>
- For targets with build actions: if their build actions exit with a
- nonzero return code, dependent targets will still be built.
- </p></td></tr>
+<tr><td align="left" valign="top">
+<p>
+ </p>
+<p>
+ For targets with build actions: if their build actions exit with
+ a nonzero return code, dependent targets will still be built.
+ </p>
+<p>
+ </p>
+</td></tr>
</table></div>
<pre class="programlisting">NOTFILE <span class="emphasis"><em>targets</em></span> ;
</pre>
@@ -478,17 +509,25 @@
<code class="literal">ISFILE</code> marks targets as required to be files. This
changes the way <code class="literal">bjam</code> searches for the target such
that it ignores mathes for file system items that are not file, like
- directories. This makes it possible to avoid <code class="computeroutput"><span class="preprocessor">#include</span> <span class="string">"exception"</span></code> matching if one happens
- to have a directory named exception in the header search path.
+ directories. This makes it possible to avoid <code class="computeroutput"><span class="preprocessor">#include</span>
+ <span class="string">"exception"</span></code> matching
+ if one happens to have a directory named exception in the header search
+ path.
</p>
<div class="warning"><table border="0" summary="Warning">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
<th align="left">Warning</th>
</tr>
-<tr><td align="left" valign="top"><p>
- This is currently not fully implemented.
- </p></td></tr>
+<tr><td align="left" valign="top">
+<p>
+ </p>
+<p>
+ This is currently not fully implemented.
+ </p>
+<p>
+ </p>
+</td></tr>
</table></div>
</div>
<div class="section" lang="en">
@@ -555,9 +594,10 @@
<pre class="programlisting">rule BACKTRACE ( )
</pre>
<p>
- Returns a list of quadruples: <span class="emphasis"><em>filename</em></span> <span class="emphasis"><em>line</em></span> <span class="emphasis"><em>module</em></span> <span class="emphasis"><em>rulename</em></span>...,
- describing each shallower level of the call stack. This rule can be used
- to generate useful diagnostic messages from Jam rules.
+ Returns a list of quadruples: <span class="emphasis"><em>filename</em></span> <span class="emphasis"><em>line</em></span>
+ <span class="emphasis"><em>module</em></span> <span class="emphasis"><em>rulename</em></span>..., describing
+ each shallower level of the call stack. This rule can be used to generate
+ useful diagnostic messages from Jam rules.
</p>
<pre class="programlisting">rule UPDATE ( <span class="emphasis"><em>targets</em></span> * )
</pre>
@@ -1255,7 +1295,7 @@
</dd>
<dt><span class="term"><code class="literal">JAMVERSION</code></span></dt>
<dd>
-<code class="literal">bjam</code> version, currently "3.1.13"
+<code class="literal">bjam</code> version, currently "3.1.14"
</dd>
<dt><span class="term"><code class="literal">JAM_VERSION</code></span></dt>
<dd>
@@ -1468,10 +1508,16 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- This includes any local variables in rules from the call stack which
- have not returned at the time of the <code class="literal">VARNAMES</code> invocation.
- </p></td></tr>
+<tr><td align="left" valign="top">
+<p>
+ </p>
+<p>
+ This includes any local variables in rules from the call stack which
+ have not returned at the time of the <code class="literal">VARNAMES</code> invocation.
+ </p>
+<p>
+ </p>
+</td></tr>
</table></div>
</div>
<div class="section" lang="en">
@@ -1572,14 +1618,20 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- Though it won't affect rules that are currently executing until they
- complete, <code class="literal">DELETE_MODULE</code> should be used with extreme
- care because it will wipe out any others and all variable (including
- locals in that module) immediately. Because of the way dynamic binding
- works, variables which are shadowed by locals will not be destroyed,
- so the results can be really unpredictable.
- </p></td></tr>
+<tr><td align="left" valign="top">
+<p>
+ </p>
+<p>
+ Though it won't affect rules that are currently executing until they
+ complete, <code class="literal">DELETE_MODULE</code> should be used with extreme
+ care because it will wipe out any others and all variable (including
+ locals in that module) immediately. Because of the way dynamic binding
+ works, variables which are shadowed by locals will not be destroyed,
+ so the results can be really unpredictable.
+ </p>
+<p>
+ </p>
+</td></tr>
</table></div>
</div>
</div>
Modified: boost-jam/branches/upstream/current/jam/miscellaneous.html
===================================================================
--- boost-jam/branches/upstream/current/jam/miscellaneous.html 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/jam/miscellaneous.html 2007-05-13 21:31:20 UTC (rev 14066)
@@ -4,8 +4,8 @@
<title>Miscellaneous</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
-<link rel="start" href="../index.html" title="Boost.Jam : 3.1.13">
-<link rel="up" href="../index.html" title="Boost.Jam : 3.1.13">
+<link rel="start" href="../index.html" title="Boost.Jam : 3.1.14">
+<link rel="up" href="../index.html" title="Boost.Jam : 3.1.14">
<link rel="prev" href="language.html" title=" Language">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -227,8 +227,8 @@
following allows a sensible non-empty default which can easily be overridden
by the user:
<pre class="programlisting">
-<span class="identifier">MESSAGE</span> <span class="special">?\=</span> <span class="identifier">starting</span> <span class="identifier">jam</span><span class="special">...</span> <span class="special">;</span>
-<span class="keyword">if</span> #<span class="special">(</span><span class="identifier">MESSAGE</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">ECHO</span> <span class="identifier">The</span> <span class="identifier">message</span> <span class="identifier">is</span><span class="special">:</span> #<span class="special">(</span><span class="identifier">MESSAGE</span><span class="special">)</span> <span class="special">;</span> <span class="special">}</span>
+<span class="identifier">MESSAGE</span> <span class="special">?\=</span> <span class="identifier">starting</span> <span class="identifier">jam</span><span class="special">...</span> <span class="special">;</span>
+<span class="keyword">if</span> #<span class="special">(</span><span class="identifier">MESSAGE</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">ECHO</span> <span class="identifier">The</span> <span class="identifier">message</span> <span class="identifier">is</span><span class="special">:</span> #<span class="special">(</span><span class="identifier">MESSAGE</span><span class="special">)</span> <span class="special">;</span> <span class="special">}</span>
</pre>
If the user wants a specific message, he invokes jam with <code class="literal">"-sMESSAGE=message
text"</code>. If he wants no message, he invokes jam with <code class="literal">-sMESSAGE=</code>
Modified: boost-jam/branches/upstream/current/jam/usage.html
===================================================================
--- boost-jam/branches/upstream/current/jam/usage.html 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/jam/usage.html 2007-05-13 21:31:20 UTC (rev 14066)
@@ -4,8 +4,8 @@
<title> Using BJam</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
-<link rel="start" href="../index.html" title="Boost.Jam : 3.1.13">
-<link rel="up" href="../index.html" title="Boost.Jam : 3.1.13">
+<link rel="start" href="../index.html" title="Boost.Jam : 3.1.14">
+<link rel="up" href="../index.html" title="Boost.Jam : 3.1.14">
<link rel="prev" href="building.html" title=" Building BJam">
<link rel="next" href="language.html" title=" Language">
</head>
Modified: boost-jam/branches/upstream/current/patchlevel.h
===================================================================
--- boost-jam/branches/upstream/current/patchlevel.h 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/patchlevel.h 2007-05-13 21:31:20 UTC (rev 14066)
@@ -9,9 +9,9 @@
#define VERSION_MAJOR 3
#define VERSION_MINOR 1
-#define VERSION_PATCH 13
+#define VERSION_PATCH 14
#define VERSION_MAJOR_SYM "03"
#define VERSION_MINOR_SYM "1"
-#define VERSION_PATCH_SYM "13"
-#define VERSION "3.1.13"
+#define VERSION_PATCH_SYM "14"
+#define VERSION "3.1.14"
#define JAMVERSYM "JAMVERSION=3.1"
Modified: boost-jam/branches/upstream/current/variable.c
===================================================================
--- boost-jam/branches/upstream/current/variable.c 2007-05-10 22:15:43 UTC (rev 14065)
+++ boost-jam/branches/upstream/current/variable.c 2007-05-13 21:31:20 UTC (rev 14066)
@@ -291,8 +291,7 @@
}
/* expand the file value into the file reference */
- if ( !globs.noexec )
- var_string_to_file( split+3, ine-split-4, file_name_s, lol );
+ var_string_to_file( split+3, ine-split-4, file_name_s, lol );
/* continue on with the expansion */
out += strlen(out);
@@ -352,8 +351,13 @@
{
const char * ine = in+insize;
FILE * out_file = 0;
- if ( strcmp( out, "STDOUT" ) == 0 )
+ int out_debug = DEBUG_EXEC ? 1 : 0;
+ if ( globs.noexec )
{
+ /* out_debug = 1; */
+ }
+ else if ( strcmp( out, "STDOUT" ) == 0 )
+ {
out_file = stdout;
}
else if ( strcmp( out, "STDERR" ) == 0 )
@@ -382,6 +386,8 @@
string_free(&out_name);
}
+ if ( out_debug ) printf("\nfile %s\n",out);
+
while( *in && in < ine )
{
int dollar = 0;
@@ -396,7 +402,8 @@
}
if ( output_0 < output_1 )
{
- fwrite(output_0,output_1-output_0,1,out_file);
+ if ( out_file ) fwrite(output_0,output_1-output_0,1,out_file);
+ if ( out_debug ) fwrite(output_0,output_1-output_0,1,stdout);
}
output_0 = output_1;
@@ -411,7 +418,7 @@
++output_1;
}
- /* If a variable encountered, expand it and and embed the */
+ /* If a variable encountered, expand it and embed the */
/* space-separated members of the list in the output. */
if( dollar )
@@ -422,26 +429,34 @@
while ( l )
{
- fputs( l->string, out_file );
+ if ( out_file ) fputs( l->string, out_file );
+ if ( out_debug ) puts( l->string );
l = list_next( l );
- if ( l ) fputc( ' ', out_file );
+ if ( l )
+ {
+ if ( out_file ) fputc( ' ', out_file );
+ if ( out_debug ) fputc( ' ', stdout );
+ }
}
list_free( l );
}
else if ( output_0 < output_1 )
{
- fwrite(output_0,output_1-output_0,1,out_file);
+ if ( out_file ) fwrite(output_0,output_1-output_0,1,out_file);
+ if ( out_debug ) fwrite(output_0,output_1-output_0,1,stdout);
}
in = output_1;
}
- if ( out_file != stdout && out_file != stderr )
+ if ( out_file && out_file != stdout && out_file != stderr )
{
fflush( out_file );
fclose( out_file );
}
+
+ if ( out_debug ) fputc('\n',stdout);
}
/*
More information about the pkg-boost-commits
mailing list