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