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