Follow-up Comment #7, bug #51974 (project make): Either the 'new' documentation is not entirely correct, or there is a bug in the current expansion logic (or I am misunderstanding something).
The documentation states: ---- 4. Expand elements of the line which appear in an immediate expansion context (see How make Reads a Makefile). 5. Scan the line for a separator character, such as ‘:’ or ‘=’, to determine whether the line is a macro assignment or a rule (see Recipe Syntax). 6. Internalize the resulting operation and read the next line. An important consequence of this is that a macro can expand to an entire rule, if it is one line long. ---- The last statement assumes that a line containing only a variable reference, such as $(myrule) presents an immediate expansion context, although it does not meet any of the stated forms of an immediate expansion context. If it were, then this should also work: myassignment = var = val $(myassignment) Step 5 of the list above would apply to the last line of this example (it expands to 'var = val'). However, make fails with a "missing separator" error. A slightly different error, "empty variable name", results from this variation: myassignment = var := val $(myassignment) _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?51974> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/