Good day,

Consider the following Makefile:

a: A ?= 1
a:
    @echo A=$(A)

b: A = 2
b: a

I would've expected "make a" to print "A=1", but "make b" to print "A=2",
however they both output "A=1", though by reading the manual [1] I
understand that ?= operator is supported and by the time variables for "a"
target are re-evaluated A is already defined from the "b" rule. What am I
missing?

Thank you,
Zaar

[1]
https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html

Reply via email to