depcomp revision 943345d3
1943345d3Smrg#! /bin/sh
2943345d3Smrg# depcomp - compile a program generating dependencies as side-effects
3943345d3Smrg
4943345d3Smrgscriptversion=2005-07-09.11
5943345d3Smrg
6943345d3Smrg# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
7943345d3Smrg
8943345d3Smrg# This program is free software; you can redistribute it and/or modify
9943345d3Smrg# it under the terms of the GNU General Public License as published by
10943345d3Smrg# the Free Software Foundation; either version 2, or (at your option)
11943345d3Smrg# any later version.
12943345d3Smrg
13943345d3Smrg# This program is distributed in the hope that it will be useful,
14943345d3Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of
15943345d3Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16943345d3Smrg# GNU General Public License for more details.
17943345d3Smrg
18943345d3Smrg# You should have received a copy of the GNU General Public License
19943345d3Smrg# along with this program; if not, write to the Free Software
20943345d3Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21943345d3Smrg# 02110-1301, USA.
22943345d3Smrg
23943345d3Smrg# As a special exception to the GNU General Public License, if you
24943345d3Smrg# distribute this file as part of a program that contains a
25943345d3Smrg# configuration script generated by Autoconf, you may include it under
26943345d3Smrg# the same distribution terms that you use for the rest of that program.
27943345d3Smrg
28943345d3Smrg# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
29943345d3Smrg
30943345d3Smrgcase $1 in
31943345d3Smrg  '')
32943345d3Smrg     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
33943345d3Smrg     exit 1;
34943345d3Smrg     ;;
35943345d3Smrg  -h | --h*)
36943345d3Smrg    cat <<\EOF
37943345d3SmrgUsage: depcomp [--help] [--version] PROGRAM [ARGS]
38943345d3Smrg
39943345d3SmrgRun PROGRAMS ARGS to compile a file, generating dependencies
40943345d3Smrgas side-effects.
41943345d3Smrg
42943345d3SmrgEnvironment variables:
43943345d3Smrg  depmode     Dependency tracking mode.
44943345d3Smrg  source      Source file read by `PROGRAMS ARGS'.
45943345d3Smrg  object      Object file output by `PROGRAMS ARGS'.
46943345d3Smrg  DEPDIR      directory where to store dependencies.
47943345d3Smrg  depfile     Dependency file to output.
48943345d3Smrg  tmpdepfile  Temporary file to use when outputing dependencies.
49943345d3Smrg  libtool     Whether libtool is used (yes/no).
50943345d3Smrg
51943345d3SmrgReport bugs to <bug-automake@gnu.org>.
52943345d3SmrgEOF
53943345d3Smrg    exit $?
54943345d3Smrg    ;;
55943345d3Smrg  -v | --v*)
56943345d3Smrg    echo "depcomp $scriptversion"
57943345d3Smrg    exit $?
58943345d3Smrg    ;;
59943345d3Smrgesac
60943345d3Smrg
61943345d3Smrgif test -z "$depmode" || test -z "$source" || test -z "$object"; then
62943345d3Smrg  echo "depcomp: Variables source, object and depmode must be set" 1>&2
63943345d3Smrg  exit 1
64943345d3Smrgfi
65943345d3Smrg
66943345d3Smrg# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
67943345d3Smrgdepfile=${depfile-`echo "$object" |
68943345d3Smrg  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
69943345d3Smrgtmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
70943345d3Smrg
71943345d3Smrgrm -f "$tmpdepfile"
72943345d3Smrg
73943345d3Smrg# Some modes work just like other modes, but use different flags.  We
74943345d3Smrg# parameterize here, but still list the modes in the big case below,
75943345d3Smrg# to make depend.m4 easier to write.  Note that we *cannot* use a case
76943345d3Smrg# here, because this file can only contain one case statement.
77943345d3Smrgif test "$depmode" = hp; then
78943345d3Smrg  # HP compiler uses -M and no extra arg.
79943345d3Smrg  gccflag=-M
80943345d3Smrg  depmode=gcc
81943345d3Smrgfi
82943345d3Smrg
83943345d3Smrgif test "$depmode" = dashXmstdout; then
84943345d3Smrg   # This is just like dashmstdout with a different argument.
85943345d3Smrg   dashmflag=-xM
86943345d3Smrg   depmode=dashmstdout
87943345d3Smrgfi
88943345d3Smrg
89943345d3Smrgcase "$depmode" in
90943345d3Smrggcc3)
91943345d3Smrg## gcc 3 implements dependency tracking that does exactly what
92943345d3Smrg## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
93943345d3Smrg## it if -MD -MP comes after the -MF stuff.  Hmm.
94943345d3Smrg  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
95943345d3Smrg  stat=$?
96943345d3Smrg  if test $stat -eq 0; then :
97943345d3Smrg  else
98943345d3Smrg    rm -f "$tmpdepfile"
99943345d3Smrg    exit $stat
100943345d3Smrg  fi
101943345d3Smrg  mv "$tmpdepfile" "$depfile"
102943345d3Smrg  ;;
103943345d3Smrg
104943345d3Smrggcc)
105943345d3Smrg## There are various ways to get dependency output from gcc.  Here's
106943345d3Smrg## why we pick this rather obscure method:
107943345d3Smrg## - Don't want to use -MD because we'd like the dependencies to end
108943345d3Smrg##   up in a subdir.  Having to rename by hand is ugly.
109943345d3Smrg##   (We might end up doing this anyway to support other compilers.)
110943345d3Smrg## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
111943345d3Smrg##   -MM, not -M (despite what the docs say).
112943345d3Smrg## - Using -M directly means running the compiler twice (even worse
113943345d3Smrg##   than renaming).
114943345d3Smrg  if test -z "$gccflag"; then
115943345d3Smrg    gccflag=-MD,
116943345d3Smrg  fi
117943345d3Smrg  "$@" -Wp,"$gccflag$tmpdepfile"
118943345d3Smrg  stat=$?
119943345d3Smrg  if test $stat -eq 0; then :
120943345d3Smrg  else
121943345d3Smrg    rm -f "$tmpdepfile"
122943345d3Smrg    exit $stat
123943345d3Smrg  fi
124943345d3Smrg  rm -f "$depfile"
125943345d3Smrg  echo "$object : \\" > "$depfile"
126943345d3Smrg  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
127943345d3Smrg## The second -e expression handles DOS-style file names with drive letters.
128943345d3Smrg  sed -e 's/^[^:]*: / /' \
129943345d3Smrg      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
130943345d3Smrg## This next piece of magic avoids the `deleted header file' problem.
131943345d3Smrg## The problem is that when a header file which appears in a .P file
132943345d3Smrg## is deleted, the dependency causes make to die (because there is
133943345d3Smrg## typically no way to rebuild the header).  We avoid this by adding
134943345d3Smrg## dummy dependencies for each header file.  Too bad gcc doesn't do
135943345d3Smrg## this for us directly.
136943345d3Smrg  tr ' ' '
137943345d3Smrg' < "$tmpdepfile" |
138943345d3Smrg## Some versions of gcc put a space before the `:'.  On the theory
139943345d3Smrg## that the space means something, we add a space to the output as
140943345d3Smrg## well.
141943345d3Smrg## Some versions of the HPUX 10.20 sed can't process this invocation
142943345d3Smrg## correctly.  Breaking it into two sed invocations is a workaround.
143943345d3Smrg    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
144943345d3Smrg  rm -f "$tmpdepfile"
145943345d3Smrg  ;;
146943345d3Smrg
147943345d3Smrghp)
148943345d3Smrg  # This case exists only to let depend.m4 do its work.  It works by
149943345d3Smrg  # looking at the text of this script.  This case will never be run,
150943345d3Smrg  # since it is checked for above.
151943345d3Smrg  exit 1
152943345d3Smrg  ;;
153943345d3Smrg
154943345d3Smrgsgi)
155943345d3Smrg  if test "$libtool" = yes; then
156943345d3Smrg    "$@" "-Wp,-MDupdate,$tmpdepfile"
157943345d3Smrg  else
158943345d3Smrg    "$@" -MDupdate "$tmpdepfile"
159943345d3Smrg  fi
160943345d3Smrg  stat=$?
161943345d3Smrg  if test $stat -eq 0; then :
162943345d3Smrg  else
163943345d3Smrg    rm -f "$tmpdepfile"
164943345d3Smrg    exit $stat
165943345d3Smrg  fi
166943345d3Smrg  rm -f "$depfile"
167943345d3Smrg
168943345d3Smrg  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
169943345d3Smrg    echo "$object : \\" > "$depfile"
170943345d3Smrg
171943345d3Smrg    # Clip off the initial element (the dependent).  Don't try to be
172943345d3Smrg    # clever and replace this with sed code, as IRIX sed won't handle
173943345d3Smrg    # lines with more than a fixed number of characters (4096 in
174943345d3Smrg    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
175943345d3Smrg    # the IRIX cc adds comments like `#:fec' to the end of the
176943345d3Smrg    # dependency line.
177943345d3Smrg    tr ' ' '
178943345d3Smrg' < "$tmpdepfile" \
179943345d3Smrg    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
180943345d3Smrg    tr '
181943345d3Smrg' ' ' >> $depfile
182943345d3Smrg    echo >> $depfile
183943345d3Smrg
184943345d3Smrg    # The second pass generates a dummy entry for each header file.
185943345d3Smrg    tr ' ' '
186943345d3Smrg' < "$tmpdepfile" \
187943345d3Smrg   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
188943345d3Smrg   >> $depfile
189943345d3Smrg  else
190943345d3Smrg    # The sourcefile does not contain any dependencies, so just
191943345d3Smrg    # store a dummy comment line, to avoid errors with the Makefile
192943345d3Smrg    # "include basename.Plo" scheme.
193943345d3Smrg    echo "#dummy" > "$depfile"
194943345d3Smrg  fi
195943345d3Smrg  rm -f "$tmpdepfile"
196943345d3Smrg  ;;
197943345d3Smrg
198943345d3Smrgaix)
199943345d3Smrg  # The C for AIX Compiler uses -M and outputs the dependencies
200943345d3Smrg  # in a .u file.  In older versions, this file always lives in the
201943345d3Smrg  # current directory.  Also, the AIX compiler puts `$object:' at the
202943345d3Smrg  # start of each line; $object doesn't have directory information.
203943345d3Smrg  # Version 6 uses the directory in both cases.
204943345d3Smrg  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
205943345d3Smrg  tmpdepfile="$stripped.u"
206943345d3Smrg  if test "$libtool" = yes; then
207943345d3Smrg    "$@" -Wc,-M
208943345d3Smrg  else
209943345d3Smrg    "$@" -M
210943345d3Smrg  fi
211943345d3Smrg  stat=$?
212943345d3Smrg
213943345d3Smrg  if test -f "$tmpdepfile"; then :
214943345d3Smrg  else
215943345d3Smrg    stripped=`echo "$stripped" | sed 's,^.*/,,'`
216943345d3Smrg    tmpdepfile="$stripped.u"
217943345d3Smrg  fi
218943345d3Smrg
219943345d3Smrg  if test $stat -eq 0; then :
220943345d3Smrg  else
221943345d3Smrg    rm -f "$tmpdepfile"
222943345d3Smrg    exit $stat
223943345d3Smrg  fi
224943345d3Smrg
225943345d3Smrg  if test -f "$tmpdepfile"; then
226943345d3Smrg    outname="$stripped.o"
227943345d3Smrg    # Each line is of the form `foo.o: dependent.h'.
228943345d3Smrg    # Do two passes, one to just change these to
229943345d3Smrg    # `$object: dependent.h' and one to simply `dependent.h:'.
230943345d3Smrg    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
231943345d3Smrg    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
232943345d3Smrg  else
233943345d3Smrg    # The sourcefile does not contain any dependencies, so just
234943345d3Smrg    # store a dummy comment line, to avoid errors with the Makefile
235943345d3Smrg    # "include basename.Plo" scheme.
236943345d3Smrg    echo "#dummy" > "$depfile"
237943345d3Smrg  fi
238943345d3Smrg  rm -f "$tmpdepfile"
239943345d3Smrg  ;;
240943345d3Smrg
241943345d3Smrgicc)
242943345d3Smrg  # Intel's C compiler understands `-MD -MF file'.  However on
243943345d3Smrg  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
244943345d3Smrg  # ICC 7.0 will fill foo.d with something like
245943345d3Smrg  #    foo.o: sub/foo.c
246943345d3Smrg  #    foo.o: sub/foo.h
247943345d3Smrg  # which is wrong.  We want:
248943345d3Smrg  #    sub/foo.o: sub/foo.c
249943345d3Smrg  #    sub/foo.o: sub/foo.h
250943345d3Smrg  #    sub/foo.c:
251943345d3Smrg  #    sub/foo.h:
252943345d3Smrg  # ICC 7.1 will output
253943345d3Smrg  #    foo.o: sub/foo.c sub/foo.h
254943345d3Smrg  # and will wrap long lines using \ :
255943345d3Smrg  #    foo.o: sub/foo.c ... \
256943345d3Smrg  #     sub/foo.h ... \
257943345d3Smrg  #     ...
258943345d3Smrg
259943345d3Smrg  "$@" -MD -MF "$tmpdepfile"
260943345d3Smrg  stat=$?
261943345d3Smrg  if test $stat -eq 0; then :
262943345d3Smrg  else
263943345d3Smrg    rm -f "$tmpdepfile"
264943345d3Smrg    exit $stat
265943345d3Smrg  fi
266943345d3Smrg  rm -f "$depfile"
267943345d3Smrg  # Each line is of the form `foo.o: dependent.h',
268943345d3Smrg  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
269943345d3Smrg  # Do two passes, one to just change these to
270943345d3Smrg  # `$object: dependent.h' and one to simply `dependent.h:'.
271943345d3Smrg  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
272943345d3Smrg  # Some versions of the HPUX 10.20 sed can't process this invocation
273943345d3Smrg  # correctly.  Breaking it into two sed invocations is a workaround.
274943345d3Smrg  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
275943345d3Smrg    sed -e 's/$/ :/' >> "$depfile"
276943345d3Smrg  rm -f "$tmpdepfile"
277943345d3Smrg  ;;
278943345d3Smrg
279943345d3Smrgtru64)
280943345d3Smrg   # The Tru64 compiler uses -MD to generate dependencies as a side
281943345d3Smrg   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
282943345d3Smrg   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
283943345d3Smrg   # dependencies in `foo.d' instead, so we check for that too.
284943345d3Smrg   # Subdirectories are respected.
285943345d3Smrg   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
286943345d3Smrg   test "x$dir" = "x$object" && dir=
287943345d3Smrg   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
288943345d3Smrg
289943345d3Smrg   if test "$libtool" = yes; then
290943345d3Smrg      # With Tru64 cc, shared objects can also be used to make a
291943345d3Smrg      # static library.  This mecanism is used in libtool 1.4 series to
292943345d3Smrg      # handle both shared and static libraries in a single compilation.
293943345d3Smrg      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
294943345d3Smrg      #
295943345d3Smrg      # With libtool 1.5 this exception was removed, and libtool now
296943345d3Smrg      # generates 2 separate objects for the 2 libraries.  These two
297943345d3Smrg      # compilations output dependencies in in $dir.libs/$base.o.d and
298943345d3Smrg      # in $dir$base.o.d.  We have to check for both files, because
299943345d3Smrg      # one of the two compilations can be disabled.  We should prefer
300943345d3Smrg      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
301943345d3Smrg      # automatically cleaned when .libs/ is deleted, while ignoring
302943345d3Smrg      # the former would cause a distcleancheck panic.
303943345d3Smrg      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
304943345d3Smrg      tmpdepfile2=$dir$base.o.d          # libtool 1.5
305943345d3Smrg      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
306943345d3Smrg      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
307943345d3Smrg      "$@" -Wc,-MD
308943345d3Smrg   else
309943345d3Smrg      tmpdepfile1=$dir$base.o.d
310943345d3Smrg      tmpdepfile2=$dir$base.d
311943345d3Smrg      tmpdepfile3=$dir$base.d
312943345d3Smrg      tmpdepfile4=$dir$base.d
313943345d3Smrg      "$@" -MD
314943345d3Smrg   fi
315943345d3Smrg
316943345d3Smrg   stat=$?
317943345d3Smrg   if test $stat -eq 0; then :
318943345d3Smrg   else
319943345d3Smrg      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
320943345d3Smrg      exit $stat
321943345d3Smrg   fi
322943345d3Smrg
323943345d3Smrg   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
324943345d3Smrg   do
325943345d3Smrg     test -f "$tmpdepfile" && break
326943345d3Smrg   done
327943345d3Smrg   if test -f "$tmpdepfile"; then
328943345d3Smrg      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
329943345d3Smrg      # That's a tab and a space in the [].
330943345d3Smrg      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
331943345d3Smrg   else
332943345d3Smrg      echo "#dummy" > "$depfile"
333943345d3Smrg   fi
334943345d3Smrg   rm -f "$tmpdepfile"
335943345d3Smrg   ;;
336943345d3Smrg
337943345d3Smrg#nosideeffect)
338943345d3Smrg  # This comment above is used by automake to tell side-effect
339943345d3Smrg  # dependency tracking mechanisms from slower ones.
340943345d3Smrg
341943345d3Smrgdashmstdout)
342943345d3Smrg  # Important note: in order to support this mode, a compiler *must*
343943345d3Smrg  # always write the preprocessed file to stdout, regardless of -o.
344943345d3Smrg  "$@" || exit $?
345943345d3Smrg
346943345d3Smrg  # Remove the call to Libtool.
347943345d3Smrg  if test "$libtool" = yes; then
348943345d3Smrg    while test $1 != '--mode=compile'; do
349943345d3Smrg      shift
350943345d3Smrg    done
351943345d3Smrg    shift
352943345d3Smrg  fi
353943345d3Smrg
354943345d3Smrg  # Remove `-o $object'.
355943345d3Smrg  IFS=" "
356943345d3Smrg  for arg
357943345d3Smrg  do
358943345d3Smrg    case $arg in
359943345d3Smrg    -o)
360943345d3Smrg      shift
361943345d3Smrg      ;;
362943345d3Smrg    $object)
363943345d3Smrg      shift
364943345d3Smrg      ;;
365943345d3Smrg    *)
366943345d3Smrg      set fnord "$@" "$arg"
367943345d3Smrg      shift # fnord
368943345d3Smrg      shift # $arg
369943345d3Smrg      ;;
370943345d3Smrg    esac
371943345d3Smrg  done
372943345d3Smrg
373943345d3Smrg  test -z "$dashmflag" && dashmflag=-M
374943345d3Smrg  # Require at least two characters before searching for `:'
375943345d3Smrg  # in the target name.  This is to cope with DOS-style filenames:
376943345d3Smrg  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
377943345d3Smrg  "$@" $dashmflag |
378943345d3Smrg    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
379943345d3Smrg  rm -f "$depfile"
380943345d3Smrg  cat < "$tmpdepfile" > "$depfile"
381943345d3Smrg  tr ' ' '
382943345d3Smrg' < "$tmpdepfile" | \
383943345d3Smrg## Some versions of the HPUX 10.20 sed can't process this invocation
384943345d3Smrg## correctly.  Breaking it into two sed invocations is a workaround.
385943345d3Smrg    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
386943345d3Smrg  rm -f "$tmpdepfile"
387943345d3Smrg  ;;
388943345d3Smrg
389943345d3SmrgdashXmstdout)
390943345d3Smrg  # This case only exists to satisfy depend.m4.  It is never actually
391943345d3Smrg  # run, as this mode is specially recognized in the preamble.
392943345d3Smrg  exit 1
393943345d3Smrg  ;;
394943345d3Smrg
395943345d3Smrgmakedepend)
396943345d3Smrg  "$@" || exit $?
397943345d3Smrg  # Remove any Libtool call
398943345d3Smrg  if test "$libtool" = yes; then
399943345d3Smrg    while test $1 != '--mode=compile'; do
400943345d3Smrg      shift
401943345d3Smrg    done
402943345d3Smrg    shift
403943345d3Smrg  fi
404943345d3Smrg  # X makedepend
405943345d3Smrg  shift
406943345d3Smrg  cleared=no
407943345d3Smrg  for arg in "$@"; do
408943345d3Smrg    case $cleared in
409943345d3Smrg    no)
410943345d3Smrg      set ""; shift
411943345d3Smrg      cleared=yes ;;
412943345d3Smrg    esac
413943345d3Smrg    case "$arg" in
414943345d3Smrg    -D*|-I*)
415943345d3Smrg      set fnord "$@" "$arg"; shift ;;
416943345d3Smrg    # Strip any option that makedepend may not understand.  Remove
417943345d3Smrg    # the object too, otherwise makedepend will parse it as a source file.
418943345d3Smrg    -*|$object)
419943345d3Smrg      ;;
420943345d3Smrg    *)
421943345d3Smrg      set fnord "$@" "$arg"; shift ;;
422943345d3Smrg    esac
423943345d3Smrg  done
424943345d3Smrg  obj_suffix="`echo $object | sed 's/^.*\././'`"
425943345d3Smrg  touch "$tmpdepfile"
426943345d3Smrg  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
427943345d3Smrg  rm -f "$depfile"
428943345d3Smrg  cat < "$tmpdepfile" > "$depfile"
429943345d3Smrg  sed '1,2d' "$tmpdepfile" | tr ' ' '
430943345d3Smrg' | \
431943345d3Smrg## Some versions of the HPUX 10.20 sed can't process this invocation
432943345d3Smrg## correctly.  Breaking it into two sed invocations is a workaround.
433943345d3Smrg    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
434943345d3Smrg  rm -f "$tmpdepfile" "$tmpdepfile".bak
435943345d3Smrg  ;;
436943345d3Smrg
437943345d3Smrgcpp)
438943345d3Smrg  # Important note: in order to support this mode, a compiler *must*
439943345d3Smrg  # always write the preprocessed file to stdout.
440943345d3Smrg  "$@" || exit $?
441943345d3Smrg
442943345d3Smrg  # Remove the call to Libtool.
443943345d3Smrg  if test "$libtool" = yes; then
444943345d3Smrg    while test $1 != '--mode=compile'; do
445943345d3Smrg      shift
446943345d3Smrg    done
447943345d3Smrg    shift
448943345d3Smrg  fi
449943345d3Smrg
450943345d3Smrg  # Remove `-o $object'.
451943345d3Smrg  IFS=" "
452943345d3Smrg  for arg
453943345d3Smrg  do
454943345d3Smrg    case $arg in
455943345d3Smrg    -o)
456943345d3Smrg      shift
457943345d3Smrg      ;;
458943345d3Smrg    $object)
459943345d3Smrg      shift
460943345d3Smrg      ;;
461943345d3Smrg    *)
462943345d3Smrg      set fnord "$@" "$arg"
463943345d3Smrg      shift # fnord
464943345d3Smrg      shift # $arg
465943345d3Smrg      ;;
466943345d3Smrg    esac
467943345d3Smrg  done
468943345d3Smrg
469943345d3Smrg  "$@" -E |
470943345d3Smrg    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
471943345d3Smrg       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
472943345d3Smrg    sed '$ s: \\$::' > "$tmpdepfile"
473943345d3Smrg  rm -f "$depfile"
474943345d3Smrg  echo "$object : \\" > "$depfile"
475943345d3Smrg  cat < "$tmpdepfile" >> "$depfile"
476943345d3Smrg  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
477943345d3Smrg  rm -f "$tmpdepfile"
478943345d3Smrg  ;;
479943345d3Smrg
480943345d3Smrgmsvisualcpp)
481943345d3Smrg  # Important note: in order to support this mode, a compiler *must*
482943345d3Smrg  # always write the preprocessed file to stdout, regardless of -o,
483943345d3Smrg  # because we must use -o when running libtool.
484943345d3Smrg  "$@" || exit $?
485943345d3Smrg  IFS=" "
486943345d3Smrg  for arg
487943345d3Smrg  do
488943345d3Smrg    case "$arg" in
489943345d3Smrg    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
490943345d3Smrg	set fnord "$@"
491943345d3Smrg	shift
492943345d3Smrg	shift
493943345d3Smrg	;;
494943345d3Smrg    *)
495943345d3Smrg	set fnord "$@" "$arg"
496943345d3Smrg	shift
497943345d3Smrg	shift
498943345d3Smrg	;;
499943345d3Smrg    esac
500943345d3Smrg  done
501943345d3Smrg  "$@" -E |
502943345d3Smrg  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
503943345d3Smrg  rm -f "$depfile"
504943345d3Smrg  echo "$object : \\" > "$depfile"
505943345d3Smrg  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
506943345d3Smrg  echo "	" >> "$depfile"
507943345d3Smrg  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
508943345d3Smrg  rm -f "$tmpdepfile"
509943345d3Smrg  ;;
510943345d3Smrg
511943345d3Smrgnone)
512943345d3Smrg  exec "$@"
513943345d3Smrg  ;;
514943345d3Smrg
515943345d3Smrg*)
516943345d3Smrg  echo "Unknown depmode $depmode" 1>&2
517943345d3Smrg  exit 1
518943345d3Smrg  ;;
519943345d3Smrgesac
520943345d3Smrg
521943345d3Smrgexit 0
522943345d3Smrg
523943345d3Smrg# Local Variables:
524943345d3Smrg# mode: shell-script
525943345d3Smrg# sh-indentation: 2
526943345d3Smrg# eval: (add-hook 'write-file-hooks 'time-stamp)
527943345d3Smrg# time-stamp-start: "scriptversion="
528943345d3Smrg# time-stamp-format: "%:y-%02m-%02d.%02H"
529943345d3Smrg# time-stamp-end: "$"
530943345d3Smrg# End:
531