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