https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120106
--- Comment #14 from Nicolas Boulenguez <nicolas at debian dot org> ---
'=' can be overridden on the command line, but overrides the environment and
previous assignments (when a Makefile #includes another one).
'?=' has no effect when the variable is defined, whatever its origin.
For example
cat > Makefile <<EOF
a = 1
b ?= 2
c = 3
d ?= 4
all:
# \$(a) \$(b) \$(c) \$(d)
EOF
a=11 b=22 make c=33 d=44
prints # 1 22 33 44
