make-w32
[Top][All Lists]
Advanced

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

Re: Problem with escaped parens


From: Paul Smith
Subject: Re: Problem with escaped parens
Date: Tue, 28 Nov 2006 22:02:11 -0500

On Tue, 2006-11-28 at 22:25 +0200, Eli Zaretskii wrote:
> > Date: Tue, 28 Nov 2006 15:24:38 +0000
> > From: Jon Grant <address@hidden>
> > 
> > I'm running 3.81beta4 and 3.80 on Kubuntu 6.06 Linux x86 and see this
> > parenthesis problem with the attached test Makefile too.
> > 
> > $ make -f Makefile_parenthesis_test
> > make: *** No rule to make target `Program Files/\(x86\)/test.c', needed
> > by `all'. Stop.

> And I see the same on a Debian box with the released Make 3.81.
> 
> So this is a general problem, not something related to the drive
> letter patch, nor something special to the Cygwin port in general.
> 
> Paul, can you please comment on this?  I think the parens are treated
> specially because of the support for archive members, but perhaps I'm
> mistaken.

The problem is you guys are all quoting the parentheses.  Why are you
doing that?  Parentheses are not special characters for GNU make (unless
they come after a $ of course) and so there's no need to escape them (on
UNIX anyway).  I tried:

$ cd /tmp
$ touch 'foo(bar)baz.c'
$ echo 'all: foo(bar)baz.c; @echo "$<"' | make -f-
foo(bar)baz.c

Worked fine.  If you quote the parentheses with backslashes then make
looks for the pathname containing the literal backslashes, which of
course does not exist.

It's possible that Windows has other requirements that I'm not aware of.

I should also point out that escaping spaces with backslashes is not
universally excepted in GNU make.  Except in very limited circumstances
it's simply not possible to work with pathnames containing whitespace in
GNU make.




reply via email to

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