1comment testing start 2this is foo 3This is how a comment looks: # comment 4comment testing done 5make: "cond1" line 75: warning: extra else 6make: "cond1" line 85: warning: extra else 72 is prime 8A='other' B='unknown' C='clever' o='no,no' 9Passed: 10 var 11 ("var") 12 (var != var) 13 var != var 14 !((var != var) && defined(name)) 15 var == quoted 16 171 is not prime 182 is prime 193 is prime 204 is not prime 215 is prime 22 23make: warning: String comparison operator should be either == or != 24make: Bad conditional expression `"0" > 0' in "0" > 0?OK:No 25 26OK 27make: "error" line 3: just FYI 28make: "error" line 4: warning: this could be serious 29make: "error" line 5: this is fatal 30UT_DOLLAR=This is $UT_FU 31UT_FOO=foobar is fubar 32UT_FU=fubar 33UT_TEST=export 34UT_ZOO=hoopie 35UT_ALL=even this gets exported 36UT_BADDIR=unit-tests 37UT_DOLLAR=This is $UT_FU 38UT_F=fine 39UT_FOO=foobar is fubar 40UT_FU=fubar 41UT_NO=all 42UT_OK=good 43UT_OKDIR=unit-tests 44UT_TEST=export-all 45UT_ZOO=hoopie 46At first, I am 47happy 48and now: sad 49.ERROR: Looks like 'sad' is upset. 50*** Error code 1 51 52Stop. 53make: stopped in unit-tests 54simple.1 55simple.1 56simple.2 57simple.2 58recursive.1.1.* 59recursive.1.1.* 60recursive.1.1.* 61recursive.1.1.* 62recursive.1.99 63recursive.1.99 64recursive.2.1.* 65recursive.2.1.* 66recursive.2.1.* 67recursive.2.1.* 68recursive.2.99 69recursive.2.99 70shared.0 71shared.0 72shared.1.99 73shared.1.99 74shared.2.1 75shared.2.1 76shared.2.99 77shared.2.99 78make: Graph cycles through `cycle.2.99' 79make: Graph cycles through `cycle.2.98' 80make: Graph cycles through `cycle.2.97' 81cycle.1.99 82cycle.1.99 83.for with :S;... OK 84b2af338b 853360ac65 867747f046 879ca87054 88880fe816 89208fcbd3 90d5d376eb 91de41416c 92Expect: Unknown modifier 'Z' 93make: Unknown modifier 'Z' 94VAR:Z= 95Expect: Unknown modifier 'Z' 96make: Unknown modifier 'Z' 97VAR:Z= 98Expect: Unclosed variable specification for VAR 99make: Unclosed variable specification (expecting '}') for "VAR" (value "Thevariable") modifier S 100VAR:S,V,v,=Thevariable 101Expect: Unclosed variable specification for VAR 102make: Unclosed variable specification after complex modifier (expecting '}') for VAR 103VAR:S,V,v,=Thevariable 104Expect: Unclosed substitution for VAR (, missing) 105make: Unclosed substitution for VAR (, missing) 106VAR:S,V,v= 107LIB=a X_LIBS:M${LIB${LIB:tu}} is "/tmp/liba.a" 108LIB=a X_LIBS:M*/lib${LIB}.a is "/tmp/liba.a" 109LIB=a X_LIBS:M*/lib${LIB}.a:tu is "/TMP/LIBA.A" 110LIB=b X_LIBS:M${LIB${LIB:tu}} is "" 111LIB=b X_LIBS:M*/lib${LIB}.a is "" 112LIB=b X_LIBS:M*/lib${LIB}.a:tu is "" 113LIB=c X_LIBS:M${LIB${LIB:tu}} is "" 114LIB=c X_LIBS:M*/lib${LIB}.a is "" 115LIB=c X_LIBS:M*/lib${LIB}.a:tu is "" 116LIB=d X_LIBS:M${LIB${LIB:tu}} is "/tmp/libd.a" 117LIB=d X_LIBS:M*/lib${LIB}.a is "/tmp/libd.a" 118LIB=d X_LIBS:M*/lib${LIB}.a:tu is "/TMP/LIBD.A" 119LIB=e X_LIBS:M${LIB${LIB:tu}} is "/tmp/libe.a" 120LIB=e X_LIBS:M*/lib${LIB}.a is "/tmp/libe.a" 121LIB=e X_LIBS:M*/lib${LIB}.a:tu is "/TMP/LIBE.A" 122Mscanner=OK 123path=':/bin:/tmp::/:.:/no/such/dir:.' 124path='/bin:/tmp:/:/no/such/dir' 125path='/bin:/tmp:/:/no/such/dir' 126path='/bin':'/tmp':'/':'/no/such/dir' 127path='/bin':'/tmp':'/':'/no/such/dir' 128path_/usr/xbin=/opt/xbin/ 129paths=/bin /tmp / /no/such/dir /opt/xbin 130PATHS=/BIN /TMP / /NO/SUCH/DIR /OPT/XBIN 131The answer is 42 132LIST = one two three four five six seven eight nine ten 133LIST:O = eight five four nine one seven six ten three two 134LIST:Ox = Ok 135LIST:O:Ox = Ok 136LISTX = Ok 137LISTSX = Ok 138make: Bad modifier `:OX' for LIST 139BADMOD 1 = } 140make: Bad modifier `:OxXX' for LIST 141BADMOD 2 = XX} 142LIST="one two three four five six" 143LIST:ts,="one,two,three,four,five,six" 144LIST:ts/:tu="ONE/TWO/THREE/FOUR/FIVE/SIX" 145LIST:ts::tu="ONE:TWO:THREE:FOUR:FIVE:SIX" 146LIST:ts:tu="ONETWOTHREEFOURFIVESIX" 147LIST:tu:ts/="ONE/TWO/THREE/FOUR/FIVE/SIX" 148LIST:ts:="one:two:three:four:five:six" 149LIST:ts="onetwothreefourfivesix" 150LIST:ts:S/two/2/="one2threefourfivesix" 151LIST:S/two/2/:ts="one2threefourfivesix" 152LIST:ts/:S/two/2/="one/2/three/four/five/six" 153Pretend the '/' in '/n' etc. below are back-slashes. 154LIST:ts/n="one 155two 156three 157four 158five 159six" 160LIST:ts/t="one two three four five six" 161LIST:ts/012:tu="ONE 162TWO 163THREE 164FOUR 165FIVE 166SIX" 167make: Bad modifier `:tx' for LIST 168LIST:tx="}" 169make: Bad modifier `:ts\x' for LIST 170LIST:ts/x:tu="\x:tu}" 171FU_mod-ts="a/b/cool" 172FU_mod-ts:ts:T="cool" == cool? 173B.${AAA:ts}="Baaa" == Baaa? 174make: Bad modifier `:[]' for LIST 175LIST:[]="" is an error 176LIST:[0]="one two three four five six" 177LIST:[0x0]="one two three four five six" 178LIST:[000]="one two three four five six" 179LIST:[*]="one two three four five six" 180LIST:[@]="one two three four five six" 181LIST:[0]:C/ /,/="one,two three four five six" 182LIST:[0]:C/ /,/g="one,two,three,four,five,six" 183LIST:[0]:C/ /,/1g="one,two,three,four,five,six" 184LIST:[*]:C/ /,/="one,two three four five six" 185LIST:[*]:C/ /,/g="one,two,three,four,five,six" 186LIST:[*]:C/ /,/1g="one,two,three,four,five,six" 187LIST:[@]:C/ /,/="one two three four five six" 188LIST:[@]:C/ /,/g="one two three four five six" 189LIST:[@]:C/ /,/1g="one two three four five six" 190LIST:[@]:[0]:C/ /,/="one,two three four five six" 191LIST:[0]:[@]:C/ /,/="one two three four five six" 192LIST:[@]:[*]:C/ /,/="one,two three four five six" 193LIST:[*]:[@]:C/ /,/="one two three four five six" 194EMPTY="" 195EMPTY:[#]="1" == 1 ? 196ESCAPEDSPACE="\ " 197ESCAPEDSPACE:[#]="1" == 1 ? 198REALLYSPACE=" " 199REALLYSPACE:[#]="1" == 1 ? 200LIST:[#]="6" 201LIST:[0]:[#]="1" == 1 ? 202LIST:[*]:[#]="1" == 1 ? 203LIST:[@]:[#]="6" 204LIST:[1]:[#]="1" 205LIST:[1..3]:[#]="3" 206EMPTY:[1]="" 207ESCAPEDSPACE="\ " 208ESCAPEDSPACE:[1]="\ " 209REALLYSPACE=" " 210REALLYSPACE:[1]="" == "" ? 211REALLYSPACE:[*]:[1]=" " == " " ? 212LIST:[1]="one" 213make: Bad modifier `:[1.]' for LIST 214LIST:[1.]="" is an error 215make: Bad modifier `:[1].' for LIST 216LIST:[1].="}" is an error 217LIST:[2]="two" 218LIST:[6]="six" 219LIST:[7]="" 220LIST:[999]="" 221make: Bad modifier `:[-]' for LIST 222LIST:[-]="" is an error 223make: Bad modifier `:[--]' for LIST 224LIST:[--]="" is an error 225LIST:[-1]="six" 226LIST:[-2]="five" 227LIST:[-6]="one" 228LIST:[-7]="" 229LIST:[-999]="" 230LONGLIST:[17]="17" 231LONGLIST:[0x11]="17" 232LONGLIST:[021]="17" 233LIST:[0]:[1]="one two three four five six" 234LIST:[*]:[1]="one two three four five six" 235LIST:[@]:[1]="one" 236LIST:[0]:[2]="" 237LIST:[*]:[2]="" 238LIST:[@]:[2]="two" 239LIST:[*]:C/ /,/:[2]="" 240LIST:[*]:C/ /,/:[*]:[2]="" 241LIST:[*]:C/ /,/:[@]:[2]="three" 242make: Bad modifier `:[1.]' for LIST 243LIST:[1.]="" is an error 244make: Bad modifier `:[1..]' for LIST 245LIST:[1..]="" is an error 246LIST:[1..1]="one" 247make: Bad modifier `:[1..1.]' for LIST 248LIST:[1..1.]="" is an error 249LIST:[1..2]="one two" 250LIST:[2..1]="two one" 251LIST:[3..-2]="three four five" 252LIST:[-4..4]="three four" 253make: Bad modifier `:[0..1]' for LIST 254LIST:[0..1]="" is an error 255make: Bad modifier `:[-1..0]' for LIST 256LIST:[-1..0]="" is an error 257LIST:[-1..1]="six five four three two one" 258LIST:[0..0]="one two three four five six" 259LIST:[3..99]="three four five six" 260LIST:[-3..-99]="four three two one" 261LIST:[-99..-3]="one two three four" 262HASH="#" == "#" ? 263LIST:[${HASH}]="6" 264LIST:[${ZERO}]="one two three four five six" 265LIST:[${ZERO}x${ONE}]="one" 266LIST:[${ONE}]="one" 267LIST:[${MINUSONE}]="six" 268LIST:[${STAR}]="one two three four five six" 269LIST:[${AT}]="one two three four five six" 270make: Bad modifier `:[${EMPTY' for LIST 271LIST:[${EMPTY}]="" is an error 272LIST:[${LONGLIST:[21]:S/2//}]="one" 273LIST:[${LIST:[#]}]="six" 274LIST:[${LIST:[${HASH}]}]="six" 275LIST:S/ /,/="one two three four five six" 276LIST:S/ /,/W="one,two three four five six" 277LIST:S/ /,/gW="one,two,three,four,five,six" 278EMPTY:S/^/,/="," 279EMPTY:S/^/,/W="," 280LIST:C/ /,/="one two three four five six" 281LIST:C/ /,/W="one,two three four five six" 282LIST:C/ /,/gW="one,two,three,four,five,six" 283EMPTY:C/^/,/="," 284EMPTY:C/^/,/W="," 285LIST:tW="one two three four five six" 286LIST:tw="one two three four five six" 287LIST:tW:C/ /,/="one,two three four five six" 288LIST:tW:C/ /,/g="one,two,three,four,five,six" 289LIST:tW:C/ /,/1g="one,two,three,four,five,six" 290LIST:tw:C/ /,/="one two three four five six" 291LIST:tw:C/ /,/g="one two three four five six" 292LIST:tw:C/ /,/1g="one two three four five six" 293LIST:tw:tW:C/ /,/="one,two three four five six" 294LIST:tW:tw:C/ /,/="one two three four five six" 295.TARGET="phony" .PREFIX="phony" .IMPSRC="" 296.TARGET="all" .PREFIX="all" .IMPSRC="" 297.TARGET="ok" .PREFIX="ok" .IMPSRC="" 298.TARGET="also.ok" .PREFIX="also.ok" .IMPSRC="" 299.TARGET="bug" .PREFIX="bug" .IMPSRC="" 300Posix says we should execute the command as if run by system(3) 301Expect 'Hello,' and 'World!' 302Hello, 303World! 304a command 305a command prefixed by '+' executes even with -n 306another command 307make -n 308echo a command 309echo "a command prefixed by '+' executes even with -n" 310a command prefixed by '+' executes even with -n 311echo another command 312make -n -j1 313{ echo a command 314} || exit $? 315echo "a command prefixed by '+' executes even with -n" 316a command prefixed by '+' executes even with -n 317{ echo another command 318} || exit $? 319Now we expect an error... 320*** Error code 1 (continuing) 321`all' not remade because of errors. 322V.i386 ?= OK 323FOOBAR = 324FOOBAR = foobar fubar 325fun 326fun 327fun 328In the Sun 329The answer is unknown 330The answer is unknown 331The answer is empty 332The answer is known 333The answer is 334The answer is empty 335The answer is known 336The answer is 42 337The answer is 42 338UT_DOLLAR=This is $UT_FU 339UT_FU=fubar 340UT_TEST=unexport 341UT_TEST=unexport-env 342default FU=<v>fu</v> FOO=<v>foo</v> VAR=<v></v> 343two FU=<v>bar</v> FOO=<v>goo</v> VAR=<v></v> 344three FU=<v>bar</v> FOO=<v>goo</v> VAR=<v></v> 345four FU=<v>bar</v> FOO=<v>goo</v> VAR=<v>Internal</v> 346five FU=<v>bar</v> FOO=<v>goo</v> VAR=<v>Internal</v> 347five v=is x k=is x 348six v=is y k=is y 349show-v v=override k=override 350*** Error code 1 (ignored) 351*** Error code 1 (ignored) 352