chiark
/
gitweb
/
~ianmdlvl
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Syntax: Rescope effect of &:local+global
[secnet.git]
/
README
diff --git
a/README
b/README
index a44fb492b47301ea3bbbef8c102c645c5e4c9f8c..415913b824bc423861bca18ce5d0821574dd4fbc 100644
(file)
--- a/
README
+++ b/
README
@@
-88,13
+88,13
@@
empty string).
&= => sub_dir or TOP
&= => sub_dir or TOP
-&^lc => $
(top_srcdir)
/sub/dir/lc
-&^/ => $
(top_srcdir)
/sub/dir/
-&^. => $
(top_srcdir)
/sub/dir
+&^lc => $
{top_srcdir}
/sub/dir/lc
+&^/ => $
{top_srcdir}
/sub/dir/
+&^. => $
{top_srcdir}
/sub/dir
-&~lc => $
(top_srcdir)
/lc
-&~/ => $
(top_srcdir)
/
-&~. => $
(top_srcdir)
+&~lc => $
{top_srcdir}
/lc
+&~/ => $
{top_srcdir}
/
+&~. => $
{top_srcdir}
In general:
^ pathname of this subdirectory in source tree
In general:
^ pathname of this subdirectory in source tree
@@
-114,7
+114,7
@@
So pathname syntax is a subset of:
&\$ => $ provided for $-doubling regimes
&\NEWLINE eats the newline and vanishes
&\$ => $ provided for $-doubling regimes
&\NEWLINE eats the newline and vanishes
-&$VARIABLE => $
(sub_dir_VARIABLE) or $(TOP_VARIABLE)
+&$VARIABLE => $
{sub_dir_VARIABLE} or ${TOP_VARIABLE}
VARIABLE is ASCII starting with a letter and matching \w+
& thing thing... &
VARIABLE is ASCII starting with a letter and matching \w+
& thing thing... &
@@
-175,9
+175,9
@@
So pathname syntax is a subset of:
input files (including Final.sd.mk).
&:local+global [&]VARIABLE ...
input files (including Final.sd.mk).
&:local+global [&]VARIABLE ...
- Suppresses
the warning about seeing both VARIABLE and
- &VARIABLE. Any & specified in the RHS is redundant: this
-
always affects both versions identically
.
+ Suppresses
any warnings relating to forthcoming mentions
+ to VARIABLE or &VARIABLE, as applicable. Scope ends at
+
the end of the current directory's Suffix.sd.mk
.
&:changequote NEWQUOTE
changes the escape sequence from & to literally NEWQUOTE
&:changequote NEWQUOTE
changes the escape sequence from & to literally NEWQUOTE
@@
-205,6
+205,10
@@
Dollar doubling and macro assistance
&$- Stops dollar-doubling
Both are idempotent and local to the file or context.
&$- Stops dollar-doubling
Both are idempotent and local to the file or context.
+This is useful both for make macrology involving $(eval ...), and
+possibly for helping write complicated recipes involving shell
+variables, inline Perl code, etc.
+
Sometimes we will show $'s being doubled inside another construct.
This means the content of the construct is $-doubled: $-doubling is
locally enabled, and restored afterwards.
Sometimes we will show $'s being doubled inside another construct.
This means the content of the construct is $-doubled: $-doubling is
locally enabled, and restored afterwards.
@@
-233,8
+237,8
@@
$ => $$ including $'s produced by other
&-expansions not mentioned here
&\$ => $
&-expansions not mentioned here
&\$ => $
-&$
NN => $(NN) where N are digits
-&$
( => $(
+&$
( => ${ (expands to { } so it is useable for shell too)
+&$
NN => ${NN} where N are digits
A few contexts do not support $-doubling, such as directive arguments
or places where this might imply $-quadrupling. (There is no way to
A few contexts do not support $-doubling, such as directive arguments
or places where this might imply $-quadrupling. (There is no way to
@@
-334,7
+338,12
@@
suppressed with the &:warn directive. The warning tags are:
interpret this as $(F)BAR. It's normally better to write
it this way, at least if the variable expansion is followed
by more letters. Note that &$FOO works differently to
interpret this as $(F)BAR. It's normally better to write
it this way, at least if the variable expansion is followed
by more letters. Note that &$FOO works differently to
- raw make: it expands to $(sub_dir_FOO).
+ raw make: it expands to ${sub_dir_FOO}.
+
+ broken-var-ref
+ An attempt at variable expansion looking like $&...
+ You probably expected this to mean $(TOP_F)BAR but it
+ expands to $TOP_FBAR which make thinks means $(T)OP_FBAR.
unknown-warning
&:warn was used to try to enable a warning that this version
unknown-warning
&:warn was used to try to enable a warning that this version
@@
-402,7
+411,7
@@
far enough to regenerate a working set of makefiles. If this happens
just rerun ./config.status by hand.
If you go back and forth between different versions of your code you
just rerun ./config.status by hand.
If you go back and forth between different versions of your code you
-can sometimes find that `make' complains that one of your
Subd
ir.sd.mk
+can sometimes find that `make' complains that one of your
D
ir.sd.mk
files is missing: typically, if iot was used and therefore a
dependency in some other version of your code. If you run `make
clean' (or `make realclean') these dependencies are suppressed, which
files is missing: typically, if iot was used and therefore a
dependency in some other version of your code. If you run `make
clean' (or `make realclean') these dependencies are suppressed, which