diff --git a/historic/jam/src/build.bat b/historic/jam/src/build.bat
index eb24058a9..90bb50dfd 100644
--- a/historic/jam/src/build.bat
+++ b/historic/jam/src/build.bat
@@ -1,5 +1,5 @@
@ECHO OFF
-REM Copyrigt (C) 2002 Rene Rivera.
+REM Copyrigt (C) 2002-2003 Rene Rivera.
REM Permission to copy, use, modify, sell and distribute this software
REM is granted provided this copyright notice appears in all copies.
REM This software is provided "as is" without express or implied
@@ -62,6 +62,31 @@ if not errorlevel 1 (
set BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\..\
goto :eof)
setlocal & endlocal
+if NOT "_%VCINSTALLDIR%_" == "__" (
+ 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\
+ goto :eof)
+setlocal & endlocal
+if EXIST "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\bin\VCVARS32.BAT" (
+ set BOOST_JAM_TOOLSET=vc7
+ set BOOST_JAM_TOOLSET_ROOT=C:\Program Files\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\
+ goto :eof)
+setlocal & endlocal
+if EXIST "C:\Program Files\Microsoft Visual Studio .NET\VC7\bin\VCVARS32.BAT" (
+ set BOOST_JAM_TOOLSET=vc7
+ set BOOST_JAM_TOOLSET_ROOT=C:\Program Files\Microsoft Visual Studio .NET\VC7\
+ goto :eof)
+setlocal & endlocal
if NOT "_%MSVCDir%_" == "__" (
set BOOST_JAM_TOOLSET=msvc
set BOOST_JAM_TOOLSET_ROOT=%MSVCDir%\
@@ -87,16 +112,6 @@ if EXIST "C:\Program Files\Microsoft Visual C++\VC98\bin\VCVARS32.BAT" (
set BOOST_JAM_TOOLSET_ROOT=C:\Program Files\Microsoft Visual C++\VC98\
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\
- goto :eof)
-setlocal & endlocal
-if EXIST "C:\Program Files\Microsoft Visual Studio .NET\VC7\bin\VCVARS32.BAT" (
- set BOOST_JAM_TOOLSET=vc7
- set BOOST_JAM_TOOLSET_ROOT=C:\Program Files\Microsoft Visual Studio .NET\VC7\
- goto :eof)
-setlocal & endlocal
call :Test_Path cl.exe
if not errorlevel 1 (
set BOOST_JAM_TOOLSET=msvc
@@ -135,6 +150,26 @@ setlocal & endlocal
call :Error_Print "Could not find a suitable toolset."
goto :eof
+:Guess_Yacc
+REM Tries to find bison or yacc in common places so we can build the grammar.
+setlocal & endlocal
+call :Test_Path yacc.exe
+if not errorlevel 1 (
+ set YACC=yacc -d
+ goto :eof)
+setlocal & endlocal
+call :Test_Path bison.exe
+if not errorlevel 1 (
+ 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
+ goto :eof)
+setlocal & endlocal
+call :Error_Print "Could not find Yacc to build the Jam grammar."
+goto :eof
+
:Start
set BOOST_JAM_TOOLSET=
@@ -172,7 +207,7 @@ if "_%BOOST_JAM_TOOLSET%_" == "_metrowerks_" (
set BOOST_JAM_TOOLSET_ROOT=%CWFolder%\) )
if "_%BOOST_JAM_TOOLSET%_" == "_metrowerks_" (
if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
- set PATH=%PATH%;%BOOST_JAM_TOOLSET_ROOT%Other Metrowerks Tools\Command Line Tools)
+ set PATH=%BOOST_JAM_TOOLSET_ROOT%Other Metrowerks Tools\Command Line Tools;%PATH%)
set BOOST_JAM_CC=mwcc -runtime staticsingle -DNT
set BOOST_JAM_OPT_JAM=-o bootstrap.%BOOST_JAM_TOOLSET%\jam0.exe
set BOOST_JAM_OPT_MKJAMBASE=-o bootstrap.%BOOST_JAM_TOOLSET%\mkjambase0.exe
@@ -187,8 +222,8 @@ if "_%BOOST_JAM_TOOLSET%_" == "_msvc_" (
call "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" ) )
if "_%BOOST_JAM_TOOLSET%_" == "_msvc_" (
if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
- set PATH=%PATH%;%BOOST_JAM_TOOLSET_ROOT%bin)
- set BOOST_JAM_CC="%BOOST_JAM_TOOLSET_ROOT%bin\cl.exe" /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib
+ set PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%)
+ set BOOST_JAM_CC=cl /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib
set BOOST_JAM_OPT_JAM=/Febootstrap.%BOOST_JAM_TOOLSET%\jam0
set BOOST_JAM_OPT_MKJAMBASE=/Febootstrap.%BOOST_JAM_TOOLSET%\mkjambase0
set BOOST_JAM_OPT_YYACC=/Febootstrap.%BOOST_JAM_TOOLSET%\yyacc0
@@ -202,8 +237,8 @@ if "_%BOOST_JAM_TOOLSET%_" == "_vc7_" (
call "%BOOST_JAM_TOOLSET_ROOT%bin\VCVARS32.BAT" ) )
if "_%BOOST_JAM_TOOLSET%_" == "_vc7_" (
if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
- set PATH=%PATH%;%BOOST_JAM_TOOLSET_ROOT%bin)
- set BOOST_JAM_CC="%BOOST_JAM_TOOLSET_ROOT%bin\cl.exe" /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib
+ set PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%)
+ set BOOST_JAM_CC=cl /nologo /GZ /Zi /MLd -DNT -DYYDEBUG kernel32.lib
set BOOST_JAM_OPT_JAM=/Febootstrap.%BOOST_JAM_TOOLSET%\jam0
set BOOST_JAM_OPT_MKJAMBASE=/Febootstrap.%BOOST_JAM_TOOLSET%\mkjambase0
set BOOST_JAM_OPT_YYACC=/Febootstrap.%BOOST_JAM_TOOLSET%\yyacc0
@@ -217,7 +252,7 @@ if "_%BOOST_JAM_TOOLSET%_" == "_borland_" (
if not errorlevel 1 (
set BOOST_JAM_TOOLSET_ROOT=%FOUND_PATH%..\) ) )
if "_%BOOST_JAM_TOOLSET%_" == "_borland_" (
- if not "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (set PATH=%PATH%;%BOOST_JAM_TOOLSET_ROOT%Bin)
+ 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.%BOOST_JAM_TOOLSET%
set BOOST_JAM_OPT_JAM=-ejam0
set BOOST_JAM_OPT_MKJAMBASE=-emkjambasejam0
@@ -288,20 +323,17 @@ md bootstrap.%BOOST_JAM_TOOLSET%
:Bootstrap_GrammarPrep
%BOOST_JAM_CC% %BOOST_JAM_OPT_YYACC% %YYACC_SOURCES%
@if not exist ".\bootstrap.%BOOST_JAM_TOOLSET%\yyacc0.exe" goto Skip_GrammarPrep
-".\bootstrap.%BOOST_JAM_TOOLSET%\yyacc0.exe" jamgram.y jamgramtab.h jamgram.yy
+.\bootstrap.%BOOST_JAM_TOOLSET%\yyacc0 jamgram.y jamgramtab.h jamgram.yy
:Skip_GrammarPrep
@if not exist jamgram.c goto Bootstrap_GrammarBuild
@if not exist jamgram.h goto Bootstrap_GrammarBuild
@goto Skip_GrammarBuild
:Bootstrap_GrammarBuild
-@ECHO OFF
-@setlocal & endlocal
-@call :Test_Path yacc.exe
-@if not errorlevel 1 (set YACC=yacc -d)
-@setlocal & endlocal
-@call :Test_Path bison.exe
-@if not errorlevel 1 ( if "_%YACC%_" == "__" (set YACC=bison -y -d --yacc) )
-@if "_%YACC%_" == "__" goto Skip_GrammarBuild
+@echo OFF
+if "_%YACC%_" == "__" (
+ call :Guess_Yacc
+)
+if errorlevel 1 goto Finish
@echo ON
%YACC% jamgram.y
rename y.tab.c jamgram.c
@@ -311,7 +343,7 @@ rename y.tab.h jamgram.h
@if exist jambase.c goto Skip_Jambase
%BOOST_JAM_CC% %BOOST_JAM_OPT_MKJAMBASE% %MKJAMBASE_SOURCES%
@if not exist ".\bootstrap.%BOOST_JAM_TOOLSET%\mkjambase0.exe" goto Skip_Jambase
-".\bootstrap.%BOOST_JAM_TOOLSET%\mkjambase0.exe" jambase.c Jambase
+.\bootstrap.%BOOST_JAM_TOOLSET%\mkjambase0 jambase.c Jambase
:Skip_Jambase
%BOOST_JAM_CC% %BOOST_JAM_OPT_JAM% %BJAM_SOURCES%
@if not exist ".\bootstrap.%BOOST_JAM_TOOLSET%\jam0.exe" goto Skip_Jam
diff --git a/historic/jam/src/build.jam b/historic/jam/src/build.jam
index 3bb08f78e..fef43d1c4 100644
--- a/historic/jam/src/build.jam
+++ b/historic/jam/src/build.jam
@@ -6,8 +6,8 @@
# Info about what we are building.
NAME = boost-jam ;
-VERSION = 3.1.4 ;
-RELEASE = 2 ;
+VERSION = 3.1.5 ;
+RELEASE = 1 ;
# Generate development debug binaries?
if --debug in $(ARGV)
@@ -188,38 +188,40 @@ if $(tool.$(toolset).link.cc)
--link-libs = $(tool.$(toolset).link.linklibs) ;
}
+# Platform related specifics.
+if $(NT) { rule .path { return "$(<:J=\\)" ; } }
+else if $(OS2) { rule .path { return "$(<:J=\\)" ; } }
+else if $(VMS) { rule .path { return "[.$(<:J=/)]" ; } }
+else if $(MAC) { rule .path { return ":$(<:J=\:)" ; } }
+else { rule .path { return "$(<:J=/)" ; } }
+if $(VMS) { . = "_" ; }
+else { . = "." ; }
+
# Put executables in platform-specific subdirectory.
locate-target = $(LOCATE_TARGET) ;
if $(VMS)
{
- locate-target ?= [.bin_vms] ;
+ locate-target ?= [ .path bin$(.)vms ] ;
platform = vms ;
}
else if $(MAC)
{
- locate-target ?= :bin.$(OS:L)$(OSPLAT:L) ;
+ locate-target ?= [ .path bin$(.)$(OS:L)$(OSPLAT:L) ] ;
platform = $(OS:L)$(OSPLAT:L) ;
}
else if $(OSPLAT)
{
- locate-target ?= bin.$(OS:L)$(OSPLAT:L) ;
+ locate-target ?= [ .path bin$(.)$(OS:L)$(OSPLAT:L) ] ;
platform = $(OS:L)$(OSPLAT:L) ;
}
else
{
- locate-target ?= bin.$(OS:L) ;
+ locate-target ?= [ .path bin$(.)$(OS:L) ] ;
platform = $(OS:L) ;
}
if $(debug)
{
- if $(VMS)
- {
- locate-target = $(locate-target)_debug ;
- }
- else
- {
- locate-target = $(locate-target).debug ;
- }
+ locate-target = $(locate-target)$(.)debug ;
}
# We have some different files for UNIX, VMS, and NT.
@@ -288,24 +290,42 @@ ALWAYS clean ;
# Utility rules and actions...
rule .clean
{
- .rm clean : $(<) ;
+ .rm. clean : $(<) ;
+}
+if $(NT) { actions piecemeal together existing .rm. {
+ del /F /Q $(>)
+} }
+if $(UNIX) { actions piecemeal together existing .rm. {
+ rm -f $(>)
+} }
+if $(VMS) { actions piecemeal together existing .rm. {
+ DELETE $(>[--2]:J=";*, ") $(>[-1]);*
+} }
+if $(NT) {
+ --chmod+w = "attrib -r " ;
+}
+if $(UNIX) {
+ --chmod+w = "chmod +w " ;
+}
+if $(VMS) {
+ --chmod+w = "SET FILE/PROT=(S:RWED) " ;
}
-if $(NT) { actions piecemeal together existing .rm { del /F /Q $(>) } }
-if $(UNIX) { actions piecemeal together existing .rm { rm -f $(>) } }
-if $(VMS) { actions piecemeal together existing .rm { DELETE $(>[--2]:J=";*, ") $(>[-1]);* } }
-if $(NT) { --chmod+w = "attrib -r " ; }
-if $(UNIX) { --chmod+w = "chmod +w " ; }
-if $(VMS) { --chmod+w = "SET FILE/PROT=(S:RWED) " ; }
rule .mkdir
{
NOUPDATE $(<) ;
if $(<:P) { DEPENDS $(<) : $(<:P) ; .mkdir $(<:P) ; }
- if ! $(md<$(<)>) { .md $(<) ; md<$(<)> = - ; }
+ if ! $(md<$(<)>) { .mkdir. $(<) ; md<$(<)> = - ; }
}
-if $(NT) { actions .md { md $(<) } }
-if $(UNIX) { actions .md { mkdir $(<) } }
-if $(VMS) { actions .md { CREATE/DIR $(
This is version 3.1.4 of BJam and is based on version 2.4 of - Jam/MR:
+ +This is version 3.1.5 of BJam and is based on version 2.4 of Jam/MR:
/+\
+\ Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
@@ -180,39 +180,18 @@ Main smail : main.c map.c resolve.c deliver.c
Contents
- | Jam.html | - -Jam and language reference. | -
| Jambase.html | - -Reference for the Jambase boilerplate file. | -
| Jamfile.html | - -Easy reading on creating a Jamfile and using - jam. | -
| RELNOTES | - -Release 2.4 release notes. | -
| Porting | - -Notes on porting jam to wildcat platforms. | -
The build scripts support additional invocation arguments for - use by developers of Boost.Jam. The extra arguments come after the - toolset, and can take the form of "--options" or targets for the - build.jam script:
+ +The build scripts support additional invocation arguments for use + by developers of Boost.Jam. The extra arguments come after the toolset, and + can take the form of "--option" or targets for the build.jam + script:
-<build script name> [toolset] [--options* [targets]*] +<build script name> [toolset] [--option+ target*]-
There is current only one available option, "--debug", which - builds debugging versions of the executable. When built they are placed - in their own directory "bin.<platform>.debug".
+ +There is current only one available option, "--debug", which builds + debugging versions of the executable. When built they are placed in their own + directory "bin.<platform>.debug". To specify targets without + options, one can suply a special ignore option "---".
Currently there are two targets supported: dist, and clean. Respectively they: generate packages (compressed @@ -1139,7 +1127,7 @@ UPDATE $(previous-updates) a-new-target ; Grist is used instead of identifying targets with absolute paths for two reasons:
-Please also read The Jam language reference - for the additional details, and the Jam release - notes for a brief description of recent, but fundamental changes - to the Jam language without which you will probably not understand - any of the build system code. In particular, note that the - return statement does not affect control flow.
+ +Please also read The Jam language reference for the + additional details.
Revised - - 2 February, 2003 - -
- -© Copyright René - Rivera, David Abrahams, Vladimir Prus 2003. All Rights Reserved. - Permission to copy, use, modify, sell and distribute this document is - granted provided this copyright notice appears in all copies. This - document is provided "as is" without express or implied warranty, and - with no claim as to its suitability for any purpose.
+ +Revised + + 7 June, 2003 + +
+© Copyright René Rivera, David Abrahams, Vladimir Prus 2003. + All Rights Reserved. Permission to copy, use, modify, sell and distribute + this document is granted provided this copyright notice appears in all copies. + This document is provided "as is" without express or implied warranty, and with + no claim as to its suitability for any purpose.