autoupdate
[gnulib.git] / build-aux / depcomp
1 #! /bin/sh
2 # depcomp - compile a program generating dependencies as side-effects
3
4 scriptversion=2012-02-03.15; # UTC
5
6 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
7
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
11 # any later version.
12
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
27
28 case $1 in
29   '')
30      echo "$0: No command.  Try '$0 --help' for more information." 1>&2
31      exit 1;
32      ;;
33   -h | --h*)
34     cat <<\EOF
35 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
36
37 Run PROGRAMS ARGS to compile a file, generating dependencies
38 as side-effects.
39
40 Environment variables:
41   depmode     Dependency tracking mode.
42   source      Source file read by 'PROGRAMS ARGS'.
43   object      Object file output by 'PROGRAMS ARGS'.
44   DEPDIR      directory where to store dependencies.
45   depfile     Dependency file to output.
46   tmpdepfile  Temporary file to use when outputting dependencies.
47   libtool     Whether libtool is used (yes/no).
48
49 Report bugs to <bug-automake@gnu.org>.
50 EOF
51     exit $?
52     ;;
53   -v | --v*)
54     echo "depcomp $scriptversion"
55     exit $?
56     ;;
57 esac
58
59 # A tabulation character.
60 tab='   '
61 # A newline character.
62 nl='
63 '
64
65 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
66   echo "depcomp: Variables source, object and depmode must be set" 1>&2
67   exit 1
68 fi
69
70 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
71 depfile=${depfile-`echo "$object" |
72   sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
73 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
74
75 rm -f "$tmpdepfile"
76
77 # Some modes work just like other modes, but use different flags.  We
78 # parameterize here, but still list the modes in the big case below,
79 # to make depend.m4 easier to write.  Note that we *cannot* use a case
80 # here, because this file can only contain one case statement.
81 if test "$depmode" = hp; then
82   # HP compiler uses -M and no extra arg.
83   gccflag=-M
84   depmode=gcc
85 fi
86
87 if test "$depmode" = dashXmstdout; then
88    # This is just like dashmstdout with a different argument.
89    dashmflag=-xM
90    depmode=dashmstdout
91 fi
92
93 cygpath_u="cygpath -u -f -"
94 if test "$depmode" = msvcmsys; then
95    # This is just like msvisualcpp but w/o cygpath translation.
96    # Just convert the backslash-escaped backslashes to single forward
97    # slashes to satisfy depend.m4
98    cygpath_u='sed s,\\\\,/,g'
99    depmode=msvisualcpp
100 fi
101
102 if test "$depmode" = msvc7msys; then
103    # This is just like msvc7 but w/o cygpath translation.
104    # Just convert the backslash-escaped backslashes to single forward
105    # slashes to satisfy depend.m4
106    cygpath_u='sed s,\\\\,/,g'
107    depmode=msvc7
108 fi
109
110 case "$depmode" in
111 gcc3)
112 ## gcc 3 implements dependency tracking that does exactly what
113 ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
114 ## it if -MD -MP comes after the -MF stuff.  Hmm.
115 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
116 ## the command line argument order; so add the flags where they
117 ## appear in depend2.am.  Note that the slowdown incurred here
118 ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
119   for arg
120   do
121     case $arg in
122     -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
123     *)  set fnord "$@" "$arg" ;;
124     esac
125     shift # fnord
126     shift # $arg
127   done
128   "$@"
129   stat=$?
130   if test $stat -eq 0; then :
131   else
132     rm -f "$tmpdepfile"
133     exit $stat
134   fi
135   mv "$tmpdepfile" "$depfile"
136   ;;
137
138 gcc)
139 ## There are various ways to get dependency output from gcc.  Here's
140 ## why we pick this rather obscure method:
141 ## - Don't want to use -MD because we'd like the dependencies to end
142 ##   up in a subdir.  Having to rename by hand is ugly.
143 ##   (We might end up doing this anyway to support other compilers.)
144 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
145 ##   -MM, not -M (despite what the docs say).
146 ## - Using -M directly means running the compiler twice (even worse
147 ##   than renaming).
148   if test -z "$gccflag"; then
149     gccflag=-MD,
150   fi
151   "$@" -Wp,"$gccflag$tmpdepfile"
152   stat=$?
153   if test $stat -eq 0; then :
154   else
155     rm -f "$tmpdepfile"
156     exit $stat
157   fi
158   rm -f "$depfile"
159   echo "$object : \\" > "$depfile"
160   alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
161 ## The second -e expression handles DOS-style file names with drive letters.
162   sed -e 's/^[^:]*: / /' \
163       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
164 ## This next piece of magic avoids the "deleted header file" problem.
165 ## The problem is that when a header file which appears in a .P file
166 ## is deleted, the dependency causes make to die (because there is
167 ## typically no way to rebuild the header).  We avoid this by adding
168 ## dummy dependencies for each header file.  Too bad gcc doesn't do
169 ## this for us directly.
170   tr ' ' "$nl" < "$tmpdepfile" |
171 ## Some versions of gcc put a space before the ':'.  On the theory
172 ## that the space means something, we add a space to the output as
173 ## well.  hp depmode also adds that space, but also prefixes the VPATH
174 ## to the object.  Take care to not repeat it in the output.
175 ## Some versions of the HPUX 10.20 sed can't process this invocation
176 ## correctly.  Breaking it into two sed invocations is a workaround.
177     sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
178       | sed -e 's/$/ :/' >> "$depfile"
179   rm -f "$tmpdepfile"
180   ;;
181
182 hp)
183   # This case exists only to let depend.m4 do its work.  It works by
184   # looking at the text of this script.  This case will never be run,
185   # since it is checked for above.
186   exit 1
187   ;;
188
189 sgi)
190   if test "$libtool" = yes; then
191     "$@" "-Wp,-MDupdate,$tmpdepfile"
192   else
193     "$@" -MDupdate "$tmpdepfile"
194   fi
195   stat=$?
196   if test $stat -eq 0; then :
197   else
198     rm -f "$tmpdepfile"
199     exit $stat
200   fi
201   rm -f "$depfile"
202
203   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
204     echo "$object : \\" > "$depfile"
205
206     # Clip off the initial element (the dependent).  Don't try to be
207     # clever and replace this with sed code, as IRIX sed won't handle
208     # lines with more than a fixed number of characters (4096 in
209     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
210     # the IRIX cc adds comments like '#:fec' to the end of the
211     # dependency line.
212     tr ' ' "$nl" < "$tmpdepfile" \
213     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
214     tr "$nl" ' ' >> "$depfile"
215     echo >> "$depfile"
216
217     # The second pass generates a dummy entry for each header file.
218     tr ' ' "$nl" < "$tmpdepfile" \
219    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
220    >> "$depfile"
221   else
222     # The sourcefile does not contain any dependencies, so just
223     # store a dummy comment line, to avoid errors with the Makefile
224     # "include basename.Plo" scheme.
225     echo "#dummy" > "$depfile"
226   fi
227   rm -f "$tmpdepfile"
228   ;;
229
230 aix)
231   # The C for AIX Compiler uses -M and outputs the dependencies
232   # in a .u file.  In older versions, this file always lives in the
233   # current directory.  Also, the AIX compiler puts '$object:' at the
234   # start of each line; $object doesn't have directory information.
235   # Version 6 uses the directory in both cases.
236   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
237   test "x$dir" = "x$object" && dir=
238   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
239   if test "$libtool" = yes; then
240     tmpdepfile1=$dir$base.u
241     tmpdepfile2=$base.u
242     tmpdepfile3=$dir.libs/$base.u
243     "$@" -Wc,-M
244   else
245     tmpdepfile1=$dir$base.u
246     tmpdepfile2=$dir$base.u
247     tmpdepfile3=$dir$base.u
248     "$@" -M
249   fi
250   stat=$?
251
252   if test $stat -eq 0; then :
253   else
254     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
255     exit $stat
256   fi
257
258   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
259   do
260     test -f "$tmpdepfile" && break
261   done
262   if test -f "$tmpdepfile"; then
263     # Each line is of the form 'foo.o: dependent.h'.
264     # Do two passes, one to just change these to
265     # '$object: dependent.h' and one to simply 'dependent.h:'.
266     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
267     sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
268   else
269     # The sourcefile does not contain any dependencies, so just
270     # store a dummy comment line, to avoid errors with the Makefile
271     # "include basename.Plo" scheme.
272     echo "#dummy" > "$depfile"
273   fi
274   rm -f "$tmpdepfile"
275   ;;
276
277 icc)
278   # Intel's C compiler understands '-MD -MF file'.  However on
279   #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
280   # ICC 7.0 will fill foo.d with something like
281   #    foo.o: sub/foo.c
282   #    foo.o: sub/foo.h
283   # which is wrong.  We want:
284   #    sub/foo.o: sub/foo.c
285   #    sub/foo.o: sub/foo.h
286   #    sub/foo.c:
287   #    sub/foo.h:
288   # ICC 7.1 will output
289   #    foo.o: sub/foo.c sub/foo.h
290   # and will wrap long lines using \ :
291   #    foo.o: sub/foo.c ... \
292   #     sub/foo.h ... \
293   #     ...
294
295   "$@" -MD -MF "$tmpdepfile"
296   stat=$?
297   if test $stat -eq 0; then :
298   else
299     rm -f "$tmpdepfile"
300     exit $stat
301   fi
302   rm -f "$depfile"
303   # Each line is of the form 'foo.o: dependent.h',
304   # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
305   # Do two passes, one to just change these to
306   # '$object: dependent.h' and one to simply 'dependent.h:'.
307   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
308   # Some versions of the HPUX 10.20 sed can't process this invocation
309   # correctly.  Breaking it into two sed invocations is a workaround.
310   sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
311     sed -e 's/$/ :/' >> "$depfile"
312   rm -f "$tmpdepfile"
313   ;;
314
315 hp2)
316   # The "hp" stanza above does not work with aCC (C++) and HP's ia64
317   # compilers, which have integrated preprocessors.  The correct option
318   # to use with these is +Maked; it writes dependencies to a file named
319   # 'foo.d', which lands next to the object file, wherever that
320   # happens to be.
321   # Much of this is similar to the tru64 case; see comments there.
322   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
323   test "x$dir" = "x$object" && dir=
324   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
325   if test "$libtool" = yes; then
326     tmpdepfile1=$dir$base.d
327     tmpdepfile2=$dir.libs/$base.d
328     "$@" -Wc,+Maked
329   else
330     tmpdepfile1=$dir$base.d
331     tmpdepfile2=$dir$base.d
332     "$@" +Maked
333   fi
334   stat=$?
335   if test $stat -eq 0; then :
336   else
337      rm -f "$tmpdepfile1" "$tmpdepfile2"
338      exit $stat
339   fi
340
341   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
342   do
343     test -f "$tmpdepfile" && break
344   done
345   if test -f "$tmpdepfile"; then
346     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
347     # Add 'dependent.h:' lines.
348     sed -ne '2,${
349                s/^ *//
350                s/ \\*$//
351                s/$/:/
352                p
353              }' "$tmpdepfile" >> "$depfile"
354   else
355     echo "#dummy" > "$depfile"
356   fi
357   rm -f "$tmpdepfile" "$tmpdepfile2"
358   ;;
359
360 tru64)
361    # The Tru64 compiler uses -MD to generate dependencies as a side
362    # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
363    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
364    # dependencies in 'foo.d' instead, so we check for that too.
365    # Subdirectories are respected.
366    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
367    test "x$dir" = "x$object" && dir=
368    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
369
370    if test "$libtool" = yes; then
371       # With Tru64 cc, shared objects can also be used to make a
372       # static library.  This mechanism is used in libtool 1.4 series to
373       # handle both shared and static libraries in a single compilation.
374       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
375       #
376       # With libtool 1.5 this exception was removed, and libtool now
377       # generates 2 separate objects for the 2 libraries.  These two
378       # compilations output dependencies in $dir.libs/$base.o.d and
379       # in $dir$base.o.d.  We have to check for both files, because
380       # one of the two compilations can be disabled.  We should prefer
381       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
382       # automatically cleaned when .libs/ is deleted, while ignoring
383       # the former would cause a distcleancheck panic.
384       tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
385       tmpdepfile2=$dir$base.o.d          # libtool 1.5
386       tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
387       tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
388       "$@" -Wc,-MD
389    else
390       tmpdepfile1=$dir$base.o.d
391       tmpdepfile2=$dir$base.d
392       tmpdepfile3=$dir$base.d
393       tmpdepfile4=$dir$base.d
394       "$@" -MD
395    fi
396
397    stat=$?
398    if test $stat -eq 0; then :
399    else
400       rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
401       exit $stat
402    fi
403
404    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
405    do
406      test -f "$tmpdepfile" && break
407    done
408    if test -f "$tmpdepfile"; then
409       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
410       sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
411    else
412       echo "#dummy" > "$depfile"
413    fi
414    rm -f "$tmpdepfile"
415    ;;
416
417 msvc7)
418   if test "$libtool" = yes; then
419     showIncludes=-Wc,-showIncludes
420   else
421     showIncludes=-showIncludes
422   fi
423   "$@" $showIncludes > "$tmpdepfile"
424   stat=$?
425   grep -v '^Note: including file: ' "$tmpdepfile"
426   if test "$stat" = 0; then :
427   else
428     rm -f "$tmpdepfile"
429     exit $stat
430   fi
431   rm -f "$depfile"
432   echo "$object : \\" > "$depfile"
433   # The first sed program below extracts the file names and escapes
434   # backslashes for cygpath.  The second sed program outputs the file
435   # name when reading, but also accumulates all include files in the
436   # hold buffer in order to output them again at the end.  This only
437   # works with sed implementations that can handle large buffers.
438   sed < "$tmpdepfile" -n '
439 /^Note: including file:  *\(.*\)/ {
440   s//\1/
441   s/\\/\\\\/g
442   p
443 }' | $cygpath_u | sort -u | sed -n '
444 s/ /\\ /g
445 s/\(.*\)/'"$tab"'\1 \\/p
446 s/.\(.*\) \\/\1:/
447 H
448 $ {
449   s/.*/'"$tab"'/
450   G
451   p
452 }' >> "$depfile"
453   rm -f "$tmpdepfile"
454   ;;
455
456 msvc7msys)
457   # This case exists only to let depend.m4 do its work.  It works by
458   # looking at the text of this script.  This case will never be run,
459   # since it is checked for above.
460   exit 1
461   ;;
462
463 #nosideeffect)
464   # This comment above is used by automake to tell side-effect
465   # dependency tracking mechanisms from slower ones.
466
467 dashmstdout)
468   # Important note: in order to support this mode, a compiler *must*
469   # always write the preprocessed file to stdout, regardless of -o.
470   "$@" || exit $?
471
472   # Remove the call to Libtool.
473   if test "$libtool" = yes; then
474     while test "X$1" != 'X--mode=compile'; do
475       shift
476     done
477     shift
478   fi
479
480   # Remove '-o $object'.
481   IFS=" "
482   for arg
483   do
484     case $arg in
485     -o)
486       shift
487       ;;
488     $object)
489       shift
490       ;;
491     *)
492       set fnord "$@" "$arg"
493       shift # fnord
494       shift # $arg
495       ;;
496     esac
497   done
498
499   test -z "$dashmflag" && dashmflag=-M
500   # Require at least two characters before searching for ':'
501   # in the target name.  This is to cope with DOS-style filenames:
502   # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
503   "$@" $dashmflag |
504     sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
505   rm -f "$depfile"
506   cat < "$tmpdepfile" > "$depfile"
507   tr ' ' "$nl" < "$tmpdepfile" | \
508 ## Some versions of the HPUX 10.20 sed can't process this invocation
509 ## correctly.  Breaking it into two sed invocations is a workaround.
510     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
511   rm -f "$tmpdepfile"
512   ;;
513
514 dashXmstdout)
515   # This case only exists to satisfy depend.m4.  It is never actually
516   # run, as this mode is specially recognized in the preamble.
517   exit 1
518   ;;
519
520 makedepend)
521   "$@" || exit $?
522   # Remove any Libtool call
523   if test "$libtool" = yes; then
524     while test "X$1" != 'X--mode=compile'; do
525       shift
526     done
527     shift
528   fi
529   # X makedepend
530   shift
531   cleared=no eat=no
532   for arg
533   do
534     case $cleared in
535     no)
536       set ""; shift
537       cleared=yes ;;
538     esac
539     if test $eat = yes; then
540       eat=no
541       continue
542     fi
543     case "$arg" in
544     -D*|-I*)
545       set fnord "$@" "$arg"; shift ;;
546     # Strip any option that makedepend may not understand.  Remove
547     # the object too, otherwise makedepend will parse it as a source file.
548     -arch)
549       eat=yes ;;
550     -*|$object)
551       ;;
552     *)
553       set fnord "$@" "$arg"; shift ;;
554     esac
555   done
556   obj_suffix=`echo "$object" | sed 's/^.*\././'`
557   touch "$tmpdepfile"
558   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
559   rm -f "$depfile"
560   # makedepend may prepend the VPATH from the source file name to the object.
561   # No need to regex-escape $object, excess matching of '.' is harmless.
562   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
563   sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
564 ## Some versions of the HPUX 10.20 sed can't process this invocation
565 ## correctly.  Breaking it into two sed invocations is a workaround.
566     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
567   rm -f "$tmpdepfile" "$tmpdepfile".bak
568   ;;
569
570 cpp)
571   # Important note: in order to support this mode, a compiler *must*
572   # always write the preprocessed file to stdout.
573   "$@" || exit $?
574
575   # Remove the call to Libtool.
576   if test "$libtool" = yes; then
577     while test "X$1" != 'X--mode=compile'; do
578       shift
579     done
580     shift
581   fi
582
583   # Remove '-o $object'.
584   IFS=" "
585   for arg
586   do
587     case $arg in
588     -o)
589       shift
590       ;;
591     $object)
592       shift
593       ;;
594     *)
595       set fnord "$@" "$arg"
596       shift # fnord
597       shift # $arg
598       ;;
599     esac
600   done
601
602   "$@" -E |
603     sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
604        -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
605     sed '$ s: \\$::' > "$tmpdepfile"
606   rm -f "$depfile"
607   echo "$object : \\" > "$depfile"
608   cat < "$tmpdepfile" >> "$depfile"
609   sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
610   rm -f "$tmpdepfile"
611   ;;
612
613 msvisualcpp)
614   # Important note: in order to support this mode, a compiler *must*
615   # always write the preprocessed file to stdout.
616   "$@" || exit $?
617
618   # Remove the call to Libtool.
619   if test "$libtool" = yes; then
620     while test "X$1" != 'X--mode=compile'; do
621       shift
622     done
623     shift
624   fi
625
626   IFS=" "
627   for arg
628   do
629     case "$arg" in
630     -o)
631       shift
632       ;;
633     $object)
634       shift
635       ;;
636     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
637         set fnord "$@"
638         shift
639         shift
640         ;;
641     *)
642         set fnord "$@" "$arg"
643         shift
644         shift
645         ;;
646     esac
647   done
648   "$@" -E 2>/dev/null |
649   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
650   rm -f "$depfile"
651   echo "$object : \\" > "$depfile"
652   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
653   echo "$tab" >> "$depfile"
654   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
655   rm -f "$tmpdepfile"
656   ;;
657
658 msvcmsys)
659   # This case exists only to let depend.m4 do its work.  It works by
660   # looking at the text of this script.  This case will never be run,
661   # since it is checked for above.
662   exit 1
663   ;;
664
665 none)
666   exec "$@"
667   ;;
668
669 *)
670   echo "Unknown depmode $depmode" 1>&2
671   exit 1
672   ;;
673 esac
674
675 exit 0
676
677 # Local Variables:
678 # mode: shell-script
679 # sh-indentation: 2
680 # eval: (add-hook 'write-file-hooks 'time-stamp)
681 # time-stamp-start: "scriptversion="
682 # time-stamp-format: "%:y-%02m-%02d.%02H"
683 # time-stamp-time-zone: "UTC"
684 # time-stamp-end: "; # UTC"
685 # End: