:D expanded when var set true TRUE :U expanded when var undef true TRUE :D skipped if var undef :U skipped when var set is set :? only lhs when value true true TRUE :? only rhs when value false false FALSE do not evaluate or expand :? if discarding is set Version=123.456.789 == 123456789 Literal=3.4.5 == 3004005 We have target specific vars save-dollars: 0 = $ save-dollars: 1 = $$ save-dollars: 2 = $$ save-dollars: False = $ save-dollars: True = $$ save-dollars: false = $ save-dollars: true = $$ save-dollars: Yes = $$ save-dollars: No = $ save-dollars: yes = $$ save-dollars: no = $ save-dollars: On = $$ save-dollars: Off = $ save-dollars: ON = $$ save-dollars: OFF = $ save-dollars: on = $$ save-dollars: off = $ export-appended: env export-appended: env export-appended: env mk parse-dynamic: parse-dynamic parse-dynamic before parse-dynamic: parse-dynamic parse-dynamic after parse-dynamic: parse-dynamic parse-dynamic after varerror-unclosed:begin make: in target "varerror-unclosed": Unclosed variable "" make: in target "varerror-unclosed": Unclosed variable "UNCLOSED" make: in target "varerror-unclosed": Unclosed variable "UNCLOSED" make: in target "varerror-unclosed": while evaluating variable "UNCLOSED": Unclosed variable "PATTERN" make: Unclosed expression, expecting '}' for modifier "M${PATTERN" of variable "UNCLOSED" with value "" make: in target "varerror-unclosed": Unclosed variable "param" make: in target "varerror-unclosed": Unclosed variable "UNCLOSED." make: in target "varerror-unclosed": Unclosed variable "UNCLOSED.1" make: in target "varerror-unclosed": Unclosed variable "UNCLOSED.2" make: in target "varerror-unclosed": Unclosed variable "UNCLOSED.3" make: in target "varerror-unclosed": while evaluating variable "UNCLOSED_INDIR_2": while evaluating variable "UNCLOSED_INDIR_1": Unclosed variable "UNCLOSED_ORIG" varerror-unclosed:end target1-flags: we have: one two target2-flags: we have: one two three four exit status 0