make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: make fails when quote marks are encountered


From: Earnie Boyd
Subject: Re: make fails when quote marks are encountered
Date: Tue, 19 Jun 2007 08:58:45 -0400
User-agent: Internet Messaging Program (IMP) H3 (4.0.4)

Quoting Eli Zaretskii <address@hidden>:

Date: Mon, 18 Jun 2007 14:24:48 -0700
From: "Daniel Mendyke" <address@hidden>

I'm running windows XP with Gnu make 3.8.1

    C:\tmp$ make --version
    GNU Make 3.81
    Copyright (C) 2006  Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.
    There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
    PARTICULAR PURPOSE.

    This program built for i686-pc-mingw32

    C:\tmp$

Same here, almost:

   GNU Make 3.81
   Copyright (C) 2006  Free Software Foundation, Inc.
   This is free software; see the source for copying conditions.
   There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
   PARTICULAR PURPOSE.

   This program built for Windows32

Where did you get the binary of Make?  I built mine myself from the
sources, using the build_w32.bat batch file and the MinGW GCC
compiler.

If my Makefile contains quoted values it ends with an error message,
if I remove the quotes the Makefile builds correctly.  The following
examples illustrate the problem.  Note that 'main.cc' is an error-free
C++ source file in 'c:\tmp'.

Example #1: ---------------------------------

    C:\tmp$ cat Makefile

    test:   main.cc
            g++ -o sample main.cc  -I"c:\tmp"

    C:\tmp$ make
    g++ -o sample main.cc  -I"c:\tmp"
    g++: main.cc: No such file or directory
    g++: no input files
    make: *** [test] Error 1

I cannot reproduce this with my copy of Make 3.81: it works correctly
both with and without the quotes.

How about if you build Make yourself, like I did, and see if that
makes the problem go away?


I don't think that will help. I think it is the shell clobbering the command line. So we need to know if sh.exe exists. I don't understand why main.cc isn't being found. It is as if g++ is not getting any arguments. This has to be a shell issue.

Can anyone suggest reasons why make is failing?

Some snafu in quoting the quote characters when g++ is invoked via
CreateProcess, I presume.  But since it works for me, I cannot even
try debugging it.


I'm wondering what sh.exe might be on PATH? Perhaps it is the quoting the shell is doing subsequent to the CreateProcess.

Is it possible that you are using the MSYS port of Make?  If so,
don't: it is not intended to be used except for MSYS work.


From above: This program built for i686-pc-mingw32

This isn't the MSYS version of make. My tests show that native make works within the MSYS shell except for interrupting the child processes. And if you're having an issue with MSYS you need to ask the address@hidden list.

Earnie




reply via email to

[Prev in Thread] Current Thread [Next in Thread]