Re: With SHELL=cmd, make fails to execute bat file paths starting with ../

Erik Carstensen <[email protected]> Wed, 8 May 2013 09:49:22 +0200
Newsgroups gmane.comp.gnu.make.windows
Message-ID <CALeBojTbMU59tnWit2=xikY9c083hARUxkTKmzmt=6F1YN1EAw@mail.gmail.com>
On Sat, May 4, 2013 at 9:23 AM, Eli Zaretskii <[email protected]> wrote:

> > From: Duane Campbell <[email protected]>
> > CC: "[email protected]" <[email protected]>, Duane Campbell
> >       <[email protected]>
> > Date: Fri, 3 May 2013 16:21:23 -0700
> >
> > I think gnu-make users need to be responsible for quoting (and proper
> slashes) for the cmd.exe shell.
>
> I couldn't agree more.  Make cannot fix something the shell doesn't
> accept on its command line.  Make can only be required not to ruin
> something a shell will accept.


Right. I think this one will qualify then:

SHELL=cmd.exe
foo:
    $(MAKE) 'a b'

will complain that there is no target "a b", while

SHELL=cmd.exe
foo:
    call $(MAKE) 'a b'

will complain that there is no target "'a".

However, if I replace $(MAKE) with (cygwin's) touch, then both makefiles
will create the file "a b".

So, it seems that the CreateProcess call from make does not correspond
exactly to the cmd.exe string, but to something very similar which some
runtimes consider equivalent.

Erik

_______________________________________________
Make-w32 mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/make-w32