summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
8a588ad)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
&{..$..} => ${eval ${call ..$$..}}
(matches { } pairs to find the end)
content is $-doubled (unless it contains &$- to turn that off)
&{..$..} => ${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.
+ contrast &(...), see "Convenience syntax for call", below.
-Together &:macro and &${...} provide a more reasonable macro facility
+Together &:macro and &{...} provide a more reasonable macro facility
than raw make. They solve the problem that make expansions cannot
than raw make. They solve the problem that make expansions cannot
-directly generate multiple rules, variable, etc.; instead, `$(eval )'
+directly generate multiple rules, variables, etc.; instead, `$(eval )'
must be used, but that re-expands the argument, meaning that all the
literal text must be $-doubled. This applies to the macro text and to
the arguments. Also `$(eval $(call ...))' is an unfortunate syntax.
must be used, but that re-expands the argument, meaning that all the
literal text must be $-doubled. This applies to the macro text and to
the arguments. Also `$(eval $(call ...))' is an unfortunate syntax.
-Hence &:macro and &${...}.
+Hence &:macro and &{...}.
While dollar-doubling:
- - - - - - - - - - -
While dollar-doubling:
- - - - - - - - - - -
or places where this might imply $-quadrupling. (There is no way to
get $-quadrupling.)
or places where this might imply $-quadrupling. (There is no way to
get $-quadrupling.)
-Convenience syntax for eval
+Convenience syntax for call
- - - - - - - - - - - - - -
&(thing => $(call thing
- - - - - - - - - - - - - -
&(thing => $(call thing
Unlike &{...}, this does not involve any dollar-doubling.
Unlike &{...}, this does not involve any dollar-doubling.
+Use this when the expansion is going to be a piece of text to be used
+as part of a rule, filename, etc. When the expansion is top-level
+make text (eg, rules), use &:macro and &{...}.
+
Invocation, "recursive" per-directory targets
---------------------------------------------
Invocation, "recursive" per-directory targets
---------------------------------------------