| OLD | NEW | 
| (Empty) |  | 
 |    1 #! /bin/sh | 
 |    2 # depcomp - compile a program generating dependencies as side-effects | 
 |    3  | 
 |    4 scriptversion=2007-03-29.01 | 
 |    5  | 
 |    6 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software | 
 |    7 # Foundation, Inc. | 
 |    8  | 
 |    9 # This program is free software; you can redistribute it and/or modify | 
 |   10 # it under the terms of the GNU General Public License as published by | 
 |   11 # the Free Software Foundation; either version 2, or (at your option) | 
 |   12 # any later version. | 
 |   13  | 
 |   14 # This program is distributed in the hope that it will be useful, | 
 |   15 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |   16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |   17 # GNU General Public License for more details. | 
 |   18  | 
 |   19 # You should have received a copy of the GNU General Public License | 
 |   20 # along with this program; if not, write to the Free Software | 
 |   21 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | 
 |   22 # 02110-1301, USA. | 
 |   23  | 
 |   24 # As a special exception to the GNU General Public License, if you | 
 |   25 # distribute this file as part of a program that contains a | 
 |   26 # configuration script generated by Autoconf, you may include it under | 
 |   27 # the same distribution terms that you use for the rest of that program. | 
 |   28  | 
 |   29 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. | 
 |   30  | 
 |   31 case $1 in | 
 |   32   '') | 
 |   33      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2 | 
 |   34      exit 1; | 
 |   35      ;; | 
 |   36   -h | --h*) | 
 |   37     cat <<\EOF | 
 |   38 Usage: depcomp [--help] [--version] PROGRAM [ARGS] | 
 |   39  | 
 |   40 Run PROGRAMS ARGS to compile a file, generating dependencies | 
 |   41 as side-effects. | 
 |   42  | 
 |   43 Environment variables: | 
 |   44   depmode     Dependency tracking mode. | 
 |   45   source      Source file read by `PROGRAMS ARGS'. | 
 |   46   object      Object file output by `PROGRAMS ARGS'. | 
 |   47   DEPDIR      directory where to store dependencies. | 
 |   48   depfile     Dependency file to output. | 
 |   49   tmpdepfile  Temporary file to use when outputing dependencies. | 
 |   50   libtool     Whether libtool is used (yes/no). | 
 |   51  | 
 |   52 Report bugs to <bug-automake@gnu.org>. | 
 |   53 EOF | 
 |   54     exit $? | 
 |   55     ;; | 
 |   56   -v | --v*) | 
 |   57     echo "depcomp $scriptversion" | 
 |   58     exit $? | 
 |   59     ;; | 
 |   60 esac | 
 |   61  | 
 |   62 if test -z "$depmode" || test -z "$source" || test -z "$object"; then | 
 |   63   echo "depcomp: Variables source, object and depmode must be set" 1>&2 | 
 |   64   exit 1 | 
 |   65 fi | 
 |   66  | 
 |   67 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. | 
 |   68 depfile=${depfile-`echo "$object" | | 
 |   69   sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} | 
 |   70 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} | 
 |   71  | 
 |   72 rm -f "$tmpdepfile" | 
 |   73  | 
 |   74 # Some modes work just like other modes, but use different flags.  We | 
 |   75 # parameterize here, but still list the modes in the big case below, | 
 |   76 # to make depend.m4 easier to write.  Note that we *cannot* use a case | 
 |   77 # here, because this file can only contain one case statement. | 
 |   78 if test "$depmode" = hp; then | 
 |   79   # HP compiler uses -M and no extra arg. | 
 |   80   gccflag=-M | 
 |   81   depmode=gcc | 
 |   82 fi | 
 |   83  | 
 |   84 if test "$depmode" = dashXmstdout; then | 
 |   85    # This is just like dashmstdout with a different argument. | 
 |   86    dashmflag=-xM | 
 |   87    depmode=dashmstdout | 
 |   88 fi | 
 |   89  | 
 |   90 case "$depmode" in | 
 |   91 gcc3) | 
 |   92 ## gcc 3 implements dependency tracking that does exactly what | 
 |   93 ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like | 
 |   94 ## it if -MD -MP comes after the -MF stuff.  Hmm. | 
 |   95 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon | 
 |   96 ## the command line argument order; so add the flags where they | 
 |   97 ## appear in depend2.am.  Note that the slowdown incurred here | 
 |   98 ## affects only configure: in makefiles, %FASTDEP% shortcuts this. | 
 |   99   for arg | 
 |  100   do | 
 |  101     case $arg in | 
 |  102     -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; | 
 |  103     *)  set fnord "$@" "$arg" ;; | 
 |  104     esac | 
 |  105     shift # fnord | 
 |  106     shift # $arg | 
 |  107   done | 
 |  108   "$@" | 
 |  109   stat=$? | 
 |  110   if test $stat -eq 0; then : | 
 |  111   else | 
 |  112     rm -f "$tmpdepfile" | 
 |  113     exit $stat | 
 |  114   fi | 
 |  115   mv "$tmpdepfile" "$depfile" | 
 |  116   ;; | 
 |  117  | 
 |  118 gcc) | 
 |  119 ## There are various ways to get dependency output from gcc.  Here's | 
 |  120 ## why we pick this rather obscure method: | 
 |  121 ## - Don't want to use -MD because we'd like the dependencies to end | 
 |  122 ##   up in a subdir.  Having to rename by hand is ugly. | 
 |  123 ##   (We might end up doing this anyway to support other compilers.) | 
 |  124 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like | 
 |  125 ##   -MM, not -M (despite what the docs say). | 
 |  126 ## - Using -M directly means running the compiler twice (even worse | 
 |  127 ##   than renaming). | 
 |  128   if test -z "$gccflag"; then | 
 |  129     gccflag=-MD, | 
 |  130   fi | 
 |  131   "$@" -Wp,"$gccflag$tmpdepfile" | 
 |  132   stat=$? | 
 |  133   if test $stat -eq 0; then : | 
 |  134   else | 
 |  135     rm -f "$tmpdepfile" | 
 |  136     exit $stat | 
 |  137   fi | 
 |  138   rm -f "$depfile" | 
 |  139   echo "$object : \\" > "$depfile" | 
 |  140   alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | 
 |  141 ## The second -e expression handles DOS-style file names with drive letters. | 
 |  142   sed -e 's/^[^:]*: / /' \ | 
 |  143       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" | 
 |  144 ## This next piece of magic avoids the `deleted header file' problem. | 
 |  145 ## The problem is that when a header file which appears in a .P file | 
 |  146 ## is deleted, the dependency causes make to die (because there is | 
 |  147 ## typically no way to rebuild the header).  We avoid this by adding | 
 |  148 ## dummy dependencies for each header file.  Too bad gcc doesn't do | 
 |  149 ## this for us directly. | 
 |  150   tr ' ' ' | 
 |  151 ' < "$tmpdepfile" | | 
 |  152 ## Some versions of gcc put a space before the `:'.  On the theory | 
 |  153 ## that the space means something, we add a space to the output as | 
 |  154 ## well. | 
 |  155 ## Some versions of the HPUX 10.20 sed can't process this invocation | 
 |  156 ## correctly.  Breaking it into two sed invocations is a workaround. | 
 |  157     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | 
 |  158   rm -f "$tmpdepfile" | 
 |  159   ;; | 
 |  160  | 
 |  161 hp) | 
 |  162   # This case exists only to let depend.m4 do its work.  It works by | 
 |  163   # looking at the text of this script.  This case will never be run, | 
 |  164   # since it is checked for above. | 
 |  165   exit 1 | 
 |  166   ;; | 
 |  167  | 
 |  168 sgi) | 
 |  169   if test "$libtool" = yes; then | 
 |  170     "$@" "-Wp,-MDupdate,$tmpdepfile" | 
 |  171   else | 
 |  172     "$@" -MDupdate "$tmpdepfile" | 
 |  173   fi | 
 |  174   stat=$? | 
 |  175   if test $stat -eq 0; then : | 
 |  176   else | 
 |  177     rm -f "$tmpdepfile" | 
 |  178     exit $stat | 
 |  179   fi | 
 |  180   rm -f "$depfile" | 
 |  181  | 
 |  182   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files | 
 |  183     echo "$object : \\" > "$depfile" | 
 |  184  | 
 |  185     # Clip off the initial element (the dependent).  Don't try to be | 
 |  186     # clever and replace this with sed code, as IRIX sed won't handle | 
 |  187     # lines with more than a fixed number of characters (4096 in | 
 |  188     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines; | 
 |  189     # the IRIX cc adds comments like `#:fec' to the end of the | 
 |  190     # dependency line. | 
 |  191     tr ' ' ' | 
 |  192 ' < "$tmpdepfile" \ | 
 |  193     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | 
 |  194     tr ' | 
 |  195 ' ' ' >> $depfile | 
 |  196     echo >> $depfile | 
 |  197  | 
 |  198     # The second pass generates a dummy entry for each header file. | 
 |  199     tr ' ' ' | 
 |  200 ' < "$tmpdepfile" \ | 
 |  201    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | 
 |  202    >> $depfile | 
 |  203   else | 
 |  204     # The sourcefile does not contain any dependencies, so just | 
 |  205     # store a dummy comment line, to avoid errors with the Makefile | 
 |  206     # "include basename.Plo" scheme. | 
 |  207     echo "#dummy" > "$depfile" | 
 |  208   fi | 
 |  209   rm -f "$tmpdepfile" | 
 |  210   ;; | 
 |  211  | 
 |  212 aix) | 
 |  213   # The C for AIX Compiler uses -M and outputs the dependencies | 
 |  214   # in a .u file.  In older versions, this file always lives in the | 
 |  215   # current directory.  Also, the AIX compiler puts `$object:' at the | 
 |  216   # start of each line; $object doesn't have directory information. | 
 |  217   # Version 6 uses the directory in both cases. | 
 |  218   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | 
 |  219   test "x$dir" = "x$object" && dir= | 
 |  220   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | 
 |  221   if test "$libtool" = yes; then | 
 |  222     tmpdepfile1=$dir$base.u | 
 |  223     tmpdepfile2=$base.u | 
 |  224     tmpdepfile3=$dir.libs/$base.u | 
 |  225     "$@" -Wc,-M | 
 |  226   else | 
 |  227     tmpdepfile1=$dir$base.u | 
 |  228     tmpdepfile2=$dir$base.u | 
 |  229     tmpdepfile3=$dir$base.u | 
 |  230     "$@" -M | 
 |  231   fi | 
 |  232   stat=$? | 
 |  233  | 
 |  234   if test $stat -eq 0; then : | 
 |  235   else | 
 |  236     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | 
 |  237     exit $stat | 
 |  238   fi | 
 |  239  | 
 |  240   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | 
 |  241   do | 
 |  242     test -f "$tmpdepfile" && break | 
 |  243   done | 
 |  244   if test -f "$tmpdepfile"; then | 
 |  245     # Each line is of the form `foo.o: dependent.h'. | 
 |  246     # Do two passes, one to just change these to | 
 |  247     # `$object: dependent.h' and one to simply `dependent.h:'. | 
 |  248     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | 
 |  249     # That's a tab and a space in the []. | 
 |  250     sed -e 's,^.*\.[a-z]*:[      ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | 
 |  251   else | 
 |  252     # The sourcefile does not contain any dependencies, so just | 
 |  253     # store a dummy comment line, to avoid errors with the Makefile | 
 |  254     # "include basename.Plo" scheme. | 
 |  255     echo "#dummy" > "$depfile" | 
 |  256   fi | 
 |  257   rm -f "$tmpdepfile" | 
 |  258   ;; | 
 |  259  | 
 |  260 icc) | 
 |  261   # Intel's C compiler understands `-MD -MF file'.  However on | 
 |  262   #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c | 
 |  263   # ICC 7.0 will fill foo.d with something like | 
 |  264   #    foo.o: sub/foo.c | 
 |  265   #    foo.o: sub/foo.h | 
 |  266   # which is wrong.  We want: | 
 |  267   #    sub/foo.o: sub/foo.c | 
 |  268   #    sub/foo.o: sub/foo.h | 
 |  269   #    sub/foo.c: | 
 |  270   #    sub/foo.h: | 
 |  271   # ICC 7.1 will output | 
 |  272   #    foo.o: sub/foo.c sub/foo.h | 
 |  273   # and will wrap long lines using \ : | 
 |  274   #    foo.o: sub/foo.c ... \ | 
 |  275   #     sub/foo.h ... \ | 
 |  276   #     ... | 
 |  277  | 
 |  278   "$@" -MD -MF "$tmpdepfile" | 
 |  279   stat=$? | 
 |  280   if test $stat -eq 0; then : | 
 |  281   else | 
 |  282     rm -f "$tmpdepfile" | 
 |  283     exit $stat | 
 |  284   fi | 
 |  285   rm -f "$depfile" | 
 |  286   # Each line is of the form `foo.o: dependent.h', | 
 |  287   # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. | 
 |  288   # Do two passes, one to just change these to | 
 |  289   # `$object: dependent.h' and one to simply `dependent.h:'. | 
 |  290   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" | 
 |  291   # Some versions of the HPUX 10.20 sed can't process this invocation | 
 |  292   # correctly.  Breaking it into two sed invocations is a workaround. | 
 |  293   sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | | 
 |  294     sed -e 's/$/ :/' >> "$depfile" | 
 |  295   rm -f "$tmpdepfile" | 
 |  296   ;; | 
 |  297  | 
 |  298 hp2) | 
 |  299   # The "hp" stanza above does not work with aCC (C++) and HP's ia64 | 
 |  300   # compilers, which have integrated preprocessors.  The correct option | 
 |  301   # to use with these is +Maked; it writes dependencies to a file named | 
 |  302   # 'foo.d', which lands next to the object file, wherever that | 
 |  303   # happens to be. | 
 |  304   # Much of this is similar to the tru64 case; see comments there. | 
 |  305   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | 
 |  306   test "x$dir" = "x$object" && dir= | 
 |  307   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | 
 |  308   if test "$libtool" = yes; then | 
 |  309     tmpdepfile1=$dir$base.d | 
 |  310     tmpdepfile2=$dir.libs/$base.d | 
 |  311     "$@" -Wc,+Maked | 
 |  312   else | 
 |  313     tmpdepfile1=$dir$base.d | 
 |  314     tmpdepfile2=$dir$base.d | 
 |  315     "$@" +Maked | 
 |  316   fi | 
 |  317   stat=$? | 
 |  318   if test $stat -eq 0; then : | 
 |  319   else | 
 |  320      rm -f "$tmpdepfile1" "$tmpdepfile2" | 
 |  321      exit $stat | 
 |  322   fi | 
 |  323  | 
 |  324   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" | 
 |  325   do | 
 |  326     test -f "$tmpdepfile" && break | 
 |  327   done | 
 |  328   if test -f "$tmpdepfile"; then | 
 |  329     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" | 
 |  330     # Add `dependent.h:' lines. | 
 |  331     sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" | 
 |  332   else | 
 |  333     echo "#dummy" > "$depfile" | 
 |  334   fi | 
 |  335   rm -f "$tmpdepfile" "$tmpdepfile2" | 
 |  336   ;; | 
 |  337  | 
 |  338 tru64) | 
 |  339    # The Tru64 compiler uses -MD to generate dependencies as a side | 
 |  340    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. | 
 |  341    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put | 
 |  342    # dependencies in `foo.d' instead, so we check for that too. | 
 |  343    # Subdirectories are respected. | 
 |  344    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | 
 |  345    test "x$dir" = "x$object" && dir= | 
 |  346    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | 
 |  347  | 
 |  348    if test "$libtool" = yes; then | 
 |  349       # With Tru64 cc, shared objects can also be used to make a | 
 |  350       # static library.  This mechanism is used in libtool 1.4 series to | 
 |  351       # handle both shared and static libraries in a single compilation. | 
 |  352       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | 
 |  353       # | 
 |  354       # With libtool 1.5 this exception was removed, and libtool now | 
 |  355       # generates 2 separate objects for the 2 libraries.  These two | 
 |  356       # compilations output dependencies in $dir.libs/$base.o.d and | 
 |  357       # in $dir$base.o.d.  We have to check for both files, because | 
 |  358       # one of the two compilations can be disabled.  We should prefer | 
 |  359       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is | 
 |  360       # automatically cleaned when .libs/ is deleted, while ignoring | 
 |  361       # the former would cause a distcleancheck panic. | 
 |  362       tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4 | 
 |  363       tmpdepfile2=$dir$base.o.d          # libtool 1.5 | 
 |  364       tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5 | 
 |  365       tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504 | 
 |  366       "$@" -Wc,-MD | 
 |  367    else | 
 |  368       tmpdepfile1=$dir$base.o.d | 
 |  369       tmpdepfile2=$dir$base.d | 
 |  370       tmpdepfile3=$dir$base.d | 
 |  371       tmpdepfile4=$dir$base.d | 
 |  372       "$@" -MD | 
 |  373    fi | 
 |  374  | 
 |  375    stat=$? | 
 |  376    if test $stat -eq 0; then : | 
 |  377    else | 
 |  378       rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | 
 |  379       exit $stat | 
 |  380    fi | 
 |  381  | 
 |  382    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | 
 |  383    do | 
 |  384      test -f "$tmpdepfile" && break | 
 |  385    done | 
 |  386    if test -f "$tmpdepfile"; then | 
 |  387       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | 
 |  388       # That's a tab and a space in the []. | 
 |  389       sed -e 's,^.*\.[a-z]*:[    ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | 
 |  390    else | 
 |  391       echo "#dummy" > "$depfile" | 
 |  392    fi | 
 |  393    rm -f "$tmpdepfile" | 
 |  394    ;; | 
 |  395  | 
 |  396 #nosideeffect) | 
 |  397   # This comment above is used by automake to tell side-effect | 
 |  398   # dependency tracking mechanisms from slower ones. | 
 |  399  | 
 |  400 dashmstdout) | 
 |  401   # Important note: in order to support this mode, a compiler *must* | 
 |  402   # always write the preprocessed file to stdout, regardless of -o. | 
 |  403   "$@" || exit $? | 
 |  404  | 
 |  405   # Remove the call to Libtool. | 
 |  406   if test "$libtool" = yes; then | 
 |  407     while test $1 != '--mode=compile'; do | 
 |  408       shift | 
 |  409     done | 
 |  410     shift | 
 |  411   fi | 
 |  412  | 
 |  413   # Remove `-o $object'. | 
 |  414   IFS=" " | 
 |  415   for arg | 
 |  416   do | 
 |  417     case $arg in | 
 |  418     -o) | 
 |  419       shift | 
 |  420       ;; | 
 |  421     $object) | 
 |  422       shift | 
 |  423       ;; | 
 |  424     *) | 
 |  425       set fnord "$@" "$arg" | 
 |  426       shift # fnord | 
 |  427       shift # $arg | 
 |  428       ;; | 
 |  429     esac | 
 |  430   done | 
 |  431  | 
 |  432   test -z "$dashmflag" && dashmflag=-M | 
 |  433   # Require at least two characters before searching for `:' | 
 |  434   # in the target name.  This is to cope with DOS-style filenames: | 
 |  435   # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. | 
 |  436   "$@" $dashmflag | | 
 |  437     sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile" | 
 |  438   rm -f "$depfile" | 
 |  439   cat < "$tmpdepfile" > "$depfile" | 
 |  440   tr ' ' ' | 
 |  441 ' < "$tmpdepfile" | \ | 
 |  442 ## Some versions of the HPUX 10.20 sed can't process this invocation | 
 |  443 ## correctly.  Breaking it into two sed invocations is a workaround. | 
 |  444     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | 
 |  445   rm -f "$tmpdepfile" | 
 |  446   ;; | 
 |  447  | 
 |  448 dashXmstdout) | 
 |  449   # This case only exists to satisfy depend.m4.  It is never actually | 
 |  450   # run, as this mode is specially recognized in the preamble. | 
 |  451   exit 1 | 
 |  452   ;; | 
 |  453  | 
 |  454 makedepend) | 
 |  455   "$@" || exit $? | 
 |  456   # Remove any Libtool call | 
 |  457   if test "$libtool" = yes; then | 
 |  458     while test $1 != '--mode=compile'; do | 
 |  459       shift | 
 |  460     done | 
 |  461     shift | 
 |  462   fi | 
 |  463   # X makedepend | 
 |  464   shift | 
 |  465   cleared=no | 
 |  466   for arg in "$@"; do | 
 |  467     case $cleared in | 
 |  468     no) | 
 |  469       set ""; shift | 
 |  470       cleared=yes ;; | 
 |  471     esac | 
 |  472     case "$arg" in | 
 |  473     -D*|-I*) | 
 |  474       set fnord "$@" "$arg"; shift ;; | 
 |  475     # Strip any option that makedepend may not understand.  Remove | 
 |  476     # the object too, otherwise makedepend will parse it as a source file. | 
 |  477     -*|$object) | 
 |  478       ;; | 
 |  479     *) | 
 |  480       set fnord "$@" "$arg"; shift ;; | 
 |  481     esac | 
 |  482   done | 
 |  483   obj_suffix="`echo $object | sed 's/^.*\././'`" | 
 |  484   touch "$tmpdepfile" | 
 |  485   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | 
 |  486   rm -f "$depfile" | 
 |  487   cat < "$tmpdepfile" > "$depfile" | 
 |  488   sed '1,2d' "$tmpdepfile" | tr ' ' ' | 
 |  489 ' | \ | 
 |  490 ## Some versions of the HPUX 10.20 sed can't process this invocation | 
 |  491 ## correctly.  Breaking it into two sed invocations is a workaround. | 
 |  492     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | 
 |  493   rm -f "$tmpdepfile" "$tmpdepfile".bak | 
 |  494   ;; | 
 |  495  | 
 |  496 cpp) | 
 |  497   # Important note: in order to support this mode, a compiler *must* | 
 |  498   # always write the preprocessed file to stdout. | 
 |  499   "$@" || exit $? | 
 |  500  | 
 |  501   # Remove the call to Libtool. | 
 |  502   if test "$libtool" = yes; then | 
 |  503     while test $1 != '--mode=compile'; do | 
 |  504       shift | 
 |  505     done | 
 |  506     shift | 
 |  507   fi | 
 |  508  | 
 |  509   # Remove `-o $object'. | 
 |  510   IFS=" " | 
 |  511   for arg | 
 |  512   do | 
 |  513     case $arg in | 
 |  514     -o) | 
 |  515       shift | 
 |  516       ;; | 
 |  517     $object) | 
 |  518       shift | 
 |  519       ;; | 
 |  520     *) | 
 |  521       set fnord "$@" "$arg" | 
 |  522       shift # fnord | 
 |  523       shift # $arg | 
 |  524       ;; | 
 |  525     esac | 
 |  526   done | 
 |  527  | 
 |  528   "$@" -E | | 
 |  529     sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | 
 |  530        -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | | 
 |  531     sed '$ s: \\$::' > "$tmpdepfile" | 
 |  532   rm -f "$depfile" | 
 |  533   echo "$object : \\" > "$depfile" | 
 |  534   cat < "$tmpdepfile" >> "$depfile" | 
 |  535   sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" | 
 |  536   rm -f "$tmpdepfile" | 
 |  537   ;; | 
 |  538  | 
 |  539 msvisualcpp) | 
 |  540   # Important note: in order to support this mode, a compiler *must* | 
 |  541   # always write the preprocessed file to stdout, regardless of -o, | 
 |  542   # because we must use -o when running libtool. | 
 |  543   "$@" || exit $? | 
 |  544   IFS=" " | 
 |  545   for arg | 
 |  546   do | 
 |  547     case "$arg" in | 
 |  548     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") | 
 |  549         set fnord "$@" | 
 |  550         shift | 
 |  551         shift | 
 |  552         ;; | 
 |  553     *) | 
 |  554         set fnord "$@" "$arg" | 
 |  555         shift | 
 |  556         shift | 
 |  557         ;; | 
 |  558     esac | 
 |  559   done | 
 |  560   "$@" -E | | 
 |  561   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | 
     sort | uniq > "$tmpdepfile" | 
 |  562   rm -f "$depfile" | 
 |  563   echo "$object : \\" > "$depfile" | 
 |  564   . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::    \1 \\:p' >> "$de
     pfile" | 
 |  565   echo "        " >> "$depfile" | 
 |  566   . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile
     " | 
 |  567   rm -f "$tmpdepfile" | 
 |  568   ;; | 
 |  569  | 
 |  570 none) | 
 |  571   exec "$@" | 
 |  572   ;; | 
 |  573  | 
 |  574 *) | 
 |  575   echo "Unknown depmode $depmode" 1>&2 | 
 |  576   exit 1 | 
 |  577   ;; | 
 |  578 esac | 
 |  579  | 
 |  580 exit 0 | 
 |  581  | 
 |  582 # Local Variables: | 
 |  583 # mode: shell-script | 
 |  584 # sh-indentation: 2 | 
 |  585 # eval: (add-hook 'write-file-hooks 'time-stamp) | 
 |  586 # time-stamp-start: "scriptversion=" | 
 |  587 # time-stamp-format: "%:y-%02m-%02d.%02H" | 
 |  588 # time-stamp-end: "$" | 
 |  589 # End: | 
| OLD | NEW |