2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-15 13:02:11 +00:00

----------------------------------------------------------------------

Modified Files:
	allyourbase.jam build_system.htm new-split.jam
 Tag: jam_src
	jam_src/Jambase jam_src/compile.c jam_src/compile.h
	jam_src/headers.c jam_src/jam.c jam_src/jam.h
	jam_src/jambase.c jam_src/jamgram.c jam_src/jamgram.h
	jam_src/jamgram.y jam_src/jamgram.yy jam_src/jamgramtab.h
	jam_src/lists.c jam_src/lists.h jam_src/makedebugjam.bat
	jam_src/modules.c jam_src/modules.h jam_src/newstr.c
	jam_src/newstr.h jam_src/parse.c jam_src/parse.h
	jam_src/rules.c jam_src/rules.h jam_src/search.c
	jam_src/subst.c
 No tag
	test/check-jam-patches.jam
Added Files:
	boost-build.jam
----------------------------------------------------------------------

allyourbase.jam
  Fix the way new-split.jam is included, by using $(JAM_VERSION) to detect the
  presence of new language features.

build_system.htm
  Updated documentation to include core Jam extensions.

jam_src/Jambase
  Updated so that the built-in Jambase can be completely overridden based on
  JAMBASE, BOOST_ROOT, and BOOST_BUILD_PATH environment variables.

jam_src/compile.{c,h}
  Added IMPORT and CALLER_MODULE rules, header legend for profile dump. Moved
  regex_compile so it could be used by more functions.

jam_src/headers.c, jambase.c, jamgram.{c,y,yy}, search.c, subst.c
  Adjusted for the addition of FRAMEs, which was needed for CALLER_MODULE.

jam_src/jam.c
  added JAM_VERSION and started using FRAMEs.

jam_src/jam.h
  swapped the -d argument numbers that were used by profiling and parse debugging.

jam_src/lists.{c,h}
  Pulled stack frames out of LOL and put them where they belong, in the interpreter.

jam_src/modules.{c,h}
  Use strncat instead of strncpy to get predictable behavior.

jam_src/parse.{c,h}, rules.{c,h}
  Adjust for FRAMEs, and added a rulename field in the PARSE node to support
  profiling with modules.

test/check-jam-patches.jam
  Added tests for IMPORT and CALLER_MODULE


[SVN r11427]
This commit is contained in:
Dave Abrahams
2001-10-23 23:10:28 +00:00
parent 28f4d9f693
commit 4d7fc5f3ae
8 changed files with 2238 additions and 868 deletions

View File

@@ -1382,8 +1382,9 @@ rule split-path
# The new jam executable has slightly different SUBST behavior which we need to
# account for.
if $(NEW_BOOST_JAM) {
if $(JAM_VERSION[1]) >= 03 {
SEARCH on new-split.jam = $(BOOST_BUILD_PATH) ;
include new-split.jam ; # this is temporary.
} else {

7
boost-build.jam Normal file
View File

@@ -0,0 +1,7 @@
# (C) Copyright David Abrahams 2001. Permission to copy, use, modify, sell and
# distribute this software is granted provided this copyright notice appears in
# all copies. This software is provided "as is" without express or implied
# warranty, and with no claim as to its suitability for any purpose.
SEARCH on <jam-module>allyourbase.jam = $(BOOST_BUILD_PATH) ;
include <jam-module>allyourbase.jam ;

File diff suppressed because it is too large Load Diff

View File

@@ -99,11 +99,13 @@ rule identity ( list * )
}
#
# test modules
# test module primitives
#
{
local x = a b c d e ;
local y = c d e ;
local x = a b c d e f g h i j ;
local y = $(x[3-]) ;
rule shift1 ( dummy ) { }
module my_module
{
@@ -149,7 +151,53 @@ rule identity ( list * )
assert-equal $(x) : identity $(y) ;
# Prove that the module's rule is not exposed to the world at large without
# qualification. This is expected to produce an "unknown rule" warning.
shift1 ;
# qualification
shift1 nothing ;
assert-equal $(x) : identity $(y) ;
IMPORT : my_module : shift1 shift2 : shifty ;
shifty ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
shift2 ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
IMPORT : my_module ;
shift1 ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
shift2 ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
}
#
# test CALLER_MODULE
#
{
module module1
{
rule f ( )
{
local m = [ CALLER_MODULE ] ;
assert-equal : identity $(m) ;
module2.f ;
}
}
module module2
{
rule f ( )
{
local m = [ CALLER_MODULE ] ;
assert-equal module1 : identity $(m) ;
}
}
module1.f ;
}

View File

@@ -1382,8 +1382,9 @@ rule split-path
# The new jam executable has slightly different SUBST behavior which we need to
# account for.
if $(NEW_BOOST_JAM) {
if $(JAM_VERSION[1]) >= 03 {
SEARCH on new-split.jam = $(BOOST_BUILD_PATH) ;
include new-split.jam ; # this is temporary.
} else {

File diff suppressed because it is too large Load Diff

7
v2/boost-build.jam Normal file
View File

@@ -0,0 +1,7 @@
# (C) Copyright David Abrahams 2001. Permission to copy, use, modify, sell and
# distribute this software is granted provided this copyright notice appears in
# all copies. This software is provided "as is" without express or implied
# warranty, and with no claim as to its suitability for any purpose.
SEARCH on <jam-module>allyourbase.jam = $(BOOST_BUILD_PATH) ;
include <jam-module>allyourbase.jam ;

View File

@@ -99,11 +99,13 @@ rule identity ( list * )
}
#
# test modules
# test module primitives
#
{
local x = a b c d e ;
local y = c d e ;
local x = a b c d e f g h i j ;
local y = $(x[3-]) ;
rule shift1 ( dummy ) { }
module my_module
{
@@ -149,7 +151,53 @@ rule identity ( list * )
assert-equal $(x) : identity $(y) ;
# Prove that the module's rule is not exposed to the world at large without
# qualification. This is expected to produce an "unknown rule" warning.
shift1 ;
# qualification
shift1 nothing ;
assert-equal $(x) : identity $(y) ;
IMPORT : my_module : shift1 shift2 : shifty ;
shifty ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
shift2 ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
IMPORT : my_module ;
shift1 ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
shift2 ;
y = $(y[2-]) ;
assert-equal $(x) : identity $(y) ;
}
#
# test CALLER_MODULE
#
{
module module1
{
rule f ( )
{
local m = [ CALLER_MODULE ] ;
assert-equal : identity $(m) ;
module2.f ;
}
}
module module2
{
rule f ( )
{
local m = [ CALLER_MODULE ] ;
assert-equal module1 : identity $(m) ;
}
}
module1.f ;
}