depcomp | depcomp | |||
---|---|---|---|---|
#! /bin/sh | #! /bin/sh | |||
# depcomp - compile a program generating dependencies as side-effects | # depcomp - compile a program generating dependencies as side-effects | |||
scriptversion=2011-12-04.11; # UTC | scriptversion=2012-03-27.16; # UTC | |||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, | # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, | |||
# 2011 Free Software Foundation, Inc. | # 2011, 2012 Free Software Foundation, Inc. | |||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | |||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | |||
# the Free Software Foundation; either version 2, or (at your option) | # the Free Software Foundation; either version 2, or (at your option) | |||
# any later version. | # any later version. | |||
# This program is distributed in the hope that it will be useful, | # This program is distributed in the hope that it will be useful, | |||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
# GNU General Public License for more details. | # GNU General Public License for more details. | |||
skipping to change at line 31 | skipping to change at line 31 | |||
# As a special exception to the GNU General Public License, if you | # As a special exception to the GNU General Public License, if you | |||
# distribute this file as part of a program that contains a | # distribute this file as part of a program that contains a | |||
# configuration script generated by Autoconf, you may include it under | # configuration script generated by Autoconf, you may include it under | |||
# the same distribution terms that you use for the rest of that program. | # the same distribution terms that you use for the rest of that program. | |||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. | # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. | |||
case $1 in | case $1 in | |||
'') | '') | |||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2 | echo "$0: No command. Try '$0 --help' for more information." 1>&2 | |||
exit 1; | exit 1; | |||
;; | ;; | |||
-h | --h*) | -h | --h*) | |||
cat <<\EOF | cat <<\EOF | |||
Usage: depcomp [--help] [--version] PROGRAM [ARGS] | Usage: depcomp [--help] [--version] PROGRAM [ARGS] | |||
Run PROGRAMS ARGS to compile a file, generating dependencies | Run PROGRAMS ARGS to compile a file, generating dependencies | |||
as side-effects. | as side-effects. | |||
Environment variables: | Environment variables: | |||
depmode Dependency tracking mode. | depmode Dependency tracking mode. | |||
source Source file read by `PROGRAMS ARGS'. | source Source file read by 'PROGRAMS ARGS'. | |||
object Object file output by `PROGRAMS ARGS'. | object Object file output by 'PROGRAMS ARGS'. | |||
DEPDIR directory where to store dependencies. | DEPDIR directory where to store dependencies. | |||
depfile Dependency file to output. | depfile Dependency file to output. | |||
tmpdepfile Temporary file to use when outputting dependencies. | tmpdepfile Temporary file to use when outputting dependencies. | |||
libtool Whether libtool is used (yes/no). | libtool Whether libtool is used (yes/no). | |||
Report bugs to <bug-automake@gnu.org>. | Report bugs to <bug-automake@gnu.org>. | |||
EOF | EOF | |||
exit $? | exit $? | |||
;; | ;; | |||
-v | --v*) | -v | --v*) | |||
echo "depcomp $scriptversion" | echo "depcomp $scriptversion" | |||
exit $? | exit $? | |||
;; | ;; | |||
esac | esac | |||
# A tabulation character. | ||||
tab=' ' | ||||
# A newline character. | ||||
nl=' | ||||
' | ||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then | if test -z "$depmode" || test -z "$source" || test -z "$object"; then | |||
echo "depcomp: Variables source, object and depmode must be set" 1>&2 | echo "depcomp: Variables source, object and depmode must be set" 1>&2 | |||
exit 1 | exit 1 | |||
fi | fi | |||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. | # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. | |||
depfile=${depfile-`echo "$object" | | depfile=${depfile-`echo "$object" | | |||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} | |||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} | tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} | |||
skipping to change at line 105 | skipping to change at line 111 | |||
fi | fi | |||
if test "$depmode" = msvc7msys; then | if test "$depmode" = msvc7msys; then | |||
# This is just like msvc7 but w/o cygpath translation. | # This is just like msvc7 but w/o cygpath translation. | |||
# Just convert the backslash-escaped backslashes to single forward | # Just convert the backslash-escaped backslashes to single forward | |||
# slashes to satisfy depend.m4 | # slashes to satisfy depend.m4 | |||
cygpath_u='sed s,\\\\,/,g' | cygpath_u='sed s,\\\\,/,g' | |||
depmode=msvc7 | depmode=msvc7 | |||
fi | fi | |||
if test "$depmode" = xlc; then | ||||
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information | ||||
s. | ||||
gccflag=-qmakedep=gcc,-MF | ||||
depmode=gcc | ||||
fi | ||||
case "$depmode" in | case "$depmode" in | |||
gcc3) | gcc3) | |||
## gcc 3 implements dependency tracking that does exactly what | ## gcc 3 implements dependency tracking that does exactly what | |||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like | ## we want. Yay! Note: for some reason libtool 1.4 doesn't like | |||
## it if -MD -MP comes after the -MF stuff. Hmm. | ## it if -MD -MP comes after the -MF stuff. Hmm. | |||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon | ## Unfortunately, FreeBSD c89 acceptance of flags depends upon | |||
## the command line argument order; so add the flags where they | ## the command line argument order; so add the flags where they | |||
## appear in depend2.am. Note that the slowdown incurred here | ## appear in depend2.am. Note that the slowdown incurred here | |||
## affects only configure: in makefiles, %FASTDEP% shortcuts this. | ## affects only configure: in makefiles, %FASTDEP% shortcuts this. | |||
for arg | for arg | |||
skipping to change at line 159 | skipping to change at line 171 | |||
else | else | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
exit $stat | exit $stat | |||
fi | fi | |||
rm -f "$depfile" | rm -f "$depfile" | |||
echo "$object : \\" > "$depfile" | echo "$object : \\" > "$depfile" | |||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | |||
## The second -e expression handles DOS-style file names with drive letters . | ## The second -e expression handles DOS-style file names with drive letters . | |||
sed -e 's/^[^:]*: / /' \ | sed -e 's/^[^:]*: / /' \ | |||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" | -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" | |||
## This next piece of magic avoids the `deleted header file' problem. | ## This next piece of magic avoids the "deleted header file" problem. | |||
## The problem is that when a header file which appears in a .P file | ## The problem is that when a header file which appears in a .P file | |||
## is deleted, the dependency causes make to die (because there is | ## is deleted, the dependency causes make to die (because there is | |||
## typically no way to rebuild the header). We avoid this by adding | ## typically no way to rebuild the header). We avoid this by adding | |||
## dummy dependencies for each header file. Too bad gcc doesn't do | ## dummy dependencies for each header file. Too bad gcc doesn't do | |||
## this for us directly. | ## this for us directly. | |||
tr ' ' ' | tr ' ' "$nl" < "$tmpdepfile" | | |||
' < "$tmpdepfile" | | ## Some versions of gcc put a space before the ':'. On the theory | |||
## Some versions of gcc put a space before the `:'. On the theory | ||||
## that the space means something, we add a space to the output as | ## that the space means something, we add a space to the output as | |||
## well. hp depmode also adds that space, but also prefixes the VPATH | ## well. hp depmode also adds that space, but also prefixes the VPATH | |||
## to the object. Take care to not repeat it in the output. | ## to the object. Take care to not repeat it in the output. | |||
## Some versions of the HPUX 10.20 sed can't process this invocation | ## Some versions of the HPUX 10.20 sed can't process this invocation | |||
## correctly. Breaking it into two sed invocations is a workaround. | ## correctly. Breaking it into two sed invocations is a workaround. | |||
sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | |||
| sed -e 's/$/ :/' >> "$depfile" | | sed -e 's/$/ :/' >> "$depfile" | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
skipping to change at line 206 | skipping to change at line 217 | |||
fi | fi | |||
rm -f "$depfile" | rm -f "$depfile" | |||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other fil es | if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other fil es | |||
echo "$object : \\" > "$depfile" | echo "$object : \\" > "$depfile" | |||
# Clip off the initial element (the dependent). Don't try to be | # Clip off the initial element (the dependent). Don't try to be | |||
# clever and replace this with sed code, as IRIX sed won't handle | # clever and replace this with sed code, as IRIX sed won't handle | |||
# lines with more than a fixed number of characters (4096 in | # lines with more than a fixed number of characters (4096 in | |||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; | # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; | |||
# the IRIX cc adds comments like `#:fec' to the end of the | # the IRIX cc adds comments like '#:fec' to the end of the | |||
# dependency line. | # dependency line. | |||
tr ' ' ' | tr ' ' "$nl" < "$tmpdepfile" \ | |||
' < "$tmpdepfile" \ | ||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | |||
tr ' | tr "$nl" ' ' >> "$depfile" | |||
' ' ' >> "$depfile" | ||||
echo >> "$depfile" | echo >> "$depfile" | |||
# The second pass generates a dummy entry for each header file. | # The second pass generates a dummy entry for each header file. | |||
tr ' ' ' | tr ' ' "$nl" < "$tmpdepfile" \ | |||
' < "$tmpdepfile" \ | ||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | |||
>> "$depfile" | >> "$depfile" | |||
else | else | |||
# The sourcefile does not contain any dependencies, so just | # The sourcefile does not contain any dependencies, so just | |||
# store a dummy comment line, to avoid errors with the Makefile | # store a dummy comment line, to avoid errors with the Makefile | |||
# "include basename.Plo" scheme. | # "include basename.Plo" scheme. | |||
echo "#dummy" > "$depfile" | echo "#dummy" > "$depfile" | |||
fi | fi | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
xlc) | ||||
# This case exists only to let depend.m4 do its work. It works by | ||||
# looking at the text of this script. This case will never be run, | ||||
# since it is checked for above. | ||||
exit 1 | ||||
;; | ||||
aix) | aix) | |||
# The C for AIX Compiler uses -M and outputs the dependencies | # The C for AIX Compiler uses -M and outputs the dependencies | |||
# in a .u file. In older versions, this file always lives in the | # in a .u file. In older versions, this file always lives in the | |||
# current directory. Also, the AIX compiler puts `$object:' at the | # current directory. Also, the AIX compiler puts '$object:' at the | |||
# start of each line; $object doesn't have directory information. | # start of each line; $object doesn't have directory information. | |||
# Version 6 uses the directory in both cases. | # Version 6 uses the directory in both cases. | |||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | |||
test "x$dir" = "x$object" && dir= | test "x$dir" = "x$object" && dir= | |||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | |||
if test "$libtool" = yes; then | if test "$libtool" = yes; then | |||
tmpdepfile1=$dir$base.u | tmpdepfile1=$dir$base.u | |||
tmpdepfile2=$base.u | tmpdepfile2=$base.u | |||
tmpdepfile3=$dir.libs/$base.u | tmpdepfile3=$dir.libs/$base.u | |||
"$@" -Wc,-M | "$@" -Wc,-M | |||
skipping to change at line 262 | skipping to change at line 277 | |||
else | else | |||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | |||
exit $stat | exit $stat | |||
fi | fi | |||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | |||
do | do | |||
test -f "$tmpdepfile" && break | test -f "$tmpdepfile" && break | |||
done | done | |||
if test -f "$tmpdepfile"; then | if test -f "$tmpdepfile"; then | |||
# Each line is of the form `foo.o: dependent.h'. | # Each line is of the form 'foo.o: dependent.h'. | |||
# Do two passes, one to just change these to | # Do two passes, one to just change these to | |||
# `$object: dependent.h' and one to simply `dependent.h:'. | # '$object: dependent.h' and one to simply 'dependent.h:'. | |||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | |||
# That's a tab and a space in the []. | sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$ | |||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depf | depfile" | |||
ile" | ||||
else | else | |||
# The sourcefile does not contain any dependencies, so just | # The sourcefile does not contain any dependencies, so just | |||
# store a dummy comment line, to avoid errors with the Makefile | # store a dummy comment line, to avoid errors with the Makefile | |||
# "include basename.Plo" scheme. | # "include basename.Plo" scheme. | |||
echo "#dummy" > "$depfile" | echo "#dummy" > "$depfile" | |||
fi | fi | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
icc) | icc) | |||
# Intel's C compiler understands `-MD -MF file'. However on | # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. | |||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c | # However on | |||
# $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c | ||||
# ICC 7.0 will fill foo.d with something like | # ICC 7.0 will fill foo.d with something like | |||
# foo.o: sub/foo.c | # foo.o: sub/foo.c | |||
# foo.o: sub/foo.h | # foo.o: sub/foo.h | |||
# which is wrong. We want: | # which is wrong. We want | |||
# sub/foo.o: sub/foo.c | # sub/foo.o: sub/foo.c | |||
# sub/foo.o: sub/foo.h | # sub/foo.o: sub/foo.h | |||
# sub/foo.c: | # sub/foo.c: | |||
# sub/foo.h: | # sub/foo.h: | |||
# ICC 7.1 will output | # ICC 7.1 will output | |||
# foo.o: sub/foo.c sub/foo.h | # foo.o: sub/foo.c sub/foo.h | |||
# and will wrap long lines using \ : | # and will wrap long lines using '\': | |||
# foo.o: sub/foo.c ... \ | # foo.o: sub/foo.c ... \ | |||
# sub/foo.h ... \ | # sub/foo.h ... \ | |||
# ... | # ... | |||
# tcc 0.9.26 (FIXME still under development at the moment of writing) | ||||
# will emit a similar output, but also prepend the continuation lines | ||||
# with horizontal tabulation characters. | ||||
"$@" -MD -MF "$tmpdepfile" | "$@" -MD -MF "$tmpdepfile" | |||
stat=$? | stat=$? | |||
if test $stat -eq 0; then : | if test $stat -eq 0; then : | |||
else | else | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
exit $stat | exit $stat | |||
fi | fi | |||
rm -f "$depfile" | rm -f "$depfile" | |||
# Each line is of the form `foo.o: dependent.h', | # Each line is of the form 'foo.o: dependent.h', | |||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. | # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. | |||
# Do two passes, one to just change these to | # Do two passes, one to just change these to | |||
# `$object: dependent.h' and one to simply `dependent.h:'. | # '$object: dependent.h' and one to simply 'dependent.h:'. | |||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" | sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ | |||
# Some versions of the HPUX 10.20 sed can't process this invocation | < "$tmpdepfile" > "$depfile" | |||
# correctly. Breaking it into two sed invocations is a workaround. | sed ' | |||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | | s/[ '"$tab"'][ '"$tab"']*/ /g | |||
sed -e 's/$/ :/' >> "$depfile" | s/^ *// | |||
s/ *\\*$// | ||||
s/^[^:]*: *// | ||||
/^$/d | ||||
/:$/d | ||||
s/$/ :/ | ||||
' < "$tmpdepfile" >> "$depfile" | ||||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
hp2) | hp2) | |||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64 | # The "hp" stanza above does not work with aCC (C++) and HP's ia64 | |||
# compilers, which have integrated preprocessors. The correct option | # compilers, which have integrated preprocessors. The correct option | |||
# to use with these is +Maked; it writes dependencies to a file named | # to use with these is +Maked; it writes dependencies to a file named | |||
# 'foo.d', which lands next to the object file, wherever that | # 'foo.d', which lands next to the object file, wherever that | |||
# happens to be. | # happens to be. | |||
# Much of this is similar to the tru64 case; see comments there. | # Much of this is similar to the tru64 case; see comments there. | |||
skipping to change at line 347 | skipping to change at line 370 | |||
rm -f "$tmpdepfile1" "$tmpdepfile2" | rm -f "$tmpdepfile1" "$tmpdepfile2" | |||
exit $stat | exit $stat | |||
fi | fi | |||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" | |||
do | do | |||
test -f "$tmpdepfile" && break | test -f "$tmpdepfile" && break | |||
done | done | |||
if test -f "$tmpdepfile"; then | if test -f "$tmpdepfile"; then | |||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" | sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" | |||
# Add `dependent.h:' lines. | # Add 'dependent.h:' lines. | |||
sed -ne '2,${ | sed -ne '2,${ | |||
s/^ *// | s/^ *// | |||
s/ \\*$// | s/ \\*$// | |||
s/$/:/ | s/$/:/ | |||
p | p | |||
}' "$tmpdepfile" >> "$depfile" | }' "$tmpdepfile" >> "$depfile" | |||
else | else | |||
echo "#dummy" > "$depfile" | echo "#dummy" > "$depfile" | |||
fi | fi | |||
rm -f "$tmpdepfile" "$tmpdepfile2" | rm -f "$tmpdepfile" "$tmpdepfile2" | |||
;; | ;; | |||
tru64) | tru64) | |||
# The Tru64 compiler uses -MD to generate dependencies as a side | # The Tru64 compiler uses -MD to generate dependencies as a side | |||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. | # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. | |||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put | # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put | |||
# dependencies in `foo.d' instead, so we check for that too. | # dependencies in 'foo.d' instead, so we check for that too. | |||
# Subdirectories are respected. | # Subdirectories are respected. | |||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | |||
test "x$dir" = "x$object" && dir= | test "x$dir" = "x$object" && dir= | |||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | |||
if test "$libtool" = yes; then | if test "$libtool" = yes; then | |||
# With Tru64 cc, shared objects can also be used to make a | # With Tru64 cc, shared objects can also be used to make a | |||
# static library. This mechanism is used in libtool 1.4 series to | # static library. This mechanism is used in libtool 1.4 series to | |||
# handle both shared and static libraries in a single compilation. | # handle both shared and static libraries in a single compilation. | |||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | |||
skipping to change at line 410 | skipping to change at line 433 | |||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | |||
exit $stat | exit $stat | |||
fi | fi | |||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepf ile4" | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepf ile4" | |||
do | do | |||
test -f "$tmpdepfile" && break | test -f "$tmpdepfile" && break | |||
done | done | |||
if test -f "$tmpdepfile"; then | if test -f "$tmpdepfile"; then | |||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | |||
# That's a tab and a space in the []. | sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> | |||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depf | "$depfile" | |||
ile" | ||||
else | else | |||
echo "#dummy" > "$depfile" | echo "#dummy" > "$depfile" | |||
fi | fi | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
msvc7) | msvc7) | |||
if test "$libtool" = yes; then | if test "$libtool" = yes; then | |||
showIncludes=-Wc,-showIncludes | showIncludes=-Wc,-showIncludes | |||
else | else | |||
skipping to change at line 446 | skipping to change at line 468 | |||
# name when reading, but also accumulates all include files in the | # name when reading, but also accumulates all include files in the | |||
# hold buffer in order to output them again at the end. This only | # hold buffer in order to output them again at the end. This only | |||
# works with sed implementations that can handle large buffers. | # works with sed implementations that can handle large buffers. | |||
sed < "$tmpdepfile" -n ' | sed < "$tmpdepfile" -n ' | |||
/^Note: including file: *\(.*\)/ { | /^Note: including file: *\(.*\)/ { | |||
s//\1/ | s//\1/ | |||
s/\\/\\\\/g | s/\\/\\\\/g | |||
p | p | |||
}' | $cygpath_u | sort -u | sed -n ' | }' | $cygpath_u | sort -u | sed -n ' | |||
s/ /\\ /g | s/ /\\ /g | |||
s/\(.*\)/ \1 \\/p | s/\(.*\)/'"$tab"'\1 \\/p | |||
s/.\(.*\) \\/\1:/ | s/.\(.*\) \\/\1:/ | |||
H | H | |||
$ { | $ { | |||
s/.*/ / | s/.*/'"$tab"'/ | |||
G | G | |||
p | p | |||
}' >> "$depfile" | }' >> "$depfile" | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
msvc7msys) | msvc7msys) | |||
# This case exists only to let depend.m4 do its work. It works by | # This case exists only to let depend.m4 do its work. It works by | |||
# looking at the text of this script. This case will never be run, | # looking at the text of this script. This case will never be run, | |||
# since it is checked for above. | # since it is checked for above. | |||
skipping to change at line 481 | skipping to change at line 503 | |||
"$@" || exit $? | "$@" || exit $? | |||
# Remove the call to Libtool. | # Remove the call to Libtool. | |||
if test "$libtool" = yes; then | if test "$libtool" = yes; then | |||
while test "X$1" != 'X--mode=compile'; do | while test "X$1" != 'X--mode=compile'; do | |||
shift | shift | |||
done | done | |||
shift | shift | |||
fi | fi | |||
# Remove `-o $object'. | # Remove '-o $object'. | |||
IFS=" " | IFS=" " | |||
for arg | for arg | |||
do | do | |||
case $arg in | case $arg in | |||
-o) | -o) | |||
shift | shift | |||
;; | ;; | |||
$object) | $object) | |||
shift | shift | |||
;; | ;; | |||
*) | *) | |||
set fnord "$@" "$arg" | set fnord "$@" "$arg" | |||
shift # fnord | shift # fnord | |||
shift # $arg | shift # $arg | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
test -z "$dashmflag" && dashmflag=-M | test -z "$dashmflag" && dashmflag=-M | |||
# Require at least two characters before searching for `:' | # Require at least two characters before searching for ':' | |||
# in the target name. This is to cope with DOS-style filenames: | # in the target name. This is to cope with DOS-style filenames: | |||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise . | # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise . | |||
"$@" $dashmflag | | "$@" $dashmflag | | |||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" | sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" | |||
rm -f "$depfile" | rm -f "$depfile" | |||
cat < "$tmpdepfile" > "$depfile" | cat < "$tmpdepfile" > "$depfile" | |||
tr ' ' ' | tr ' ' "$nl" < "$tmpdepfile" | \ | |||
' < "$tmpdepfile" | \ | ||||
## Some versions of the HPUX 10.20 sed can't process this invocation | ## Some versions of the HPUX 10.20 sed can't process this invocation | |||
## correctly. Breaking it into two sed invocations is a workaround. | ## correctly. Breaking it into two sed invocations is a workaround. | |||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile " | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile " | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
dashXmstdout) | dashXmstdout) | |||
# This case only exists to satisfy depend.m4. It is never actually | # This case only exists to satisfy depend.m4. It is never actually | |||
# run, as this mode is specially recognized in the preamble. | # run, as this mode is specially recognized in the preamble. | |||
exit 1 | exit 1 | |||
skipping to change at line 565 | skipping to change at line 586 | |||
set fnord "$@" "$arg"; shift ;; | set fnord "$@" "$arg"; shift ;; | |||
esac | esac | |||
done | done | |||
obj_suffix=`echo "$object" | sed 's/^.*\././'` | obj_suffix=`echo "$object" | sed 's/^.*\././'` | |||
touch "$tmpdepfile" | touch "$tmpdepfile" | |||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | |||
rm -f "$depfile" | rm -f "$depfile" | |||
# makedepend may prepend the VPATH from the source file name to the objec t. | # makedepend may prepend the VPATH from the source file name to the objec t. | |||
# No need to regex-escape $object, excess matching of '.' is harmless. | # No need to regex-escape $object, excess matching of '.' is harmless. | |||
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" | sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" | |||
sed '1,2d' "$tmpdepfile" | tr ' ' ' | sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ | |||
' | \ | ||||
## Some versions of the HPUX 10.20 sed can't process this invocation | ## Some versions of the HPUX 10.20 sed can't process this invocation | |||
## correctly. Breaking it into two sed invocations is a workaround. | ## correctly. Breaking it into two sed invocations is a workaround. | |||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile " | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile " | |||
rm -f "$tmpdepfile" "$tmpdepfile".bak | rm -f "$tmpdepfile" "$tmpdepfile".bak | |||
;; | ;; | |||
cpp) | cpp) | |||
# Important note: in order to support this mode, a compiler *must* | # Important note: in order to support this mode, a compiler *must* | |||
# always write the preprocessed file to stdout. | # always write the preprocessed file to stdout. | |||
"$@" || exit $? | "$@" || exit $? | |||
# Remove the call to Libtool. | # Remove the call to Libtool. | |||
if test "$libtool" = yes; then | if test "$libtool" = yes; then | |||
while test "X$1" != 'X--mode=compile'; do | while test "X$1" != 'X--mode=compile'; do | |||
shift | shift | |||
done | done | |||
shift | shift | |||
fi | fi | |||
# Remove `-o $object'. | # Remove '-o $object'. | |||
IFS=" " | IFS=" " | |||
for arg | for arg | |||
do | do | |||
case $arg in | case $arg in | |||
-o) | -o) | |||
shift | shift | |||
;; | ;; | |||
$object) | $object) | |||
shift | shift | |||
;; | ;; | |||
skipping to change at line 655 | skipping to change at line 675 | |||
set fnord "$@" "$arg" | set fnord "$@" "$arg" | |||
shift | shift | |||
shift | shift | |||
;; | ;; | |||
esac | esac | |||
done | done | |||
"$@" -E 2>/dev/null | | "$@" -E 2>/dev/null | | |||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" | |||
rm -f "$depfile" | rm -f "$depfile" | |||
echo "$object : \\" > "$depfile" | echo "$object : \\" > "$depfile" | |||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> | sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' | |||
"$depfile" | >> "$depfile" | |||
echo " " >> "$depfile" | echo "$tab" >> "$depfile" | |||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depf ile" | sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depf ile" | |||
rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
;; | ;; | |||
msvcmsys) | msvcmsys) | |||
# This case exists only to let depend.m4 do its work. It works by | # This case exists only to let depend.m4 do its work. It works by | |||
# looking at the text of this script. This case will never be run, | # looking at the text of this script. This case will never be run, | |||
# since it is checked for above. | # since it is checked for above. | |||
exit 1 | exit 1 | |||
;; | ;; | |||
End of changes. 37 change blocks. | ||||
55 lines changed or deleted | 76 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |