X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?p=subdirmk.git;a=blobdiff_plain;f=README;h=14cc5420f4783f5f4568c73e58eab1c48f5759f9;hp=a44fb492b47301ea3bbbef8c102c645c5e4c9f8c;hb=9178f4c13177c6436d08182e1649d8476b4c3b8a;hpb=02276fc4ac88fc9cd85625c749ffe4305a8a69f8;ds=sidebyside diff --git a/README b/README index a44fb49..14cc542 100644 --- a/README +++ b/README @@ -88,13 +88,13 @@ empty string). &= => 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 @@ -114,7 +114,7 @@ So pathname syntax is a subset of: &\$ => $ 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... & @@ -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 @@ -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 - 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