Re: VPATH of the form C:/foo
Benoit Sigoure <[email protected]>
| Newsgroups | gmane.comp.gnu.make.windows |
|---|---|
| Message-ID | <[email protected]> |
On Dec 2, 2007, at 3:37 AM, Christopher Faylor wrote: > On Thu, Nov 29, 2007 at 11:36:45PM +0100, Benoit Sigoure wrote: >> On Nov 29, 2007, at 10:30 PM, Eli Zaretskii wrote: >> >>>> From: Benoit Sigoure >>>> Date: Thu, 29 Nov 2007 22:12:52 +0100 >>>> >>>> build@bf-winxp1 ~ $ make -p VPATH=C:/cygwin | grep -A2 -i vpath >>>> [...] >>>> -- >>>> # VPATH Search Paths >>>> >>>> # No `vpath' search paths. >>>> >>>> # No general (`VPATH' variable) search path. >>> >>> Ah, I see the problem: the native Windows port (which is what I >>> have) >>> converts all `:' that are not part of drive letter spec to `;' (by >>> calling convert_vpath_to_windows32), and then Make parses that using >>> `;' as PATH_SEPARATOR_CHAR, which makes "C:/foo:D:/bar" work. >>> But in >>> the Cygwin build, convert_vpath_to_windows32 is not called and >>> PATH_SEPARATOR_CHAR is `:', so this does not work. >>> >>> I will try to post an experimental patch soon. Thanks for pointing >>> out this problem. >> >> Thank you very much, I'm eager to see the patch ;) > > This does raise the question of why you'd be using a cygwin version of > make if you need to use colon paths. Good question. The VPATH variable is set by a script that calls `make'. This variable is also used to invoke native Windows tools, so it's more convenient to use the C:/Foo/Bar notation, which has the advantage of working with both native applications and Cygwin ones (while being nice with the shell by avoiding backslashes). -- Benoit Sigoure aka Tsuna EPITA Research and Development Laboratory