by the final warning state after processing all the toplevel
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.
+&:local+global [!][&]VARIABLE ...
+ 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.
+ Prefixing with ! removes [&]VARIABLE from the suppresion list.
&:changequote NEWQUOTE
changes the escape sequence from & to literally NEWQUOTE
&:endm .. endef
NAME is processed for &
-&${..$..} => ${eval ${call ..$$..}}
+&{..$..} => ${eval ${call ..$$..}}
(matches { } pairs to find the end)
content is $-doubled (unless it contains &$- to turn that off)
+ cf &(...), see "Convenience syntax for eval", below.
Together &:macro and &${...} provide a more reasonable macro facility
than raw make. They solve the problem that make expansions cannot
or places where this might imply $-quadrupling. (There is no way to
get $-quadrupling.)
+Convenience syntax for eval
+- - - - - - - - - - - - - -
+
+&(thing => $(call thing
+&( thing => $(call thing
+ and specially:
+&(&lc => $(call sub_dir_lc or $(call TOP_lc
+&( &lc => $(call sub_dir_lc or $(call TOP_lc
+ even though lc would normally be thought a filename
+
+Unlike &{...}, this does not involve any dollar-doubling.
+
Invocation, "recursive" per-directory targets
---------------------------------------------