bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Desire clarification of 'override' behavior


From: Krejsa, Dan
Subject: Desire clarification of 'override' behavior
Date: Tue, 11 Sep 2007 10:28:50 -0700

Hi,

Like the poster of

  http://lists.gnu.org/archive/html/bug-make/2000-10/msg00011.html


I've noticed that gnu make (I'm currently using 3.80) has a little
undocumented
behavior regarding the use of 'override'.  Without 'override', an
assignment
in a Makefile to a make variable will not take effect if the make
variable has
been specified on the Make command line.  Using 'override' allows
assignments
in a Makefile to modify variables that have been specified on the
command
line.  That's basically what the documentation says.

However, using 'override' also seems to prevent subsequent assignments
to the variable, done within the Makefile without 'override', from
taking
effect, as if using 'override' made the variable look as if it had been
defined
on the command line.  This does not appear to be documented.

Is the behavior that 'override' seems to endow a variable with
'command line nature', even if it was not given on the command line,
so that subsequent assignments without 'override' have no effect,
intended or not?

If it is intended, it should probably be documented.

If it is not intended, and is viewed as a bug, and backwards
compatibility
issues permit, it should probably be fixed.  Otherwise it should be
documented.

- Dan

121> make --version
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
122> cat mk1
override FLEA = FLY
FLEA += FLUE

it :
        echo $(FLEA)
123> make -f mk1
echo FLY
FLY
124> cat mk2
FLEA = FLUE
override FLEA += FLY

it :
        echo $(FLEA)
125> make -f mk2
echo FLUE FLY
FLUE FLY
126>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]