| 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=2012-03-27.16; # UTC | scriptversion=2013-05-30.07; # UTC | |||
| # Copyright (C) 1999-2012 Free Software Foundation, Inc. | # Copyright (C) 1999-2013 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 30 | skipping to change at line 30 | |||
| # 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'. | |||
| skipping to change at line 59 | skipping to change at line 59 | |||
| 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 | |||
| # Get the directory component of the given path, and save it in the | ||||
| # global variables '$dir'. Note that this directory component will | ||||
| # be either empty or ending with a '/' character. This is deliberate. | ||||
| set_dir_from () | ||||
| { | ||||
| case $1 in | ||||
| */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; | ||||
| *) dir=;; | ||||
| esac | ||||
| } | ||||
| # Get the suffix-stripped basename of the given path, and save it the | ||||
| # global variable '$base'. | ||||
| set_base_from () | ||||
| { | ||||
| base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` | ||||
| } | ||||
| # If no dependency file was actually created by the compiler invocation, | ||||
| # we still have to create a dummy depfile, to avoid errors with the | ||||
| # Makefile "include basename.Plo" scheme. | ||||
| make_dummy_depfile () | ||||
| { | ||||
| echo "#dummy" > "$depfile" | ||||
| } | ||||
| # Factor out some common post-processing of the generated depfile. | ||||
| # Requires the auxiliary global variable '$tmpdepfile' to be set. | ||||
| aix_post_process_depfile () | ||||
| { | ||||
| # If the compiler actually managed to produce a dependency file, | ||||
| # post-process it. | ||||
| if test -f "$tmpdepfile"; then | ||||
| # Each line is of the form 'foo.o: dependency.h'. | ||||
| # Do two passes, one to just change these to | ||||
| # $object: dependency.h | ||||
| # and one to simply output | ||||
| # dependency.h: | ||||
| # which is needed to avoid the deleted-header problem. | ||||
| { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" | ||||
| sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" | ||||
| } > "$depfile" | ||||
| rm -f "$tmpdepfile" | ||||
| else | ||||
| make_dummy_depfile | ||||
| fi | ||||
| } | ||||
| # A tabulation character. | # A tabulation character. | |||
| tab=' ' | tab=' ' | |||
| # A newline character. | # A newline character. | |||
| nl=' | nl=' | |||
| ' | ' | |||
| # Character ranges might be problematic outside the C locale. | ||||
| # These definitions help. | ||||
| upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ | ||||
| lower=abcdefghijklmnopqrstuvwxyz | ||||
| digits=0123456789 | ||||
| alpha=${upper}${lower} | ||||
| 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/'`} | |||
| rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
| # Avoid interferences from the environment. | ||||
| gccflag= dashmflag= | ||||
| # Some modes work just like other modes, but use different flags. We | # Some modes work just like other modes, but use different flags. We | |||
| # parameterize here, but still list the modes in the big case below, | # parameterize here, but still list the modes in the big case below, | |||
| # to make depend.m4 easier to write. Note that we *cannot* use a case | # to make depend.m4 easier to write. Note that we *cannot* use a case | |||
| # here, because this file can only contain one case statement. | # here, because this file can only contain one case statement. | |||
| if test "$depmode" = hp; then | if test "$depmode" = hp; then | |||
| # HP compiler uses -M and no extra arg. | # HP compiler uses -M and no extra arg. | |||
| gccflag=-M | gccflag=-M | |||
| depmode=gcc | depmode=gcc | |||
| fi | fi | |||
| if test "$depmode" = dashXmstdout; then | if test "$depmode" = dashXmstdout; then | |||
| # This is just like dashmstdout with a different argument. | # This is just like dashmstdout with a different argument. | |||
| dashmflag=-xM | dashmflag=-xM | |||
| depmode=dashmstdout | depmode=dashmstdout | |||
| fi | fi | |||
| cygpath_u="cygpath -u -f -" | cygpath_u="cygpath -u -f -" | |||
| if test "$depmode" = msvcmsys; then | if test "$depmode" = msvcmsys; then | |||
| # This is just like msvisualcpp but w/o cygpath translation. | # This is just like msvisualcpp 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=msvisualcpp | depmode=msvisualcpp | |||
| 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 | if test "$depmode" = xlc; then | |||
| # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information | # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. | |||
| s. | gccflag=-qmakedep=gcc,-MF | |||
| gccflag=-qmakedep=gcc,-MF | depmode=gcc | |||
| depmode=gcc | ||||
| fi | 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 | |||
| skipping to change at line 136 | skipping to change at line 193 | |||
| do | do | |||
| case $arg in | case $arg in | |||
| -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; | -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; | |||
| *) set fnord "$@" "$arg" ;; | *) set fnord "$@" "$arg" ;; | |||
| esac | esac | |||
| shift # fnord | shift # fnord | |||
| shift # $arg | shift # $arg | |||
| done | done | |||
| "$@" | "$@" | |||
| stat=$? | stat=$? | |||
| if test $stat -eq 0; then : | if test $stat -ne 0; then | |||
| else | ||||
| rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
| exit $stat | exit $stat | |||
| fi | fi | |||
| mv "$tmpdepfile" "$depfile" | mv "$tmpdepfile" "$depfile" | |||
| ;; | ;; | |||
| gcc) | gcc) | |||
| ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. | ||||
| ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. | ||||
| ## (see the conditional assignment to $gccflag above). | ||||
| ## There are various ways to get dependency output from gcc. Here's | ## There are various ways to get dependency output from gcc. Here's | |||
| ## why we pick this rather obscure method: | ## why we pick this rather obscure method: | |||
| ## - Don't want to use -MD because we'd like the dependencies to end | ## - Don't want to use -MD because we'd like the dependencies to end | |||
| ## up in a subdir. Having to rename by hand is ugly. | ## up in a subdir. Having to rename by hand is ugly. | |||
| ## (We might end up doing this anyway to support other compilers.) | ## (We might end up doing this anyway to support other compilers.) | |||
| ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like | ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like | |||
| ## -MM, not -M (despite what the docs say). | ## -MM, not -M (despite what the docs say). Also, it might not be | |||
| ## supported by the other compilers which use the 'gcc' depmode. | ||||
| ## - Using -M directly means running the compiler twice (even worse | ## - Using -M directly means running the compiler twice (even worse | |||
| ## than renaming). | ## than renaming). | |||
| if test -z "$gccflag"; then | if test -z "$gccflag"; then | |||
| gccflag=-MD, | gccflag=-MD, | |||
| fi | fi | |||
| "$@" -Wp,"$gccflag$tmpdepfile" | "$@" -Wp,"$gccflag$tmpdepfile" | |||
| stat=$? | stat=$? | |||
| if test $stat -eq 0; then : | if test $stat -ne 0; then | |||
| 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 | # The second -e expression handles DOS-style file names with drive | |||
| ## The second -e expression handles DOS-style file names with drive letters | # 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 ' ' "$nl" < "$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' \ | tr ' ' "$nl" < "$tmpdepfile" \ | |||
| | sed -e 's/$/ :/' >> "$depfile" | | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | |||
| | sed -e 's/$/ :/' >> "$depfile" | ||||
| rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
| ;; | ;; | |||
| hp) | hp) | |||
| # 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 | |||
| ;; | ;; | |||
| sgi) | sgi) | |||
| if test "$libtool" = yes; then | if test "$libtool" = yes; then | |||
| "$@" "-Wp,-MDupdate,$tmpdepfile" | "$@" "-Wp,-MDupdate,$tmpdepfile" | |||
| else | else | |||
| "$@" -MDupdate "$tmpdepfile" | "$@" -MDupdate "$tmpdepfile" | |||
| fi | fi | |||
| stat=$? | stat=$? | |||
| if test $stat -eq 0; then : | if test $stat -ne 0; then | |||
| else | ||||
| rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
| exit $stat | exit $stat | |||
| 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 ' ' "$nl" < "$tmpdepfile" \ | tr ' ' "$nl" < "$tmpdepfile" \ | |||
| | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | |||
| tr "$nl" ' ' >> "$depfile" | | tr "$nl" ' ' >> "$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 ' ' "$nl" < "$tmpdepfile" \ | tr ' ' "$nl" < "$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 | make_dummy_depfile | |||
| # store a dummy comment line, to avoid errors with the Makefile | ||||
| # "include basename.Plo" scheme. | ||||
| echo "#dummy" > "$depfile" | ||||
| fi | fi | |||
| rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
| ;; | ;; | |||
| xlc) | xlc) | |||
| # 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 | |||
| ;; | ;; | |||
| 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|/[^/]*$|/|'` | set_dir_from "$object" | |||
| test "x$dir" = "x$object" && dir= | set_base_from "$object" | |||
| 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 | |||
| else | else | |||
| tmpdepfile1=$dir$base.u | tmpdepfile1=$dir$base.u | |||
| tmpdepfile2=$dir$base.u | tmpdepfile2=$dir$base.u | |||
| tmpdepfile3=$dir$base.u | tmpdepfile3=$dir$base.u | |||
| "$@" -M | "$@" -M | |||
| fi | fi | |||
| stat=$? | stat=$? | |||
| if test $stat -ne 0; then | ||||
| if test $stat -eq 0; then : | ||||
| 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 | aix_post_process_depfile | |||
| # Each line is of the form 'foo.o: dependent.h'. | ;; | |||
| # Do two passes, one to just change these to | ||||
| # '$object: dependent.h' and one to simply 'dependent.h:'. | tcc) | |||
| sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 | |||
| sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$ | # FIXME: That version still under development at the moment of writing. | |||
| depfile" | # Make that this statement remains true also for stable, released | |||
| else | # versions. | |||
| # The sourcefile does not contain any dependencies, so just | # It will wrap lines (doesn't matter whether long or short) with a | |||
| # store a dummy comment line, to avoid errors with the Makefile | # trailing '\', as in: | |||
| # "include basename.Plo" scheme. | # | |||
| echo "#dummy" > "$depfile" | # foo.o : \ | |||
| # foo.c \ | ||||
| # foo.h \ | ||||
| # | ||||
| # It will put a trailing '\' even on the last line, and will use leading | ||||
| # spaces rather than leading tabs (at least since its commit 0394caf7 | ||||
| # "Emit spaces for -MD"). | ||||
| "$@" -MD -MF "$tmpdepfile" | ||||
| stat=$? | ||||
| if test $stat -ne 0; then | ||||
| rm -f "$tmpdepfile" | ||||
| exit $stat | ||||
| fi | fi | |||
| rm -f "$depfile" | ||||
| # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. | ||||
| # We have to change lines of the first kind to '$object: \'. | ||||
| sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" | ||||
| # And for each line of the second kind, we have to emit a 'dep.h:' | ||||
| # dummy dependency, to avoid the deleted-header problem. | ||||
| sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" | ||||
| rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
| ;; | ;; | |||
| icc) | ## The order of this option in the case statement is important, since the | |||
| # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. | ## shell code in configure will try each of these formats in the order | |||
| # However on | ## listed in this file. A plain '-MD' option would be understood by many | |||
| # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c | ## compilers, so we must ensure this comes after the gcc and icc options. | |||
| # ICC 7.0 will fill foo.d with something like | pgcc) | |||
| # foo.o: sub/foo.c | # Portland's C compiler understands '-MD'. | |||
| # foo.o: sub/foo.h | # Will always output deps to 'file.d' where file is the root name of the | |||
| # which is wrong. We want | # source file under compilation, even if file resides in a subdirectory. | |||
| # sub/foo.o: sub/foo.c | # The object file name does not affect the name of the '.d' file. | |||
| # sub/foo.o: sub/foo.h | # pgcc 10.2 will output | |||
| # sub/foo.c: | ||||
| # sub/foo.h: | ||||
| # 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) | set_dir_from "$object" | |||
| # will emit a similar output, but also prepend the continuation lines | # Use the source, not the object, to determine the base name, since | |||
| # with horizontal tabulation characters. | # that's sadly what pgcc will do too. | |||
| "$@" -MD -MF "$tmpdepfile" | set_base_from "$source" | |||
| stat=$? | tmpdepfile=$base.d | |||
| if test $stat -eq 0; then : | ||||
| else | # For projects that build the same source file twice into different objec | |||
| t | ||||
| # files, the pgcc approach of using the *source* file root name can cause | ||||
| # problems in parallel builds. Use a locking strategy to avoid stomping | ||||
| on | ||||
| # the same $tmpdepfile. | ||||
| lockdir=$base.d-lock | ||||
| trap " | ||||
| echo '$0: caught signal, cleaning up...' >&2 | ||||
| rmdir '$lockdir' | ||||
| exit 1 | ||||
| " 1 2 13 15 | ||||
| numtries=100 | ||||
| i=$numtries | ||||
| while test $i -gt 0; do | ||||
| # mkdir is a portable test-and-set. | ||||
| if mkdir "$lockdir" 2>/dev/null; then | ||||
| # This process acquired the lock. | ||||
| "$@" -MD | ||||
| stat=$? | ||||
| # Release the lock. | ||||
| rmdir "$lockdir" | ||||
| break | ||||
| else | ||||
| # If the lock is being held by a different process, wait | ||||
| # until the winning process is done or we timeout. | ||||
| while test -d "$lockdir" && test $i -gt 0; do | ||||
| sleep 1 | ||||
| i=`expr $i - 1` | ||||
| done | ||||
| fi | ||||
| i=`expr $i - 1` | ||||
| done | ||||
| trap - 1 2 13 15 | ||||
| if test $i -le 0; then | ||||
| echo "$0: failed to acquire lock after $numtries attempts" >&2 | ||||
| echo "$0: check lockdir '$lockdir'" >&2 | ||||
| exit 1 | ||||
| fi | ||||
| if test $stat -ne 0; then | ||||
| 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 -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ | sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" | |||
| < "$tmpdepfile" > "$depfile" | # Some versions of the HPUX 10.20 sed can't process this invocation | |||
| sed ' | # correctly. Breaking it into two sed invocations is a workaround. | |||
| s/[ '"$tab"'][ '"$tab"']*/ /g | sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | |||
| s/^ *// | | sed -e 's/$/ :/' >> "$depfile" | |||
| 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. | |||
| dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | set_dir_from "$object" | |||
| test "x$dir" = "x$object" && dir= | set_base_from "$object" | |||
| 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.d | tmpdepfile1=$dir$base.d | |||
| tmpdepfile2=$dir.libs/$base.d | tmpdepfile2=$dir.libs/$base.d | |||
| "$@" -Wc,+Maked | "$@" -Wc,+Maked | |||
| else | else | |||
| tmpdepfile1=$dir$base.d | tmpdepfile1=$dir$base.d | |||
| tmpdepfile2=$dir$base.d | tmpdepfile2=$dir$base.d | |||
| "$@" +Maked | "$@" +Maked | |||
| fi | fi | |||
| stat=$? | stat=$? | |||
| if test $stat -eq 0; then : | if test $stat -ne 0; then | |||
| else | ||||
| 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,^.*\.[$lower]*:,$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" | make_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|/[^/]*$|/|'` | set_dir_from "$object" | |||
| test "x$dir" = "x$object" && dir= | set_base_from "$object" | |||
| base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||||
| if test "$libtool" = yes; then | ||||
| if test "$libtool" = yes; then | # Libtool generates 2 separate objects for the 2 libraries. These | |||
| # With Tru64 cc, shared objects can also be used to make a | # two compilations output dependencies in $dir.libs/$base.o.d and | |||
| # static library. This mechanism is used in libtool 1.4 series to | # in $dir$base.o.d. We have to check for both files, because | |||
| # handle both shared and static libraries in a single compilation. | # one of the two compilations can be disabled. We should prefer | |||
| # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | # $dir$base.o.d over $dir.libs/$base.o.d because the latter is | |||
| # | # automatically cleaned when .libs/ is deleted, while ignoring | |||
| # With libtool 1.5 this exception was removed, and libtool now | # the former would cause a distcleancheck panic. | |||
| # generates 2 separate objects for the 2 libraries. These two | tmpdepfile1=$dir$base.o.d # libtool 1.5 | |||
| # compilations output dependencies in $dir.libs/$base.o.d and | tmpdepfile2=$dir.libs/$base.o.d # Likewise. | |||
| # in $dir$base.o.d. We have to check for both files, because | tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 | |||
| # one of the two compilations can be disabled. We should prefer | "$@" -Wc,-MD | |||
| # $dir$base.o.d over $dir.libs/$base.o.d because the latter is | else | |||
| # automatically cleaned when .libs/ is deleted, while ignoring | tmpdepfile1=$dir$base.d | |||
| # the former would cause a distcleancheck panic. | tmpdepfile2=$dir$base.d | |||
| tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 | tmpdepfile3=$dir$base.d | |||
| tmpdepfile2=$dir$base.o.d # libtool 1.5 | "$@" -MD | |||
| tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 | fi | |||
| tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 | ||||
| "$@" -Wc,-MD | stat=$? | |||
| else | if test $stat -ne 0; then | |||
| tmpdepfile1=$dir$base.o.d | rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | |||
| tmpdepfile2=$dir$base.d | exit $stat | |||
| tmpdepfile3=$dir$base.d | fi | |||
| tmpdepfile4=$dir$base.d | ||||
| "$@" -MD | ||||
| fi | ||||
| stat=$? | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | |||
| if test $stat -eq 0; then : | do | |||
| else | test -f "$tmpdepfile" && break | |||
| rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | done | |||
| exit $stat | # Same post-processing that is required for AIX mode. | |||
| fi | aix_post_process_depfile | |||
| ;; | ||||
| for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepf | ||||
| ile4" | ||||
| do | ||||
| test -f "$tmpdepfile" && break | ||||
| done | ||||
| if test -f "$tmpdepfile"; then | ||||
| sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | ||||
| sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> | ||||
| "$depfile" | ||||
| else | ||||
| echo "#dummy" > "$depfile" | ||||
| fi | ||||
| rm -f "$tmpdepfile" | ||||
| ;; | ||||
| msvc7) | msvc7) | |||
| if test "$libtool" = yes; then | if test "$libtool" = yes; then | |||
| showIncludes=-Wc,-showIncludes | showIncludes=-Wc,-showIncludes | |||
| else | else | |||
| showIncludes=-showIncludes | showIncludes=-showIncludes | |||
| fi | fi | |||
| "$@" $showIncludes > "$tmpdepfile" | "$@" $showIncludes > "$tmpdepfile" | |||
| stat=$? | stat=$? | |||
| grep -v '^Note: including file: ' "$tmpdepfile" | grep -v '^Note: including file: ' "$tmpdepfile" | |||
| if test "$stat" = 0; then : | if test $stat -ne 0; then | |||
| 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" | |||
| # The first sed program below extracts the file names and escapes | # The first sed program below extracts the file names and escapes | |||
| # backslashes for cygpath. The second sed program outputs the file | # backslashes for cygpath. The second sed program outputs the file | |||
| # 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. | |||
| skipping to change at line 475 | skipping to change at line 555 | |||
| }' | $cygpath_u | sort -u | sed -n ' | }' | $cygpath_u | sort -u | sed -n ' | |||
| s/ /\\ /g | s/ /\\ /g | |||
| s/\(.*\)/'"$tab"'\1 \\/p | s/\(.*\)/'"$tab"'\1 \\/p | |||
| s/.\(.*\) \\/\1:/ | s/.\(.*\) \\/\1:/ | |||
| H | H | |||
| $ { | $ { | |||
| s/.*/'"$tab"'/ | s/.*/'"$tab"'/ | |||
| G | G | |||
| p | p | |||
| }' >> "$depfile" | }' >> "$depfile" | |||
| echo >> "$depfile" # make sure the fragment doesn't end with a backslash | ||||
| 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. | |||
| exit 1 | exit 1 | |||
| ;; | ;; | |||
| skipping to change at line 526 | skipping to change at line 607 | |||
| 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:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" | |||
| rm -f "$depfile" | rm -f "$depfile" | |||
| cat < "$tmpdepfile" > "$depfile" | cat < "$tmpdepfile" > "$depfile" | |||
| tr ' ' "$nl" < "$tmpdepfile" | \ | # Some versions of the HPUX 10.20 sed can't process this sed 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. | tr ' ' "$nl" < "$tmpdepfile" \ | |||
| 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 | |||
| ;; | ;; | |||
| makedepend) | makedepend) | |||
| skipping to change at line 585 | skipping to change at line 667 | |||
| 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 ' ' "$nl" | \ | # Some versions of the HPUX 10.20 sed can't process the last 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 '1,2d' "$tmpdepfile" \ | |||
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile | | tr ' ' "$nl" \ | |||
| " | | 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 | |||
| skipping to change at line 624 | skipping to change at line 708 | |||
| shift | shift | |||
| ;; | ;; | |||
| *) | *) | |||
| set fnord "$@" "$arg" | set fnord "$@" "$arg" | |||
| shift # fnord | shift # fnord | |||
| shift # $arg | shift # $arg | |||
| ;; | ;; | |||
| esac | esac | |||
| done | done | |||
| "$@" -E | | "$@" -E \ | |||
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | |||
| -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | | -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | |||
| sed '$ s: \\$::' > "$tmpdepfile" | | sed '$ s: \\$::' > "$tmpdepfile" | |||
| rm -f "$depfile" | rm -f "$depfile" | |||
| echo "$object : \\" > "$depfile" | echo "$object : \\" > "$depfile" | |||
| cat < "$tmpdepfile" >> "$depfile" | cat < "$tmpdepfile" >> "$depfile" | |||
| sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" | sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" | |||
| rm -f "$tmpdepfile" | rm -f "$tmpdepfile" | |||
| ;; | ;; | |||
| msvisualcpp) | msvisualcpp) | |||
| # 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. | |||
| skipping to change at line 659 | skipping to change at line 743 | |||
| for arg | for arg | |||
| do | do | |||
| case "$arg" in | case "$arg" in | |||
| -o) | -o) | |||
| shift | shift | |||
| ;; | ;; | |||
| $object) | $object) | |||
| shift | shift | |||
| ;; | ;; | |||
| "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") | "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") | |||
| set fnord "$@" | set fnord "$@" | |||
| shift | shift | |||
| shift | shift | |||
| ;; | ;; | |||
| *) | *) | |||
| 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::'"$tab"'\1 \\:p' >> "$depfile" | sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" | |||
| echo "$tab" >> "$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" | |||
| End of changes. 47 change blocks. | ||||
| 191 lines changed or deleted | 270 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/ | ||||