If you want to clear a variable, setting its value to empty is usually
sufficient. Expanding such a variable will yield the same result (empty
string) regardless of whether it was set or not. However, if you are
flavor (see Flavor Function) and
origin (see Origin Function) functions, there is a difference
between a variable that was never set and a variable with an empty value.
In such situations you may want to use the
undefine directive to
make a variable appear as if it was never set. For example:
foo := foo bar = bar undefine foo undefine bar $(info $(origin foo)) $(info $(flavor bar))
This example will print “undefined” for both variables.
If you want to undefine a command-line variable definition, you can use
override directive together with
undefine, similar to
how this is done for variable definitions:
override undefine CFLAGS