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