When passing """" """" to a shell, it is evaluated to a single word " " if
cmd.exe evaluates it, but to an unquoted single space if make
short-circuits the cmd.exe argument.
Test case:
foo.mk contains:
SHELL=cmd.exe
$(info x is $(x))
default:
mkdir $(x)
Makefile contains:
SHELL=cmd.exe
default:
$(MAKE) -f foo.mk x=a"""" """"b
With 3.82 (which lets cmd.exe handle the quotes), this yields:
x is a" "b
With master (which short-circuits it), it yields:
x is a
*** No rule to build target 'b'. Stop.
My actual use case is similar to the 'mkdir' invocation in foo.mk (a file
with spaces needs to be quoted twice in order to be passed to commands in a
recursive make). I have found sufficient workarounds for my use cases.
_______________________________________________
Make-w32 mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/make-w32