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