From 8a7dcb64ba8168e391535d6e9d8da7cf8a782d1a Mon Sep 17 00:00:00 2001
From: Rene Rivera
Date: Sat, 7 Jun 2003 18:44:32 +0000
Subject: [PATCH] Improvements to bootstraping and building. - build.bat; added
more possible locations for VC7. - build.bat; added an alternate for finding
bison (gnuwin32.sourceforge.net version). - build.jam; added an alternate for
finding bison (gnuwin32.sourceforge.net version). - build.jam; removed some
obsolete docs from distribution. - build.jam; fixed path problem when
packaging on windows, the debian directory. - build.jam; added header
scanning to create the extra dependencies to make building the grammar work
correctly. - build.jam; fixed building of the grammar to remove attempts at
building it spuriously. - build.jam; fixed building of grammar so that it
doesn't delete existing files if the yacc execution fails. - index.html;
minor cleanup of language in some places. - index.html; removed references to
no longer packaged docs. - *; updated the version to 3.1.5 in various places.
- build.*; tested on windows with vc7, metrowerks, mingw, and borland
[SVN r18703]
---
historic/jam/src/build.bat | 86 ++++++++----
historic/jam/src/build.jam | 257 +++++++++++++++++++++++-------------
historic/jam/src/index.html | 114 +++++++---------
jam_src/build.bat | 86 ++++++++----
jam_src/build.jam | 257 +++++++++++++++++++++++-------------
jam_src/index.html | 114 +++++++---------
6 files changed, 552 insertions(+), 362 deletions(-)
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 $(:S=.o) ;
DEPENDS $(exe) : $(locate-target) ;
- .ld $(exe) : $(>:S=.o) ;
+ .ld. $(exe) : $(>:S=.o) ;
.clean $(exe) ;
}
else
{
DEPENDS $(exe) : $(>) ;
DEPENDS $(exe) : $(locate-target) ;
- .cc $(exe) : $(>) ;
+ .cc. $(exe) : $(>) ;
.clean $(exe) ;
}
return $(exe) ;
}
-actions .cc { $(--cc) $(--bin)$(<:D=) $(--dir)$(<:D) $(--out)$(<) $(--def)$(--defs) $(--flags) "$(--libs)" $(>) }
-if $(VMS)
-{
- actions .ld { $(--link) $(--link-bin)$(<:D=) $(--link-dir)$(<:D) $(--link-out)$(<) $(--link-def)$(--link-defs) $(--link-flags) "$(--link-libs)" $(>J=", ") }
-}
-else
-{
- actions .ld { $(--link) $(--link-bin)$(<:D=) $(--link-dir)$(<:D) $(--link-out)$(<) $(--link-def)$(--link-defs) $(--link-flags) "$(--link-libs)" $(>) }
+actions .cc. {
+ $(--cc) $(--bin)$(<:D=) $(--dir)$(<:D) $(--out)$(<) $(--def)$(--defs) $(--flags) "$(--libs)" $(>)
}
+if $(VMS) { actions .ld. {
+ $(--link) $(--link-bin)$(<:D=) $(--link-dir)$(<:D) $(--link-out)$(<) $(--link-def)$(--link-defs) $(--link-flags) "$(--link-libs)" $(>J=", ")
+} }
+else { actions .ld. {
+ $(--link) $(--link-bin)$(<:D=) $(--link-dir)$(<:D) $(--link-out)$(<) $(--link-def)$(--link-defs) $(--link-flags) "$(--link-libs)" $(>)
+} }
rule .link
{
DEPENDS all : $(<) ;
DEPENDS $(<) : $(>) ;
+ .link. $(<) : $(>) ;
.clean $(<) ;
}
-if $(NT) { actions .link { copy $(>) $(<) } }
-if $(UNIX) { actions .link { ln -f $(>) $(<) } }
-if $(VMS) { actions .link { COPY/REPLACE $(>) $(<) } }
+if $(NT) { actions .link. {
+ copy $(>) $(<)
+} }
+if $(UNIX) { actions .link. {
+ ln -f $(>) $(<)
+} }
+if $(VMS) { actions .link. {
+ COPY/REPLACE $(>) $(<)
+} }
+
+rule .move
+{
+ DEPENDS $(<) : $(>) ;
+ .move. $(<) : $(>) ;
+}
+if $(NT) { actions .move. {
+ del /f $(<)
+ rename $(>) $(<)
+} }
+if $(UNIX) { actions .move. {
+ mv -f $(>) $(<)
+} }
+if $(VMS) { actions .move. {
+ RENAME $(>) $(<)
+} }
# Generate the grammar tokens table, and the real yacc grammar.
rule .yyacc
{
local exe = [ .exe yyacc : yyacc.c ] ;
- DEPENDS all : $(<) ;
+ NOUPDATE $(exe) ;
DEPENDS $(<) : $(exe) $(>) ;
LEAVES $(<) ;
yyacc.exe on $(<) = $(exe:R=$(locate-target)) ;
+ .yyacc. $(<) : $(>) ;
}
-actions .yyacc
-{ $(--chmod+w)$(<[1])
+actions .yyacc. {
+ $(--chmod+w)$(<[1])
$(--chmod+w)$(<[2])
- $(yyacc.exe) $(<) $(>) }
+ $(yyacc.exe) $(<) $(>)
+}
.yyacc jamgram.y jamgramtab.h : jamgram.yy ;
# How to build the grammar.
@@ -387,13 +432,13 @@ SUFEXE ?= "" ;
yacc ?= [ GLOB $(PATH) : yacc$(SUFEXE) ] ;
yacc ?= [ GLOB $(PATH) : bison$(SUFEXE) ] ;
+yacc ?= [ GLOB "C:\\Program Files\\GnuWin32\\bin" : bison$(SUFEXE) ] ;
yacc = $(yacc[1]) ;
switch $(yacc:D=:S=)
{
- case bison : yacc += -d --yacc ; # -t -l -v ;
+ case bison : yacc += -d --yacc ;
case yacc : yacc += -d ;
}
-
if $(debug) && $(yacc)
{
yacc += -t -v ;
@@ -402,21 +447,18 @@ yacc += $(YACCFLAGS) ;
rule .yacc
{
- DEPENDS $(<) : $(>) ;
+ DEPENDS y.tab.c y.tab.h : $(>) ;
+ DEPENDS y.tab.h : y.tab.c ;
+ TEMPORARY y.tab.c y.tab.h ;
+ DEPENDS $(<[1]) : y.tab.c ;
+ DEPENDS $(<[2]) : y.tab.h ;
+ .yacc. y.tab.c y.tab.h : $(>) ;
+ .move $(<[1]) : y.tab.c ;
+ .move $(<[2]) : y.tab.h ;
+}
+actions .yacc. {
+ "$(yacc)" $(>)
}
-if $(NT) { actions .yacc
-{ $(yacc) $(>)
- del /f $(<[1]:S=.c) $(<[1]:S=.h)
- rename y.tab.c $(<[1]:S=.c)
- rename y.tab.h $(<[1]:S=.h) } }
-if $(UNIX) { actions .yacc
-{ $(yacc) $(>)
- mv -f y.tab.c $(<[1]:S=.c)
- mv -f y.tab.h $(<[1]:S=.h) } }
-if $(VMS) { actions .yacc
-{ $(yacc) $(>)
- RENAME y_tab.c $(<[1]:S=.c)
- RENAME -f y_tab.h $(<[1]:S=.h) } }
if $(yacc)
{
.yacc jamgram.c jamgram.h : jamgram.y ;
@@ -429,10 +471,12 @@ rule .mkjambase
DEPENDS $(<) : $(exe) $(>) ;
LEAVES $(<) ;
mkjambase.exe on $(<) = $(exe:R=$(locate-target)) ;
+ .mkjambase. $(<) : $(>) ;
+}
+actions .mkjambase. {
+ $(--chmod+w)$(<)
+ $(mkjambase.exe) $(<) $(>)
}
-actions .mkjambase
-{ $(--chmod+w)$(<)
- $(mkjambase.exe) $(<) $(>) }
.mkjambase jambase.c : Jambase ;
# How to build Jam.
@@ -447,11 +491,26 @@ rule .jam
}
.jam bjam : jam ;
+# Scan sources for header dependencies.
+rule .scan
+{
+ HDRRULE on $(<:D=) = .hdr.scan ;
+ HDRSCAN on $(<:D=) = "^[ ]*#[ ]*include[ ]*[<\"]([^\">]*)[\">].*$" ;
+}
+rule .hdr.scan
+{
+ local hdrs = [ GLOB . : $(>:D=) ] ;
+ INCLUDES $(<:D=) : $(hdrs:D=) ;
+ HDRRULE on $(>:D=) = .hdr.scan ;
+ HDRSCAN on $(>:D=) = "^[ ]*#[ ]*include[ ]*[<\"]([^\">]*)[\">].*$" ;
+}
+.scan [ GLOB . : *.c ] ;
+
# Distribution making from here on out.
dist.docs =
index.html
- Porting RELNOTES
- Jam.html Jambase.html Jamfile.html
+ Porting
+ Jam.html
;
dist.source =
[ GLOB . : *.c *.h ]
@@ -459,9 +518,13 @@ dist.source =
dist.source = $(dist.source:D=)
$(dist.docs)
build.jam build.bat build.sh build_vms.com
- Jambase Jamfile
+ Jambase
jamgram.y jamgram.yy
- debian/changelog debian/control debian/copyright debian/jam.man.sgml debian/rules
+ [ .path debian changelog ]
+ [ .path debian control ]
+ [ .path debian copyright ]
+ [ .path debian jam.man.sgml ]
+ [ .path debian rules ]
boost-jam.spec
;
dist.bin =
@@ -473,23 +536,38 @@ dist.bin =
if $(NT)
{
-if [ GLOB "C:\\Program Files\\7-ZIP" : "7zn.exe" ]
-{
- actions piecemeal .pack { "C:\Program Files\7-ZIP\7zn.exe" a -r -tzip "$(<)" "$(>)" }
- actions piecemeal .zip { "C:\Program Files\7-ZIP\7zn.exe" a -r -tzip "$(<)" "$(>)" }
-}
-else
-{
- actions piecemeal .pack { zip -9r "$(<)" "$(>)" }
- actions piecemeal .zip { zip -9r "$(<)" "$(>)" }
-}
- actions piecemeal .cp { copy /Y "$(>)" "$(<)" }
+ if [ GLOB "C:\\Program Files\\7-ZIP" : "7zn.exe" ] {
+ actions piecemeal .pack. {
+ "C:\Program Files\7-ZIP\7zn.exe" a -r -tzip "$(<)" "$(>)"
+ }
+ actions piecemeal .zip. {
+ "C:\Program Files\7-ZIP\7zn.exe" a -r -tzip "$(<)" "$(>)"
+ }
+ }
+ else
+ {
+ actions piecemeal .pack. {
+ zip -9r "$(<)" "$(>)"
+ }
+ actions piecemeal .zip. {
+ zip -9r "$(<)" "$(>)"
+ }
+ }
+ actions piecemeal .cp. {
+ copy /Y "$(>)" "$(<)"
+ }
}
if $(UNIX)
{
- actions .pack { tar zcf "$(<)" "$(>)" }
- actions .zip { gzip -c9 "$(>)" > "$(<)" }
- actions .cp { cp -Rpf "$(>)" "$(<)" }
+ actions .pack. {
+ tar zcf "$(<)" "$(>)"
+ }
+ actions .zip. {
+ gzip -c9 "$(>)" > "$(<)"
+ }
+ actions .cp. {
+ cp -Rpf "$(>)" "$(<)"
+ }
}
# The single binary, compressed.
@@ -502,8 +580,8 @@ rule .binary
DEPENDS $(zip) : $($(<).exe) ;
DEPENDS dist : $(zip) ;
#~ LOCATE on $(zip) = $(locate-target) ;
- if $(NT) { .zip $(zip) : $($(<).exe) ; }
- if $(UNIX) { .pack $(zip) : $($(<).exe) ; }
+ if $(NT) { .zip. $(zip) : $($(<).exe) ; }
+ if $(UNIX) { .pack. $(zip) : $($(<).exe) ; }
.clean $(zip) ;
}
@@ -527,11 +605,11 @@ rule .package ( dst-dir : src-files + )
local dst-file = $(src-file:R=$(dst-dir)) ;
DEPENDS $(dst-file) : $(src-file) $(dst-file:D) ;
.mkdir $(dst-file:D) ;
- .cp $(dst-file) : $(src-file) ;
+ .cp. $(dst-file) : $(src-file) ;
.clean $(dst-file) ;
}
-
- .pack $(pack) : $(dst-files) ;
+
+ .pack. $(pack) : $(dst-files) ;
.clean $(pack) ;
}
@@ -561,15 +639,16 @@ rule .rpm ( name : source )
arch on $(target) = $(rpm-arch) ;
if $(rpm-arch) = ppc { target-opt on $(target) = --target= ; }
else { target-opt on $(target) = "--target " ; }
- .rpm-build $(target) : $(source) ;
+ .rpm. $(target) : $(source) ;
.clean $(name).$(rpm-arch).rpm $(name).src.rpm ;
}
-actions .rpm-build
-{ export BOOST_JAM_DOCS="$(docs)"
+actions .rpm. {
+ export BOOST_JAM_DOCS="$(docs)"
export BOOST_JAM_TOOLSET="$(toolset)"
rpm -ta $(target-opt)$(arch) $(>) | tee rpm.out
cp `grep -e '^Wrote:' rpm.out | sed 's/^Wrote: //'` .
- rm -f rpm.out }
+ rm -f rpm.out
+}
# The distribution targets.
.binary bjam ;
diff --git a/historic/jam/src/index.html b/historic/jam/src/index.html
index 8cd31972d..a21cf08dd 100644
--- a/historic/jam/src/index.html
+++ b/historic/jam/src/index.html
@@ -135,8 +135,8 @@
facilitate its use in the Boost Build System, but should be backward
compatible with Perforce Jam.
- 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. |
-
-
+
+ | Jam.html |
+ Jam and language reference. |
+
+
+ | Porting |
+ Notes on porting jam to wildcat platforms. |
+
+
Installing
@@ -317,7 +296,8 @@ sh ./build.sh
href="http://gcc.gnu.org">GCC as the MinGW configuration
- |
+
+ * Common install location: "C:\MinGW" |
@@ -336,8 +316,13 @@ sh ./build.sh
"http://msdn.microsoft.com/visualc/">vc7, Microsoft Visual C++
7.x
- | * Common install location: "C:\Program
- Files\Microsoft Visual Studio .NET" |
+
+ * VCVARS32.BAT or VSVARS32.BAT already
+ configured
+ * Common install location: "C:\Program Files\Microsoft Visual Studio
+ .NET"
+ * Common install location: "C:\Program Files\Microsoft Visual Studio
+ .NET 2003" |
@@ -443,17 +428,20 @@ sh ./build.sh
used for compatability with the Perforce Jam/MR functionality, whereas
"bjam" is used for the extended Boost.Build functionality.
- 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:
-
+
- The location of targets cannot always be derived solely from what
the user puts in a Jamfile, but sometimes depends also on the binding process. Some mechanism to distinctly identify
@@ -1187,32 +1175,28 @@ if $(MESSAGE) { ECHO The message is: $(MESSAGE) ; }
unintuitive, with regards to how other Unix programs accept options.
There are two variants accepted as valid for an option:
-
+
- -xvalue, and
- -x value.
- 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.