On Sat, 2026-01-31 at 11:18 +0800, lijh.8 via Users list for the GNU implementation of make wrote: > Recipe in both Makefiles starts with spaces. > Is not the argument to echo command a quoted text string? > Why example 1 does not report `missing separator` too? > > $ cat Makefile > test: > @echo "recipe starts with space and has : colon, isn't > this a quoted text string "
It's because by adding a colon, you've added a separator. So there's now not a missing separator. Make doesn't "do" quoting, at all. To make, single- and double-quote characters are treated like an "a" or "b" or any other simple character. So, the line: @echo "colon : here" is interpreted by make as a rule with two targets '@echo' and '"colon', each with a prerequisite 'here"'. If the colon is missing then there's no seprator and so make interpret this line.
