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

Reply via email to