> Date: Mon, 6 May 2013 22:26:14 +0200
> From: Erik Carstensen
> Cc: make-w32@gnu.org
>
> > why not use this instead:
> >
> > SHELL=cmd.exe
> > default:
> > $(MAKE) -f foo.mk x="a b"
> >
>
> The problem is that foo.mk will use $(x) directly in shell invocations.
Then you can quote $(x)
On Fri, May 3, 2013 at 9:20 PM, Eli Zaretskii wrote:
> You should use a backslash to produce a literal quote that should be
> passed to a program. That's what the Microsoft startup code provides
> as the way to get quote characters into programs.
>
Thanks! I thought I had tried that and faile
> Date: Fri, 3 May 2013 17:17:20 +0200
> From: Erik Carstensen
>
> 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.
You should use a backslash to produce a literal qu
ot;""""b" a """b
foo.exe "a \" b"a " b
Note in the last example above, a batchfile would see TWO arguments (not one).
1st: "a \"
2nd: b"
.dfc.
From: make-w32-bounces+dcampbell=nvidia@gnu.org
[mai
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
defau