1251883Speter#! /bin/sh
2251883Speter# depcomp - compile a program generating dependencies as side-effects
3251883Speter
4251883Speterscriptversion=2005-07-09.11
5251883Speter
6251883Speter# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
7251883Speter
8251883Speter# This program is free software; you can redistribute it and/or modify
9251883Speter# it under the terms of the GNU General Public License as published by
10251883Speter# the Free Software Foundation; either version 2, or (at your option)
11251883Speter# any later version.
12251883Speter
13251883Speter# This program is distributed in the hope that it will be useful,
14251883Speter# but WITHOUT ANY WARRANTY; without even the implied warranty of
15251883Speter# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16251883Speter# GNU General Public License for more details.
17251883Speter
18251883Speter# You should have received a copy of the GNU General Public License
19251883Speter# along with this program; if not, write to the Free Software
20251883Speter# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21251883Speter# 02110-1301, USA.
22251883Speter
23251883Speter# As a special exception to the GNU General Public License, if you
24251883Speter# distribute this file as part of a program that contains a
25251883Speter# configuration script generated by Autoconf, you may include it under
26251883Speter# the same distribution terms that you use for the rest of that program.
27251883Speter
28251883Speter# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
29251883Speter
30251883Spetercase $1 in
31251883Speter  '')
32251883Speter     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
33251883Speter     exit 1;
34251883Speter     ;;
35251883Speter  -h | --h*)
36251883Speter    cat <<\EOF
37251883SpeterUsage: depcomp [--help] [--version] PROGRAM [ARGS]
38251883Speter
39251883SpeterRun PROGRAMS ARGS to compile a file, generating dependencies
40251883Speteras side-effects.
41251883Speter
42251883SpeterEnvironment variables:
43251883Speter  depmode     Dependency tracking mode.
44251883Speter  source      Source file read by `PROGRAMS ARGS'.
45251883Speter  object      Object file output by `PROGRAMS ARGS'.
46251883Speter  DEPDIR      directory where to store dependencies.
47251883Speter  depfile     Dependency file to output.
48251883Speter  tmpdepfile  Temporary file to use when outputing dependencies.
49251883Speter  libtool     Whether libtool is used (yes/no).
50251883Speter
51251883SpeterReport bugs to <bug-automake@gnu.org>.
52251883SpeterEOF
53251883Speter    exit $?
54251883Speter    ;;
55251883Speter  -v | --v*)
56251883Speter    echo "depcomp $scriptversion"
57251883Speter    exit $?
58251883Speter    ;;
59251883Speteresac
60251883Speter
61251883Speterif test -z "$depmode" || test -z "$source" || test -z "$object"; then
62251883Speter  echo "depcomp: Variables source, object and depmode must be set" 1>&2
63251883Speter  exit 1
64251883Speterfi
65251883Speter
66251883Speter# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
67251883Speterdepfile=${depfile-`echo "$object" |
68251883Speter  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
69251883Spetertmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
70251883Speter
71251883Speterrm -f "$tmpdepfile"
72251883Speter
73251883Speter# Some modes work just like other modes, but use different flags.  We
74251883Speter# parameterize here, but still list the modes in the big case below,
75251883Speter# to make depend.m4 easier to write.  Note that we *cannot* use a case
76251883Speter# here, because this file can only contain one case statement.
77251883Speterif test "$depmode" = hp; then
78251883Speter  # HP compiler uses -M and no extra arg.
79251883Speter  gccflag=-M
80251883Speter  depmode=gcc
81251883Speterfi
82251883Speter
83251883Speterif test "$depmode" = dashXmstdout; then
84251883Speter   # This is just like dashmstdout with a different argument.
85251883Speter   dashmflag=-xM
86251883Speter   depmode=dashmstdout
87251883Speterfi
88251883Speter
89251883Spetercase "$depmode" in
90251883Spetergcc3)
91251883Speter## gcc 3 implements dependency tracking that does exactly what
92251883Speter## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
93251883Speter## it if -MD -MP comes after the -MF stuff.  Hmm.
94251883Speter  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
95251883Speter  stat=$?
96251883Speter  if test $stat -eq 0; then :
97251883Speter  else
98251883Speter    rm -f "$tmpdepfile"
99251883Speter    exit $stat
100251883Speter  fi
101251883Speter  mv "$tmpdepfile" "$depfile"
102251883Speter  ;;
103251883Speter
104251883Spetergcc)
105251883Speter## There are various ways to get dependency output from gcc.  Here's
106251883Speter## why we pick this rather obscure method:
107251883Speter## - Don't want to use -MD because we'd like the dependencies to end
108251883Speter##   up in a subdir.  Having to rename by hand is ugly.
109251883Speter##   (We might end up doing this anyway to support other compilers.)
110251883Speter## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
111251883Speter##   -MM, not -M (despite what the docs say).
112251883Speter## - Using -M directly means running the compiler twice (even worse
113251883Speter##   than renaming).
114251883Speter  if test -z "$gccflag"; then
115251883Speter    gccflag=-MD,
116251883Speter  fi
117251883Speter  "$@" -Wp,"$gccflag$tmpdepfile"
118251883Speter  stat=$?
119251883Speter  if test $stat -eq 0; then :
120251883Speter  else
121251883Speter    rm -f "$tmpdepfile"
122251883Speter    exit $stat
123251883Speter  fi
124251883Speter  rm -f "$depfile"
125251883Speter  echo "$object : \\" > "$depfile"
126251883Speter  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
127251883Speter## The second -e expression handles DOS-style file names with drive letters.
128251883Speter  sed -e 's/^[^:]*: / /' \
129251883Speter      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
130251883Speter## This next piece of magic avoids the `deleted header file' problem.
131251883Speter## The problem is that when a header file which appears in a .P file
132251883Speter## is deleted, the dependency causes make to die (because there is
133251883Speter## typically no way to rebuild the header).  We avoid this by adding
134251883Speter## dummy dependencies for each header file.  Too bad gcc doesn't do
135251883Speter## this for us directly.
136251883Speter  tr ' ' '
137251883Speter' < "$tmpdepfile" |
138251883Speter## Some versions of gcc put a space before the `:'.  On the theory
139251883Speter## that the space means something, we add a space to the output as
140251883Speter## well.
141251883Speter## Some versions of the HPUX 10.20 sed can't process this invocation
142251883Speter## correctly.  Breaking it into two sed invocations is a workaround.
143251883Speter    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
144251883Speter  rm -f "$tmpdepfile"
145251883Speter  ;;
146251883Speter
147251883Speterhp)
148251883Speter  # This case exists only to let depend.m4 do its work.  It works by
149251883Speter  # looking at the text of this script.  This case will never be run,
150251883Speter  # since it is checked for above.
151251883Speter  exit 1
152251883Speter  ;;
153251883Speter
154251883Spetersgi)
155251883Speter  if test "$libtool" = yes; then
156251883Speter    "$@" "-Wp,-MDupdate,$tmpdepfile"
157251883Speter  else
158251883Speter    "$@" -MDupdate "$tmpdepfile"
159251883Speter  fi
160251883Speter  stat=$?
161251883Speter  if test $stat -eq 0; then :
162251883Speter  else
163251883Speter    rm -f "$tmpdepfile"
164251883Speter    exit $stat
165251883Speter  fi
166251883Speter  rm -f "$depfile"
167251883Speter
168251883Speter  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
169251883Speter    echo "$object : \\" > "$depfile"
170251883Speter
171251883Speter    # Clip off the initial element (the dependent).  Don't try to be
172251883Speter    # clever and replace this with sed code, as IRIX sed won't handle
173251883Speter    # lines with more than a fixed number of characters (4096 in
174251883Speter    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
175251883Speter    # the IRIX cc adds comments like `#:fec' to the end of the
176251883Speter    # dependency line.
177251883Speter    tr ' ' '
178251883Speter' < "$tmpdepfile" \
179251883Speter    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
180251883Speter    tr '
181251883Speter' ' ' >> $depfile
182251883Speter    echo >> $depfile
183251883Speter
184251883Speter    # The second pass generates a dummy entry for each header file.
185251883Speter    tr ' ' '
186251883Speter' < "$tmpdepfile" \
187251883Speter   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
188251883Speter   >> $depfile
189251883Speter  else
190251883Speter    # The sourcefile does not contain any dependencies, so just
191251883Speter    # store a dummy comment line, to avoid errors with the Makefile
192251883Speter    # "include basename.Plo" scheme.
193251883Speter    echo "#dummy" > "$depfile"
194251883Speter  fi
195251883Speter  rm -f "$tmpdepfile"
196251883Speter  ;;
197251883Speter
198251883Speteraix)
199251883Speter  # The C for AIX Compiler uses -M and outputs the dependencies
200251883Speter  # in a .u file.  In older versions, this file always lives in the
201251883Speter  # current directory.  Also, the AIX compiler puts `$object:' at the
202251883Speter  # start of each line; $object doesn't have directory information.
203251883Speter  # Version 6 uses the directory in both cases.
204251883Speter  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
205251883Speter  tmpdepfile="$stripped.u"
206251883Speter  if test "$libtool" = yes; then
207251883Speter    "$@" -Wc,-M
208251883Speter  else
209251883Speter    "$@" -M
210251883Speter  fi
211251883Speter  stat=$?
212251883Speter
213251883Speter  if test -f "$tmpdepfile"; then :
214251883Speter  else
215251883Speter    stripped=`echo "$stripped" | sed 's,^.*/,,'`
216251883Speter    tmpdepfile="$stripped.u"
217251883Speter  fi
218251883Speter
219251883Speter  if test $stat -eq 0; then :
220251883Speter  else
221251883Speter    rm -f "$tmpdepfile"
222251883Speter    exit $stat
223251883Speter  fi
224251883Speter
225251883Speter  if test -f "$tmpdepfile"; then
226251883Speter    outname="$stripped.o"
227251883Speter    # Each line is of the form `foo.o: dependent.h'.
228251883Speter    # Do two passes, one to just change these to
229251883Speter    # `$object: dependent.h' and one to simply `dependent.h:'.
230251883Speter    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
231251883Speter    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
232251883Speter  else
233251883Speter    # The sourcefile does not contain any dependencies, so just
234251883Speter    # store a dummy comment line, to avoid errors with the Makefile
235251883Speter    # "include basename.Plo" scheme.
236251883Speter    echo "#dummy" > "$depfile"
237251883Speter  fi
238251883Speter  rm -f "$tmpdepfile"
239251883Speter  ;;
240251883Speter
241251883Spetericc)
242251883Speter  # Intel's C compiler understands `-MD -MF file'.  However on
243251883Speter  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
244251883Speter  # ICC 7.0 will fill foo.d with something like
245251883Speter  #    foo.o: sub/foo.c
246251883Speter  #    foo.o: sub/foo.h
247251883Speter  # which is wrong.  We want:
248251883Speter  #    sub/foo.o: sub/foo.c
249251883Speter  #    sub/foo.o: sub/foo.h
250251883Speter  #    sub/foo.c:
251251883Speter  #    sub/foo.h:
252251883Speter  # ICC 7.1 will output
253251883Speter  #    foo.o: sub/foo.c sub/foo.h
254251883Speter  # and will wrap long lines using \ :
255251883Speter  #    foo.o: sub/foo.c ... \
256251883Speter  #     sub/foo.h ... \
257251883Speter  #     ...
258251883Speter
259251883Speter  "$@" -MD -MF "$tmpdepfile"
260251883Speter  stat=$?
261251883Speter  if test $stat -eq 0; then :
262251883Speter  else
263251883Speter    rm -f "$tmpdepfile"
264251883Speter    exit $stat
265251883Speter  fi
266251883Speter  rm -f "$depfile"
267251883Speter  # Each line is of the form `foo.o: dependent.h',
268251883Speter  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
269251883Speter  # Do two passes, one to just change these to
270251883Speter  # `$object: dependent.h' and one to simply `dependent.h:'.
271251883Speter  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
272251883Speter  # Some versions of the HPUX 10.20 sed can't process this invocation
273251883Speter  # correctly.  Breaking it into two sed invocations is a workaround.
274251883Speter  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
275251883Speter    sed -e 's/$/ :/' >> "$depfile"
276251883Speter  rm -f "$tmpdepfile"
277251883Speter  ;;
278251883Speter
279251883Spetertru64)
280251883Speter   # The Tru64 compiler uses -MD to generate dependencies as a side
281251883Speter   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
282251883Speter   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
283251883Speter   # dependencies in `foo.d' instead, so we check for that too.
284251883Speter   # Subdirectories are respected.
285251883Speter   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
286251883Speter   test "x$dir" = "x$object" && dir=
287251883Speter   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
288251883Speter
289251883Speter   if test "$libtool" = yes; then
290251883Speter      # With Tru64 cc, shared objects can also be used to make a
291251883Speter      # static library.  This mecanism is used in libtool 1.4 series to
292251883Speter      # handle both shared and static libraries in a single compilation.
293251883Speter      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
294251883Speter      #
295251883Speter      # With libtool 1.5 this exception was removed, and libtool now
296251883Speter      # generates 2 separate objects for the 2 libraries.  These two
297251883Speter      # compilations output dependencies in in $dir.libs/$base.o.d and
298251883Speter      # in $dir$base.o.d.  We have to check for both files, because
299251883Speter      # one of the two compilations can be disabled.  We should prefer
300251883Speter      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
301251883Speter      # automatically cleaned when .libs/ is deleted, while ignoring
302251883Speter      # the former would cause a distcleancheck panic.
303251883Speter      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
304251883Speter      tmpdepfile2=$dir$base.o.d          # libtool 1.5
305251883Speter      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
306251883Speter      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
307251883Speter      "$@" -Wc,-MD
308251883Speter   else
309251883Speter      tmpdepfile1=$dir$base.o.d
310251883Speter      tmpdepfile2=$dir$base.d
311251883Speter      tmpdepfile3=$dir$base.d
312251883Speter      tmpdepfile4=$dir$base.d
313251883Speter      "$@" -MD
314251883Speter   fi
315251883Speter
316251883Speter   stat=$?
317251883Speter   if test $stat -eq 0; then :
318251883Speter   else
319251883Speter      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
320251883Speter      exit $stat
321251883Speter   fi
322251883Speter
323251883Speter   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
324251883Speter   do
325251883Speter     test -f "$tmpdepfile" && break
326251883Speter   done
327251883Speter   if test -f "$tmpdepfile"; then
328251883Speter      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
329251883Speter      # That's a tab and a space in the [].
330251883Speter      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
331251883Speter   else
332251883Speter      echo "#dummy" > "$depfile"
333251883Speter   fi
334251883Speter   rm -f "$tmpdepfile"
335251883Speter   ;;
336251883Speter
337251883Speter#nosideeffect)
338251883Speter  # This comment above is used by automake to tell side-effect
339251883Speter  # dependency tracking mechanisms from slower ones.
340251883Speter
341251883Speterdashmstdout)
342251883Speter  # Important note: in order to support this mode, a compiler *must*
343251883Speter  # always write the preprocessed file to stdout, regardless of -o.
344251883Speter  "$@" || exit $?
345251883Speter
346251883Speter  # Remove the call to Libtool.
347251883Speter  if test "$libtool" = yes; then
348251883Speter    while test $1 != '--mode=compile'; do
349251883Speter      shift
350251883Speter    done
351251883Speter    shift
352251883Speter  fi
353251883Speter
354251883Speter  # Remove `-o $object'.
355251883Speter  IFS=" "
356251883Speter  for arg
357251883Speter  do
358251883Speter    case $arg in
359251883Speter    -o)
360251883Speter      shift
361251883Speter      ;;
362251883Speter    $object)
363251883Speter      shift
364251883Speter      ;;
365251883Speter    *)
366251883Speter      set fnord "$@" "$arg"
367251883Speter      shift # fnord
368251883Speter      shift # $arg
369251883Speter      ;;
370251883Speter    esac
371251883Speter  done
372251883Speter
373251883Speter  test -z "$dashmflag" && dashmflag=-M
374251883Speter  # Require at least two characters before searching for `:'
375251883Speter  # in the target name.  This is to cope with DOS-style filenames:
376251883Speter  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
377251883Speter  "$@" $dashmflag |
378251883Speter    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
379251883Speter  rm -f "$depfile"
380251883Speter  cat < "$tmpdepfile" > "$depfile"
381251883Speter  tr ' ' '
382251883Speter' < "$tmpdepfile" | \
383251883Speter## Some versions of the HPUX 10.20 sed can't process this invocation
384251883Speter## correctly.  Breaking it into two sed invocations is a workaround.
385251883Speter    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
386251883Speter  rm -f "$tmpdepfile"
387251883Speter  ;;
388251883Speter
389251883SpeterdashXmstdout)
390251883Speter  # This case only exists to satisfy depend.m4.  It is never actually
391251883Speter  # run, as this mode is specially recognized in the preamble.
392251883Speter  exit 1
393251883Speter  ;;
394251883Speter
395251883Spetermakedepend)
396251883Speter  "$@" || exit $?
397251883Speter  # Remove any Libtool call
398251883Speter  if test "$libtool" = yes; then
399251883Speter    while test $1 != '--mode=compile'; do
400251883Speter      shift
401251883Speter    done
402251883Speter    shift
403251883Speter  fi
404251883Speter  # X makedepend
405251883Speter  shift
406251883Speter  cleared=no
407251883Speter  for arg in "$@"; do
408251883Speter    case $cleared in
409251883Speter    no)
410251883Speter      set ""; shift
411251883Speter      cleared=yes ;;
412251883Speter    esac
413251883Speter    case "$arg" in
414251883Speter    -D*|-I*)
415251883Speter      set fnord "$@" "$arg"; shift ;;
416251883Speter    # Strip any option that makedepend may not understand.  Remove
417251883Speter    # the object too, otherwise makedepend will parse it as a source file.
418251883Speter    -*|$object)
419251883Speter      ;;
420251883Speter    *)
421251883Speter      set fnord "$@" "$arg"; shift ;;
422251883Speter    esac
423251883Speter  done
424251883Speter  obj_suffix="`echo $object | sed 's/^.*\././'`"
425251883Speter  touch "$tmpdepfile"
426251883Speter  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
427251883Speter  rm -f "$depfile"
428251883Speter  cat < "$tmpdepfile" > "$depfile"
429251883Speter  sed '1,2d' "$tmpdepfile" | tr ' ' '
430251883Speter' | \
431251883Speter## Some versions of the HPUX 10.20 sed can't process this invocation
432251883Speter## correctly.  Breaking it into two sed invocations is a workaround.
433251883Speter    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
434251883Speter  rm -f "$tmpdepfile" "$tmpdepfile".bak
435251883Speter  ;;
436251883Speter
437251883Spetercpp)
438251883Speter  # Important note: in order to support this mode, a compiler *must*
439251883Speter  # always write the preprocessed file to stdout.
440251883Speter  "$@" || exit $?
441251883Speter
442251883Speter  # Remove the call to Libtool.
443251883Speter  if test "$libtool" = yes; then
444251883Speter    while test $1 != '--mode=compile'; do
445251883Speter      shift
446251883Speter    done
447251883Speter    shift
448251883Speter  fi
449251883Speter
450251883Speter  # Remove `-o $object'.
451251883Speter  IFS=" "
452251883Speter  for arg
453251883Speter  do
454251883Speter    case $arg in
455251883Speter    -o)
456251883Speter      shift
457251883Speter      ;;
458251883Speter    $object)
459251883Speter      shift
460251883Speter      ;;
461251883Speter    *)
462251883Speter      set fnord "$@" "$arg"
463251883Speter      shift # fnord
464251883Speter      shift # $arg
465251883Speter      ;;
466251883Speter    esac
467251883Speter  done
468251883Speter
469251883Speter  "$@" -E |
470251883Speter    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
471251883Speter       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
472251883Speter    sed '$ s: \\$::' > "$tmpdepfile"
473251883Speter  rm -f "$depfile"
474251883Speter  echo "$object : \\" > "$depfile"
475251883Speter  cat < "$tmpdepfile" >> "$depfile"
476251883Speter  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
477251883Speter  rm -f "$tmpdepfile"
478251883Speter  ;;
479251883Speter
480251883Spetermsvisualcpp)
481251883Speter  # Important note: in order to support this mode, a compiler *must*
482251883Speter  # always write the preprocessed file to stdout, regardless of -o,
483251883Speter  # because we must use -o when running libtool.
484251883Speter  "$@" || exit $?
485251883Speter  IFS=" "
486251883Speter  for arg
487251883Speter  do
488251883Speter    case "$arg" in
489251883Speter    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
490251883Speter	set fnord "$@"
491251883Speter	shift
492251883Speter	shift
493251883Speter	;;
494251883Speter    *)
495251883Speter	set fnord "$@" "$arg"
496251883Speter	shift
497251883Speter	shift
498251883Speter	;;
499251883Speter    esac
500251883Speter  done
501251883Speter  "$@" -E |
502251883Speter  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
503251883Speter  rm -f "$depfile"
504251883Speter  echo "$object : \\" > "$depfile"
505251883Speter  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
506251883Speter  echo "	" >> "$depfile"
507251883Speter  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
508251883Speter  rm -f "$tmpdepfile"
509251883Speter  ;;
510251883Speter
511251883Speternone)
512251883Speter  exec "$@"
513251883Speter  ;;
514251883Speter
515251883Speter*)
516251883Speter  echo "Unknown depmode $depmode" 1>&2
517251883Speter  exit 1
518251883Speter  ;;
519251883Speteresac
520251883Speter
521251883Speterexit 0
522251883Speter
523251883Speter# Local Variables:
524251883Speter# mode: shell-script
525251883Speter# sh-indentation: 2
526251883Speter# eval: (add-hook 'write-file-hooks 'time-stamp)
527251883Speter# time-stamp-start: "scriptversion="
528251883Speter# time-stamp-format: "%:y-%02m-%02d.%02H"
529251883Speter# time-stamp-end: "$"
530251883Speter# End:
531