The version of `depcomp' supplied with sh-utils-2.0j does not work
correctly for DOS/Windows-style file names.  The following Sed script
breaks if .deps/*.Tpo files include absolute file names with drive
letters:

 sed 's/^[^:]*: / /' < "$tmpdepfile" >> "$depfile"

This happens because on DOS/Windows, "gcc -MD" produces the following
in, e.g., sh-utils-2.0j/lib/.deps/addext.Tpo:

  e:/src/gnu/sh-utils-2.0j/lib/addext.o: \
  e:/src/gnu/sh-utils-2.0j/lib/addext.c ../config.h \
  e:/src/gnu/sh-utils-2.0j/lib/backupfile.h c:/usr/gcc/include/limits.h \
  c:/usr/gcc/include/sys/types.h c:/usr/gcc/include/sys/djtypes.h \
  c:/usr/gcc/include/string.h c:/usr/gcc/include/sys/movedata.h \
  c:/usr/gcc/include/unistd.h

The first line above is supposed to be removed by the Sed script, but
that fails because the file name includes a colon.

The patch to depcomp which fixes this is below.  It assumes that
\{m,n\} is supported by all versions of Sed.

2000-08-11  Eli Zaretskii  <[EMAIL PROTECTED]>

        * depcomp (gcc): Support DOS-style absolute file names with drive
        letters.

--- depcomp.~0  Mon Oct  4 07:56:46 1999
+++ depcomp     Thu Aug 10 20:49:02 2000
@@ -65,7 +65,7 @@
   fi
   rm -f "$depfile" 
   echo "$object : \\" > "$depfile"
-  sed 's/^[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+  sed 's/^\([A-Za-z]:\/\)\{0,1\}[^:]*: / /' < "$tmpdepfile" >> "$depfile"
 ## This next piece of magic avoids the `deleted header file' problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is

Reply via email to