X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=README;h=415913b824bc423861bca18ce5d0821574dd4fbc;hb=4f0ba0e06ccac804cf0dcc9b9d8c3628e35d2336;hp=0b84a0ec35dcfd6aec0c08736bd3f9b028b25b91;hpb=faea3b5420ab60445e8efb82940fac474a441de1;p=secnet.git diff --git a/README b/README index 0b84a0e..415913b 100644 --- a/README +++ b/README @@ -175,9 +175,9 @@ So pathname syntax is a subset of: 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 @@ -205,6 +205,10 @@ Dollar doubling and macro assistance &$- 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. @@ -233,8 +237,8 @@ $ => $$ including $'s produced by other &-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 @@ -407,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 -can sometimes find that `make' complains that one of your Subdir.sd.mk +can sometimes find that `make' complains that one of your Dir.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