Jim Meyering wrote:
> I've been lobbying to remove the obsolescent @VAR@ notation
> in favor of $(VAR) notation for a long time.

Using @VAR@ instead of $(VAR) removes one level of complexity, thus
making debugging easier: If someone reports that in a Makefile,
@FOO@ does not expand to a correct value, the next question I ask
him: "look what's the value of FOO in config.status". Whereas when
$(FOO) does not expand to a correct value, I have to ask 3 questions:
  - Verify that no other assignment to FOO exists in the Makefile,
  - Verify that no FOO variable assignment was passed from the parent
    directory.
  - Look what's the value of FOO in config.status.

Additionally, using $(VAR) implies 'make' processing: If the expansion
contains a '#', the expansion will be truncated at that point in $(VAR)
but not in @v...@.

$(VAR) certainly adds a level of flexibility over @VAR@, but I find that
rarely useful.

Bruno


Reply via email to