Previous: Immediately Expanded Variable Assignment, Up: The Two Flavors of Variables [Contents][Index]
There is another assignment operator for variables, ‘?=’. This is called a conditional variable assignment operator, because it only has an effect if the variable is not yet defined. This statement:
FOO ?= bar
is exactly equivalent to this
(see The origin
Function):
ifeq ($(origin FOO), undefined) FOO = bar endif
Note that a variable set to an empty value is still defined, so ‘?=’ will not set that variable.