This is the mail archive of the
mailing list for the Cygwin project.
Re: Why are Windows paths broken in make 3.81?
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.
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
I would dispute the contention that this change is "not an inconvenience".
It is a major inconvenience and the problems are not just due to "writing a
If one was just dealing with a bunch of small makefiles that one has
"written" or could easily re-write it wouldn't be a big deal.
Unfortunately, many of us deal with huge cross-platform 3rd-party makefile
collections that are partially auto-generated, sometimes even on-the-fly,
i.e. commands in one makefile generate (portions of) other makefiles using
tools like sed and invoking many subsidiary tools like IDL compilers and
various pre-processors in the process.
I just had to deal with such a messy system and the new Cygwin make doesn't
work. Even though this collection of makefiles was initially written on a
POSIX system it still got into trouble with DOS paths because some of the
tools it calls to generate makefiles return platform-specific paths. So
this works fine on a POSIX system, worked fine on Win2000 with the old
make, but now I had to understand complicated sed programs to add extra
platform-specific sed transformations to convert paths returned by other
cross-platform tools to something the new make accepts.
There was also some difference in newline handling which required another
set of sed changes, arghh!
All of this was definitely inconvenient! And it was not caused by somebody
putting non-POSIX paths in a makefile.
Of course, after fixing all this it still doesn't work, as mentioned in
another post, make crashes with threadlist_ix -1, so I still have to go
back to the older version, even after all the work. :-(
work: email@example.com (http://www.netacquire.com)
private: firstname.lastname@example.org (http://www.kraut.ca)
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html