diff --git a/src/engine/Jam.html b/src/engine/Jam.html index 5d612ecba..4afac4e52 100644 --- a/src/engine/Jam.html +++ b/src/engine/Jam.html @@ -248,7 +248,8 @@ jam [ -a ] [ -n ] [ -v ] with two exceptions: double quotes (") can enclose whitespace to embed it into a token, and everything between the matching curly braces ({}) in the definition of a rule action is treated - as a single string. A backslash (\) can escape a double quote. + as a single string. A backslash (\) can escape a double quote, + or any single whitespace character.
@@ -299,6 +300,17 @@ jam [ -a ] [ -n ] [ -v ]
+ Rules can return values, which can be expanded into a list with + "[ rule args ... ]". 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 arguments). Note that 'return' doesn't actually cause a + return, i.e., is a no-op unless it is the last statement + of the last block executed within rule body. + +
+ The jam statements for defining and invoking rules are as follows: @@ -325,15 +337,33 @@ jam [ -a ] [ -n ] [ -v ]
+ on target rulename field1 : field2 : ...
+ : fieldN ;
+
+
+
+ [ rulename field1 : field2 : ...
+ : fieldN ]
+ [ on target rulename field1 : field2 : ...
+ : fieldN ]
+
+
+
+ A rule is invoked with values in field1 through fieldN. They may be referenced in the procedure's - statements as $(1) through $(N), and the first - two only may be referenced in the action's commands as - $(1) and $(2). $(<) and $(>) are synonymous with $(1) + statements as $(1) through $(N) (9 max), and the + first two only may be referenced in the action's commands + as $(1) and $(2). $(<) and $(>) are synonymous with $(1) and $(2).
@@ -396,7 +426,7 @@ jam [ -a ] [ -n ] [ -v ]
- Jam has ten built-in rules, all of which are pure + Jam has eleven built-in rules, all of which are pure procedure rules without updating actions. They are in three groups: the first builds the dependency graph; the second modifies it; and the third are just utility @@ -421,8 +451,8 @@ jam [ -a ] [ -n ] [ -v ] INCLUDES targets1 : targets2 ; -
- "foo.h" depends on "foo.c" and "foo.h" in this example. + "foo.o" depends on "foo.c" and "foo.h" in this example. @@ -550,6 +580,31 @@ jam [ -a ] [ -n ] [ -v ]
+ + "Echo", "echo", "Exit", and "exit" are accepted as aliases for ECHO + and EXIT, since it is hard to tell that these are built-in + rules and not part of the language, like "include". + + + +
+ + The GLOB rule does filename globbing. + +
|
+
+ return values ;
+
+
+
+
+
+
switch value
+
{
case pattern1 : statements ;
case pattern2 : statements ;
@@ -677,9 +748,22 @@ jam [ -a ] [ -n ] [ -v ]
match zero or more characters
[chars]
match any single character in chars
+ [^chars]
+ match any single character not in chars
+ \x
+ match x (escapes the other wildcards)
+
+
+ while cond { statements }
+
+
+
+ Repeatedly execute statements while cond
+ remains true upon entry. (See the description of cond
+ expression syntax under if, above).
Variables
@@ -876,6 +960,13 @@ jam [ -a ] [ -n ] [ -v ]
Prepend root to the whole file name, if not
already rooted.
+ :E=value
+ Assign value to the variable if it is unset.
+
+ :J=joinval
+ Concatentate list elements into single
+ element, separated by joinval.
+
@@ -1188,13 +1279,19 @@ jam [ -a ] [ -n ] [ -v ]
- Copyright 1997, 2000 Perforce Software, Inc.
+ Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
Comments to info@perforce.com
Last updated: December 31, 2000
+<<<<<<< variant A
$Id$
+>>>>>>> variant B
+ $Id$
+####### Ancestor
+ $Id$
+======= end