This is the mail archive of the
mailing list for the Cygwin project.
Re: Why are Windows paths broken in make 3.81?
On 7/21/06, mwoehlke <email@example.com> wrote:
Michael Hirsch wrote:
> Here is a sample Makefile that breaks with Gnu Make 3.81-1 under
> Cygwin, but works fine with Gnu Make 3.80-1. We have been writing
> these types of Makefiles for years, using both Windows and Cygwin
> tools, and this is the first time Make has ever broken like this.
> I see in another thread that this is a known issue, though I don't see
> it in the changelogs for make 3.81.
> Was this a deliberate break with backwards compatibility? It means
> that every single reference to a windows path needs to be wrapped in
> cygpath, which is a huge inconvenience.
Yes. See <http://cygwin.com/ml/cygwin-announce/2006-07/msg00008.html>.
If you are using a POSIX-like "OS" (i.e. Cygwin), you should be using
POSIX paths. That's not an inconvenience, that's called writing a bad
makefile. If you aren't using Cygwin for the POSIX environment, you
should be using MinGW.
I see. Unfortunately, I am trying to use cygwin to make my life
easier on Windows, but I am still constrained to use windows programs.
Many of them cannot use the cygwin paths, but require a path like
"c:/my/path.exe". It will be very difficult to switch back and forth
between path representations. I guess I do need to look into MinGW.
> Is it broken only on Windows?
That sounds like a silly question... 'are Windows paths only broken on
It sounds like a silly question, but it isn't. I tested, and yes, if
you have a directory named "c:" in Linux, make is broken on that
directory, too. Since "c:" is a valid name in Linux (and POSIX, I
believe) I consider that a bug in make. I'll have to report that to
GNU, as it is not a cygwin issue. The error message on Linux is just
as incomprehensible as it is Cygwin, too, so at least I know who to
talk to about it.
> Is this a cywin only bug? What possible reason could there be to
> introduce this deliberately?
No, as it is not a "bug". However it is specific to Cygwin. See the
aforementioned announcement. CGF would have to speak to "why" (and I
would appreciate if he would, just because I am curious :-)), but I
would guess it is to "encourage" people to use correct (i.e. POSIX) paths.
I guess that was the reason. How disappointing. I always thought
that cygwin provided a great service by allowing me to use both
windows and posix paths. I'll miss that capability a lot.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html