12068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project#! /bin/sh 22068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# depcomp - compile a program generating dependencies as side-effects 32068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 42068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectscriptversion=2005-07-09.11 52068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 62068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. 72068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 82068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# This program is free software; you can redistribute it and/or modify 92068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# it under the terms of the GNU General Public License as published by 102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# the Free Software Foundation; either version 2, or (at your option) 112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# any later version. 122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# This program is distributed in the hope that it will be useful, 142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# but WITHOUT ANY WARRANTY; without even the implied warranty of 152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# GNU General Public License for more details. 172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# You should have received a copy of the GNU General Public License 192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# along with this program; if not, write to the Free Software 202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# 02110-1301, USA. 222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# As a special exception to the GNU General Public License, if you 242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# distribute this file as part of a program that contains a 252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# configuration script generated by Autoconf, you may include it under 262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# the same distribution terms that you use for the rest of that program. 272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. 292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectcase $1 in 312068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project '') 322068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "$0: No command. Try \`$0 --help' for more information." 1>&2 332068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit 1; 342068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 352068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -h | --h*) 362068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cat <<\EOF 372068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectUsage: depcomp [--help] [--version] PROGRAM [ARGS] 382068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 392068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectRun PROGRAMS ARGS to compile a file, generating dependencies 402068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectas side-effects. 412068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 422068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectEnvironment variables: 432068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project depmode Dependency tracking mode. 442068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project source Source file read by `PROGRAMS ARGS'. 452068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project object Object file output by `PROGRAMS ARGS'. 462068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project DEPDIR directory where to store dependencies. 472068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project depfile Dependency file to output. 482068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile Temporary file to use when outputing dependencies. 492068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project libtool Whether libtool is used (yes/no). 502068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 512068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectReport bugs to <bug-automake@gnu.org>. 522068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectEOF 532068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $? 542068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 552068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -v | --v*) 562068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "depcomp $scriptversion" 572068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $? 582068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 592068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectesac 602068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 612068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectif test -z "$depmode" || test -z "$source" || test -z "$object"; then 622068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "depcomp: Variables source, object and depmode must be set" 1>&2 632068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit 1 642068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectfi 652068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 662068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. 672068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectdepfile=${depfile-`echo "$object" | 682068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 692068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projecttmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 702068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 712068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectrm -f "$tmpdepfile" 722068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 732068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Some modes work just like other modes, but use different flags. We 742068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# parameterize here, but still list the modes in the big case below, 752068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# to make depend.m4 easier to write. Note that we *cannot* use a case 762068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# here, because this file can only contain one case statement. 772068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectif test "$depmode" = hp; then 782068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # HP compiler uses -M and no extra arg. 792068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project gccflag=-M 802068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project depmode=gcc 812068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectfi 822068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 832068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectif test "$depmode" = dashXmstdout; then 842068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # This is just like dashmstdout with a different argument. 852068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project dashmflag=-xM 862068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project depmode=dashmstdout 872068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectfi 882068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 892068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectcase "$depmode" in 902068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectgcc3) 912068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## gcc 3 implements dependency tracking that does exactly what 922068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## we want. Yay! Note: for some reason libtool 1.4 doesn't like 932068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## it if -MD -MP comes after the -MF stuff. Hmm. 942068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" 952068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stat=$? 962068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test $stat -eq 0; then : 972068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 982068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 992068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $stat 1002068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 1012068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project mv "$tmpdepfile" "$depfile" 1022068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 1032068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 1042068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectgcc) 1052068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## There are various ways to get dependency output from gcc. Here's 1062068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## why we pick this rather obscure method: 1072068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## - Don't want to use -MD because we'd like the dependencies to end 1082068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## up in a subdir. Having to rename by hand is ugly. 1092068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## (We might end up doing this anyway to support other compilers.) 1102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 1112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## -MM, not -M (despite what the docs say). 1122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## - Using -M directly means running the compiler twice (even worse 1132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## than renaming). 1142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test -z "$gccflag"; then 1152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project gccflag=-MD, 1162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 1172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -Wp,"$gccflag$tmpdepfile" 1182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stat=$? 1192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test $stat -eq 0; then : 1202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 1212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 1222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $stat 1232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 1242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$depfile" 1252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "$object : \\" > "$depfile" 1262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 1272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## The second -e expression handles DOS-style file names with drive letters. 1282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e 's/^[^:]*: / /' \ 1292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 1302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## This next piece of magic avoids the `deleted header file' problem. 1312068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## The problem is that when a header file which appears in a .P file 1322068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## is deleted, the dependency causes make to die (because there is 1332068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## typically no way to rebuild the header). We avoid this by adding 1342068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## dummy dependencies for each header file. Too bad gcc doesn't do 1352068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## this for us directly. 1362068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tr ' ' ' 1372068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project' < "$tmpdepfile" | 1382068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## Some versions of gcc put a space before the `:'. On the theory 1392068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## that the space means something, we add a space to the output as 1402068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## well. 1412068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## Some versions of the HPUX 10.20 sed can't process this invocation 1422068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## correctly. Breaking it into two sed invocations is a workaround. 1432068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 1442068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 1452068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 1462068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 1472068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projecthp) 1482068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # This case exists only to let depend.m4 do its work. It works by 1492068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # looking at the text of this script. This case will never be run, 1502068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # since it is checked for above. 1512068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit 1 1522068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 1532068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 1542068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectsgi) 1552068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test "$libtool" = yes; then 1562068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" "-Wp,-MDupdate,$tmpdepfile" 1572068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 1582068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -MDupdate "$tmpdepfile" 1592068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 1602068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stat=$? 1612068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test $stat -eq 0; then : 1622068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 1632068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 1642068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $stat 1652068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 1662068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$depfile" 1672068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 1682068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 1692068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "$object : \\" > "$depfile" 1702068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 1712068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Clip off the initial element (the dependent). Don't try to be 1722068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # clever and replace this with sed code, as IRIX sed won't handle 1732068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # lines with more than a fixed number of characters (4096 in 1742068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 1752068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # the IRIX cc adds comments like `#:fec' to the end of the 1762068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # dependency line. 1772068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tr ' ' ' 1782068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project' < "$tmpdepfile" \ 1792068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 1802068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tr ' 1812068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project' ' ' >> $depfile 1822068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo >> $depfile 1832068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 1842068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # The second pass generates a dummy entry for each header file. 1852068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tr ' ' ' 1862068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project' < "$tmpdepfile" \ 1872068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 1882068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project >> $depfile 1892068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 1902068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # The sourcefile does not contain any dependencies, so just 1912068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # store a dummy comment line, to avoid errors with the Makefile 1922068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # "include basename.Plo" scheme. 1932068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "#dummy" > "$depfile" 1942068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 1952068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 1962068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 1972068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 1982068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectaix) 1992068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # The C for AIX Compiler uses -M and outputs the dependencies 2002068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # in a .u file. In older versions, this file always lives in the 2012068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # current directory. Also, the AIX compiler puts `$object:' at the 2022068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # start of each line; $object doesn't have directory information. 2032068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Version 6 uses the directory in both cases. 2042068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` 2052068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile="$stripped.u" 2062068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test "$libtool" = yes; then 2072068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -Wc,-M 2082068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 2092068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -M 2102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 2112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stat=$? 2122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 2132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test -f "$tmpdepfile"; then : 2142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 2152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stripped=`echo "$stripped" | sed 's,^.*/,,'` 2162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile="$stripped.u" 2172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 2182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 2192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test $stat -eq 0; then : 2202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 2212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 2222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $stat 2232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 2242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 2252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test -f "$tmpdepfile"; then 2262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project outname="$stripped.o" 2272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Each line is of the form `foo.o: dependent.h'. 2282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Do two passes, one to just change these to 2292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # `$object: dependent.h' and one to simply `dependent.h:'. 2302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" 2312068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" 2322068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 2332068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # The sourcefile does not contain any dependencies, so just 2342068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # store a dummy comment line, to avoid errors with the Makefile 2352068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # "include basename.Plo" scheme. 2362068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "#dummy" > "$depfile" 2372068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 2382068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 2392068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 2402068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 2412068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projecticc) 2422068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Intel's C compiler understands `-MD -MF file'. However on 2432068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 2442068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # ICC 7.0 will fill foo.d with something like 2452068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # foo.o: sub/foo.c 2462068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # foo.o: sub/foo.h 2472068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # which is wrong. We want: 2482068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # sub/foo.o: sub/foo.c 2492068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # sub/foo.o: sub/foo.h 2502068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # sub/foo.c: 2512068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # sub/foo.h: 2522068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # ICC 7.1 will output 2532068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # foo.o: sub/foo.c sub/foo.h 2542068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # and will wrap long lines using \ : 2552068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # foo.o: sub/foo.c ... \ 2562068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # sub/foo.h ... \ 2572068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # ... 2582068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 2592068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -MD -MF "$tmpdepfile" 2602068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stat=$? 2612068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test $stat -eq 0; then : 2622068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 2632068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 2642068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $stat 2652068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 2662068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$depfile" 2672068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Each line is of the form `foo.o: dependent.h', 2682068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 2692068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Do two passes, one to just change these to 2702068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # `$object: dependent.h' and one to simply `dependent.h:'. 2712068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 2722068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Some versions of the HPUX 10.20 sed can't process this invocation 2732068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # correctly. Breaking it into two sed invocations is a workaround. 2742068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 2752068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e 's/$/ :/' >> "$depfile" 2762068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 2772068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 2782068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 2792068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projecttru64) 2802068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # The Tru64 compiler uses -MD to generate dependencies as a side 2812068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 2822068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 2832068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # dependencies in `foo.d' instead, so we check for that too. 2842068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Subdirectories are respected. 2852068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 2862068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project test "x$dir" = "x$object" && dir= 2872068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 2882068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 2892068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test "$libtool" = yes; then 2902068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # With Tru64 cc, shared objects can also be used to make a 2912068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # static library. This mecanism is used in libtool 1.4 series to 2922068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # handle both shared and static libraries in a single compilation. 2932068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. 2942068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # 2952068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # With libtool 1.5 this exception was removed, and libtool now 2962068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # generates 2 separate objects for the 2 libraries. These two 2972068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # compilations output dependencies in in $dir.libs/$base.o.d and 2982068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # in $dir$base.o.d. We have to check for both files, because 2992068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # one of the two compilations can be disabled. We should prefer 3002068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # $dir$base.o.d over $dir.libs/$base.o.d because the latter is 3012068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # automatically cleaned when .libs/ is deleted, while ignoring 3022068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # the former would cause a distcleancheck panic. 3032068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 3042068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile2=$dir$base.o.d # libtool 1.5 3052068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 3062068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 3072068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -Wc,-MD 3082068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 3092068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile1=$dir$base.o.d 3102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile2=$dir$base.d 3112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile3=$dir$base.d 3122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tmpdepfile4=$dir$base.d 3132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -MD 3142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 3152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project stat=$? 3172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test $stat -eq 0; then : 3182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 3192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 3202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit $stat 3212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 3222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 3242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project do 3252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project test -f "$tmpdepfile" && break 3262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 3272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test -f "$tmpdepfile"; then 3282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 3292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # That's a tab and a space in the []. 3302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 3312068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project else 3322068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "#dummy" > "$depfile" 3332068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 3342068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 3352068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 3362068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3372068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project#nosideeffect) 3382068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # This comment above is used by automake to tell side-effect 3392068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # dependency tracking mechanisms from slower ones. 3402068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3412068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectdashmstdout) 3422068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Important note: in order to support this mode, a compiler *must* 3432068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # always write the preprocessed file to stdout, regardless of -o. 3442068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" || exit $? 3452068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3462068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Remove the call to Libtool. 3472068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test "$libtool" = yes; then 3482068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project while test $1 != '--mode=compile'; do 3492068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 3502068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 3512068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 3522068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 3532068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3542068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Remove `-o $object'. 3552068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project IFS=" " 3562068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project for arg 3572068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project do 3582068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project case $arg in 3592068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -o) 3602068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 3612068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 3622068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project $object) 3632068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 3642068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 3652068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project *) 3662068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project set fnord "$@" "$arg" 3672068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift # fnord 3682068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift # $arg 3692068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 3702068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project esac 3712068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 3722068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3732068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project test -z "$dashmflag" && dashmflag=-M 3742068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Require at least two characters before searching for `:' 3752068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # in the target name. This is to cope with DOS-style filenames: 3762068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 3772068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" $dashmflag | 3782068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 3792068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$depfile" 3802068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cat < "$tmpdepfile" > "$depfile" 3812068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project tr ' ' ' 3822068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project' < "$tmpdepfile" | \ 3832068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## Some versions of the HPUX 10.20 sed can't process this invocation 3842068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## correctly. Breaking it into two sed invocations is a workaround. 3852068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 3862068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 3872068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 3882068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3892068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectdashXmstdout) 3902068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # This case only exists to satisfy depend.m4. It is never actually 3912068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # run, as this mode is specially recognized in the preamble. 3922068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit 1 3932068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 3942068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 3952068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectmakedepend) 3962068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" || exit $? 3972068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Remove any Libtool call 3982068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test "$libtool" = yes; then 3992068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project while test $1 != '--mode=compile'; do 4002068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4012068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 4022068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4032068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 4042068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # X makedepend 4052068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4062068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cleared=no 4072068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project for arg in "$@"; do 4082068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project case $cleared in 4092068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project no) 4102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project set ""; shift 4112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cleared=yes ;; 4122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project esac 4132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project case "$arg" in 4142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -D*|-I*) 4152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project set fnord "$@" "$arg"; shift ;; 4162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Strip any option that makedepend may not understand. Remove 4172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # the object too, otherwise makedepend will parse it as a source file. 4182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -*|$object) 4192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project *) 4212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project set fnord "$@" "$arg"; shift ;; 4222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project esac 4232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 4242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project obj_suffix="`echo $object | sed 's/^.*\././'`" 4252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project touch "$tmpdepfile" 4262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 4272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$depfile" 4282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cat < "$tmpdepfile" > "$depfile" 4292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed '1,2d' "$tmpdepfile" | tr ' ' ' 4302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project' | \ 4312068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## Some versions of the HPUX 10.20 sed can't process this invocation 4322068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project## correctly. Breaking it into two sed invocations is a workaround. 4332068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 4342068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" "$tmpdepfile".bak 4352068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4362068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 4372068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectcpp) 4382068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Important note: in order to support this mode, a compiler *must* 4392068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # always write the preprocessed file to stdout. 4402068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" || exit $? 4412068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 4422068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Remove the call to Libtool. 4432068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project if test "$libtool" = yes; then 4442068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project while test $1 != '--mode=compile'; do 4452068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4462068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 4472068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4482068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project fi 4492068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 4502068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Remove `-o $object'. 4512068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project IFS=" " 4522068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project for arg 4532068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project do 4542068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project case $arg in 4552068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -o) 4562068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4572068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4582068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project $object) 4592068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4602068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4612068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project *) 4622068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project set fnord "$@" "$arg" 4632068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift # fnord 4642068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift # $arg 4652068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4662068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project esac 4672068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 4682068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 4692068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -E | 4702068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ 4712068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 4722068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed '$ s: \\$::' > "$tmpdepfile" 4732068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$depfile" 4742068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "$object : \\" > "$depfile" 4752068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project cat < "$tmpdepfile" >> "$depfile" 4762068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 4772068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 4782068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4792068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 4802068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectmsvisualcpp) 4812068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # Important note: in order to support this mode, a compiler *must* 4822068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # always write the preprocessed file to stdout, regardless of -o, 4832068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project # because we must use -o when running libtool. 4842068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" || exit $? 4852068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project IFS=" " 4862068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project for arg 4872068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project do 4882068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project case "$arg" in 4892068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 4902068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project set fnord "$@" 4912068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4922068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4932068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4942068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project *) 4952068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project set fnord "$@" "$arg" 4962068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4972068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project shift 4982068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 4992068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project esac 5002068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project done 5012068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project "$@" -E | 5022068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" 5032068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$depfile" 5042068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "$object : \\" > "$depfile" 5052068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" 5062068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo " " >> "$depfile" 5072068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" 5082068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project rm -f "$tmpdepfile" 5092068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 5102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 5112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectnone) 5122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exec "$@" 5132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 5142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 5152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project*) 5162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project echo "Unknown depmode $depmode" 1>&2 5172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project exit 1 5182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project ;; 5192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectesac 5202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 5212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectexit 0 5222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 5232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Local Variables: 5242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# mode: shell-script 5252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# sh-indentation: 2 5262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# eval: (add-hook 'write-file-hooks 'time-stamp) 5272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# time-stamp-start: "scriptversion=" 5282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# time-stamp-format: "%:y-%02m-%02d.%02H" 5292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# time-stamp-end: "$" 5302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# End: 531