Subject: RE: Cygpath, backslashes, and sh.exe
From: Scott Carter <[email-masked]>
To: "[email-masked]'" <[email-masked]>
Cc: "'Chad Loder'" <[email-masked]>
Date: Tue, 3 Oct 2000 20:26:41 -0600

I don't know if you tried to use it this way, or if you just typed it
incorrectly in your email, but the syntax of the subst function is
incorrect. There should not be a comma immediately after subst.

wrong: $(subst,\\,\\\\,$(shell cygpath -w $<))
right: $(subst \\,\\\\,$(shell cygpath -w $<))

Scott Carter

-----Original Message-----
From: Chad Loder [mailto:[email-masked]]
Sent: Tuesday, October 03, 2000 06:55 PM
To: [email-masked]
Subject: Cygpath, backslashes, and sh.exe

Hi all. Thanks for your help with cygpath (I *did* look in 
the FAQ, I just didn't know what to look for). :)

cygpath *seems* to be doing the right thing (it's hard
to tell), but there is some sort of problem with
backslashes. I have a rule like this:

%.obj : %.cpp
	$(CC) $(CPPFLAGS) $(shell cygpath -w $<)

The idea is that this will invoke sh.exe with something like:

 /c/VC98/bin/cl.exe /Fo:globref.obj c:\r7\jni\src\globref.cpp

But instead it seems to do:

 /c/VC98/bin/cl.exe /Fo:globref.obj c:r7jnisrcglobref.cpp

which causes the compiler to bomb out with:

 fatal error C1083: Cannot open source file: 'c:r7jnisrcglobref.cpp': No
such file or  directory

I figured I need to escape the backslashes before passing them
to a shell command. So I tried things like:

%.obj : %.cpp
	$(CC) $(CPPFLAGS) $(subst,\\,\\\\,$(shell cygpath -w $<))

but the subst function seems to just return an empty string (this
happens even when I use something without backslashes,
like $(subst,a,b,whatever).

Has anyone run into this?

Thanks,
	c

	c

At 05:50 PM 10/3/2000 -0500, you wrote:
>Chad:
>
>    Hey, no problem.  Let me know if you run into other problems.  My
>company uses it's own make system under cygwin as well.  We also use Visual
>C++ as the compiler.
>
>cheers,
>-Matt

--
Want to unsubscribe from this list?
Send a message to [email-masked]