depcomp revision 441f72d43a9b550baa779fc82f70816da5f74f0e
1441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project#! /bin/sh
2441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
3441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# depcomp - compile a program generating dependencies as side-effects
4441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# Copyright 1999, 2000 Free Software Foundation, Inc.
5441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
6441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# This program is free software; you can redistribute it and/or modify
7441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# it under the terms of the GNU General Public License as published by
8441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# the Free Software Foundation; either version 2, or (at your option)
9441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# any later version.
10441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
11441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# This program is distributed in the hope that it will be useful,
12441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# but WITHOUT ANY WARRANTY; without even the implied warranty of
13441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# GNU General Public License for more details.
15441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
16441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# You should have received a copy of the GNU General Public License
17441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# along with this program; if not, write to the Free Software
18441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# 02111-1307, USA.
20441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
21441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# As a special exception to the GNU General Public License, if you
22441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# distribute this file as part of a program that contains a
23441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# configuration script generated by Autoconf, you may include it under
24441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# the same distribution terms that you use for the rest of that program.
25441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
26441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
27441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
28441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectif test -z "$depmode" || test -z "$source" || test -z "$object"; then
29441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  echo "depcomp: Variables source, object and depmode must be set" 1>&2
30441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  exit 1
31441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectfi
32441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# `libtool' can also be set to `yes' or `no'.
33441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
34441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectif test -z "$depfile"; then
35441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
36441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   dir=`echo "$object" | sed 's,/.*$,/,'`
37441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   if test "$dir" = "$object"; then
38441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      dir=
39441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   fi
40441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   # FIXME: should be _deps on DOS.
41441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   depfile="$dir.deps/$base"
42441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectfi
43441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
44441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projecttmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
45441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
46441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectrm -f "$tmpdepfile"
47441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
48441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# Some modes work just like other modes, but use different flags.  We
49441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# parameterize here, but still list the modes in the big case below,
50441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# to make depend.m4 easier to write.  Note that we *cannot* use a case
51441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project# here, because this file can only contain one case statement.
52441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectif test "$depmode" = hp; then
53441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # HP compiler uses -M and no extra arg.
54441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  gccflag=-M
55441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  depmode=gcc
56441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectfi
57441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
58441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectif test "$depmode" = dashXmstdout; then
59441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   # This is just like dashmstdout with a different argument.
60441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   dashmflag=-xM
61441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   depmode=dashmstdout
62441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectfi
63441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
64441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectcase "$depmode" in
65441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectgcc3)
66441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## gcc 3 implements dependency tracking that does exactly what
67441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
68441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## it if -MD -MP comes after the -MF stuff.  Hmm.
69441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
70441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
71441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test $stat -eq 0; then :
72441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
73441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    rm -f "$tmpdepfile"
74441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    exit $stat
75441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
76441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  mv "$tmpdepfile" "$depfile"
77441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
78441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
79441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectgcc)
80441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## There are various ways to get dependency output from gcc.  Here's
81441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## why we pick this rather obscure method:
82441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## - Don't want to use -MD because we'd like the dependencies to end
83441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project##   up in a subdir.  Having to rename by hand is ugly.
84441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project##   (We might end up doing this anyway to support other compilers.)
85441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
86441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project##   -MM, not -M (despite what the docs say).
87441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## - Using -M directly means running the compiler twice (even worse
88441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project##   than renaming).
89441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test -z "$gccflag"; then
90441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    gccflag=-MD,
91441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
92441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  "$@" -Wp,"$gccflag$tmpdepfile"
93441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
94441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test $stat -eq 0; then :
95441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
96441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    rm -f "$tmpdepfile"
97441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    exit $stat
98441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
99441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$depfile"
100441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  echo "$object : \\" > "$depfile"
101441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
102441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## The second -e expression handles DOS-style file names with drive letters.
103441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  sed -e 's/^[^:]*: / /' \
104441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
105441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## This next piece of magic avoids the `deleted header file' problem.
106441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## The problem is that when a header file which appears in a .P file
107441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## is deleted, the dependency causes make to die (because there is
108441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## typically no way to rebuild the header).  We avoid this by adding
109441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## dummy dependencies for each header file.  Too bad gcc doesn't do
110441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## this for us directly.
111441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  tr ' ' '
112441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project' < "$tmpdepfile" |
113441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## Some versions of gcc put a space before the `:'.  On the theory
114441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## that the space means something, we add a space to the output as
115441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## well.
116441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## Some versions of the HPUX 10.20 sed can't process this invocation
117441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## correctly.  Breaking it into two sed invocations is a workaround.
118441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
119441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$tmpdepfile"
120441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
121441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
122441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projecthp)
123441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # This case exists only to let depend.m4 do its work.  It works by
124441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # looking at the text of this script.  This case will never be run,
125441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # since it is checked for above.
126441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  exit 1
127441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
128441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
129441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectsgi)
130441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test "$libtool" = yes; then
131441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    "$@" "-Wp,-MDupdate,$tmpdepfile"
132441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
133441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    "$@" -MDupdate "$tmpdepfile"
134441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
135441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
136441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test $stat -eq 0; then :
137441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
138441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    rm -f "$tmpdepfile"
139441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    exit $stat
140441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
141441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$depfile"
142441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
143441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
144441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    echo "$object : \\" > "$depfile"
145441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
146441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # Clip off the initial element (the dependent).  Don't try to be
147441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # clever and replace this with sed code, as IRIX sed won't handle
148441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # lines with more than a fixed number of characters (4096 in
149441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
150441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # the IRIX cc adds comments like `#:fec' to the end of the
151441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # dependency line.
152441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    tr ' ' '
153441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project' < "$tmpdepfile" \
154441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
155441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    tr '
156441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project' ' ' >> $depfile
157441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    echo >> $depfile
158441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
159441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # The second pass generates a dummy entry for each header file.
160441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    tr ' ' '
161441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project' < "$tmpdepfile" \
162441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
163441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   >> $depfile
164441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
165441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # The sourcefile does not contain any dependencies, so just
166441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # store a dummy comment line, to avoid errors with the Makefile
167441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # "include basename.Plo" scheme.
168441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    echo "#dummy" > "$depfile"
169441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
170441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$tmpdepfile"
171441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
172441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
173441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectaix)
174441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # The C for AIX Compiler uses -M and outputs the dependencies
175441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # in a .u file.  This file always lives in the current directory.
176441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # Also, the AIX compiler puts `$object:' at the start of each line;
177441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # $object doesn't have directory information.
178441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
179441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  tmpdepfile="$stripped.u"
180441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  outname="$stripped.o"
181441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test "$libtool" = yes; then
182441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    "$@" -Wc,-M
183441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
184441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    "$@" -M
185441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
186441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
187441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
188441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test $stat -eq 0; then :
189441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
190441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    rm -f "$tmpdepfile"
191441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    exit $stat
192441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
193441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
194441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test -f "$tmpdepfile"; then
195441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # Each line is of the form `foo.o: dependent.h'.
196441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # Do two passes, one to just change these to
197441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # `$object: dependent.h' and one to simply `dependent.h:'.
198441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
199441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
200441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  else
201441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # The sourcefile does not contain any dependencies, so just
202441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # store a dummy comment line, to avoid errors with the Makefile
203441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    # "include basename.Plo" scheme.
204441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    echo "#dummy" > "$depfile"
205441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  fi
206441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$tmpdepfile"
207441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
208441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
209441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projecttru64)
210441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   # The Tru64 AIX compiler uses -MD to generate dependencies as a side
211441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
212441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 
213441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   # dependencies in `foo.d' instead, so we check for that too.
214441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   # Subdirectories are respected.
215441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
216441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   base=`echo "$object" | sed -e 's/\.o$/.d/' -e 's/\.lo$/.d/'`
217441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   tmpdepfile1="$base.o.d"
218441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   tmpdepfile2="$base.d"
219441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   if test "$libtool" = yes; then
220441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      "$@" -Wc,-MD
221441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   else
222441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      "$@" -MD
223441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   fi
224441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
225441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   stat=$?
226441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   if test $stat -eq 0; then :
227441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   else
228441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      rm -f "$tmpdepfile1" "$tmpdepfile2"
229441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      exit $stat
230441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   fi
231441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
232441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   if test -f "$tmpdepfile1"; then
233441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      tmpdepfile="$tmpdepfile1"
234441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   else
235441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      tmpdepfile="$tmpdepfile2"
236441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   fi
237441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   if test -f "$tmpdepfile"; then
238441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
239441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      # That's a space and a tab in the [].
240441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      sed -e 's,^.*\.[a-z]*:[ 	]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
241441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   else
242441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      echo "#dummy" > "$depfile"
243441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   fi
244441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   rm -f "$tmpdepfile"
245441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project   ;;
246441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
247441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project#nosideeffect)
248441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # This comment above is used by automake to tell side-effect
249441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # dependency tracking mechanisms from slower ones.
250441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
251441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectdashmstdout)
252441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # Important note: in order to support this mode, a compiler *must*
253441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # always write the proprocessed file to stdout, regardless of -o,
254441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # because we must use -o when running libtool.
255441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  test -z "$dashmflag" && dashmflag=-M
256441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ( IFS=" "
257441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    case " $* " in
258441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    *" --mode=compile "*) # this is libtool, let us make it quiet
259441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      for arg
260441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      do # cycle over the arguments
261441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project        case "$arg" in
262441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	"--mode=compile")
263441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  # insert --quiet before "--mode=compile"
264441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  set fnord "$@" --quiet
265441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  shift # fnord
266441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  ;;
267441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	esac
268441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	set fnord "$@" "$arg"
269441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift # fnord
270441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift # "$arg"
271441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      done
272441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      ;;
273441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    esac
274441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    "$@" $dashmflag | sed 's:^[^:]*\:[ 	]*:'"$object"'\: :' > "$tmpdepfile"
275441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ) &
276441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  proc=$!
277441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  "$@"
278441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
279441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  wait "$proc"
280441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test "$stat" != 0; then exit $stat; fi
281441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$depfile"
282441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  cat < "$tmpdepfile" > "$depfile"
283441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  tr ' ' '
284441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project' < "$tmpdepfile" | \
285441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## Some versions of the HPUX 10.20 sed can't process this invocation
286441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## correctly.  Breaking it into two sed invocations is a workaround.
287441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
288441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$tmpdepfile"
289441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
290441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
291441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source ProjectdashXmstdout)
292441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # This case only exists to satisfy depend.m4.  It is never actually
293441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # run, as this mode is specially recognized in the preamble.
294441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  exit 1
295441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
296441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
297441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectmakedepend)
298441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # X makedepend
299441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  (
300441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    shift
301441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    cleared=no
302441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    for arg in "$@"; do
303441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      case $cleared in no)
304441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project        set ""; shift
305441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	cleared=yes
306441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      esac
307441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      case "$arg" in
308441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project        -D*|-I*)
309441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  set fnord "$@" "$arg"; shift;;
310441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	-*)
311441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  ;;
312441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	*)
313441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  set fnord "$@" "$arg"; shift;;
314441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      esac
315441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    done
316441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    obj_suffix="`echo $object | sed 's/^.*\././'`"
317441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    touch "$tmpdepfile"
318441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
319441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ) &
320441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  proc=$!
321441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  "$@"
322441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
323441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  wait "$proc"
324441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test "$stat" != 0; then exit $stat; fi
325441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$depfile"
326441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  cat < "$tmpdepfile" > "$depfile"
327441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  sed '1,2d' "$tmpdepfile" | tr ' ' '
328441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project' | \
329441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## Some versions of the HPUX 10.20 sed can't process this invocation
330441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project## correctly.  Breaking it into two sed invocations is a workaround.
331441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
332441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$tmpdepfile" "$tmpdepfile".bak
333441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
334441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
335441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectcpp)
336441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # Important note: in order to support this mode, a compiler *must*
337441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # always write the proprocessed file to stdout, regardless of -o,
338441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # because we must use -o when running libtool.
339441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ( IFS=" "
340441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    case " $* " in
341441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    *" --mode=compile "*)
342441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      for arg
343441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      do # cycle over the arguments
344441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project        case $arg in
345441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	"--mode=compile")
346441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  # insert --quiet before "--mode=compile"
347441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  set fnord "$@" --quiet
348441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  shift # fnord
349441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  ;;
350441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	esac
351441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	set fnord "$@" "$arg"
352441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift # fnord
353441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift # "$arg"
354441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      done
355441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      ;;
356441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    esac
357441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    "$@" -E |
358441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
359441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed '$ s: \\$::' > "$tmpdepfile"
360441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ) &
361441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  proc=$!
362441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  "$@"
363441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
364441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  wait "$proc"
365441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test "$stat" != 0; then exit $stat; fi
366441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$depfile"
367441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  echo "$object : \\" > "$depfile"
368441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  cat < "$tmpdepfile" >> "$depfile"
369441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
370441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$tmpdepfile"
371441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
372441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
373441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectmsvisualcpp)
374441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # Important note: in order to support this mode, a compiler *must*
375441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # always write the proprocessed file to stdout, regardless of -o,
376441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  # because we must use -o when running libtool.
377441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ( IFS=" "
378441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    case " $* " in
379441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    *" --mode=compile "*)
380441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      for arg
381441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      do # cycle over the arguments
382441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project        case $arg in
383441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	"--mode=compile")
384441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  # insert --quiet before "--mode=compile"
385441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  set fnord "$@" --quiet
386441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  shift # fnord
387441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	  ;;
388441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	esac
389441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	set fnord "$@" "$arg"
390441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift # fnord
391441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift # "$arg"
392441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      done
393441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      ;;
394441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    esac
395441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    for arg
396441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    do
397441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      case "$arg" in
398441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
399441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	set fnord "$@"
400441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift
401441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift
402441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	;;
403441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      *)
404441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	set fnord "$@" "$arg"
405441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift
406441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	shift
407441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project	;;
408441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project      esac
409441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    done
410441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    "$@" -E |
411441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
412441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ) &
413441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  proc=$!
414441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  "$@"
415441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  stat=$?
416441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  wait "$proc"
417441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  if test "$stat" != 0; then exit $stat; fi
418441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$depfile"
419441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  echo "$object : \\" > "$depfile"
420441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
421441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  echo "	" >> "$depfile"
422441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
423441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  rm -f "$tmpdepfile"
424441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
425441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
426441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectnone)
427441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  exec "$@"
428441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
429441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
430441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project*)
431441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  echo "Unknown depmode $depmode" 1>&2
432441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  exit 1
433441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project  ;;
434441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectesac
435441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Project
436441f72d43a9b550baa779fc82f70816da5f74f0eThe Android Open Source Projectexit 0
437