[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Why call is not calling like native primitives? even when var is oth
Re: Why call is not calling like native primitives? even when var is otherwise undef?
Mon, 21 May 2018 13:50:07 -0400
On Mon, 2018-05-21 at 18:17 +0200, Garreau, Alexandre wrote:
> On 2018-05-21 at 10:56, Paul Smith wrote:
> > A few releases ago I made it illegal to create variable names
> > containing spaces so the above makefile no longer works. My
> > intention at that time was to allow a shorthand for "call" such as
> > you suggest, but I haven't made that change yet.
> Also, your (still unlocalized :/)
That message is localized. If your localization doesn't support that
message, you should report it to the translation team for your
language. For all messages in GNU make (and all other GNU and most
other GNU/Linux programs) if there is no translation available for a
string it falls back to the standard C local string.
Contact your translation team here:
> error message isn’t clear and, at the first time, bugged me wondering
> if the error really was because I did put a space inside the variable
> name: “spc-var.mk:3: *** missing separator. Stop.”; wouldn’t “space
> is not allowed in variable names” or more generally “variable name
> forbidden token”?
> What separator is it talking about exactely? The space character? the
> equal sign? something else I’m not thinking to?
That's exactly the problem. Makefile syntax is actually fairly free-
form, so make doesn't know that the line is really intended to be a
variable assignment. The only way to know the intent is by locating a
separator; until make finds a separator the line is just a list of
It might be intended to be a variable assignment, in which case the
separator that's missing is "=":
foo = bar = baz
Or it might be intended to be a rule, in which case the separator
that's missing is ":":
foo : bar = baz