Blame depcomp

Packit 8a864e
#! /bin/sh
Packit 8a864e
# depcomp - compile a program generating dependencies as side-effects
Packit 8a864e
Packit 8a864e
scriptversion=2005-07-09.11
Packit 8a864e
Packit 8a864e
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
Packit 8a864e
Packit 8a864e
# This program is free software; you can redistribute it and/or modify
Packit 8a864e
# it under the terms of the GNU General Public License as published by
Packit 8a864e
# the Free Software Foundation; either version 2, or (at your option)
Packit 8a864e
# any later version.
Packit 8a864e
Packit 8a864e
# This program is distributed in the hope that it will be useful,
Packit 8a864e
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 8a864e
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 8a864e
# GNU General Public License for more details.
Packit 8a864e
Packit 8a864e
# You should have received a copy of the GNU General Public License
Packit 8a864e
# along with this program; if not, write to the Free Software
Packit 8a864e
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
Packit 8a864e
# 02110-1301, USA.
Packit 8a864e
Packit 8a864e
# As a special exception to the GNU General Public License, if you
Packit 8a864e
# distribute this file as part of a program that contains a
Packit 8a864e
# configuration script generated by Autoconf, you may include it under
Packit 8a864e
# the same distribution terms that you use for the rest of that program.
Packit 8a864e
Packit 8a864e
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
Packit 8a864e
Packit 8a864e
case $1 in
Packit 8a864e
  '')
Packit 8a864e
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
Packit 8a864e
     exit 1;
Packit 8a864e
     ;;
Packit 8a864e
  -h | --h*)
Packit 8a864e
    cat <<\EOF
Packit 8a864e
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Packit 8a864e
Packit 8a864e
Run PROGRAMS ARGS to compile a file, generating dependencies
Packit 8a864e
as side-effects.
Packit 8a864e
Packit 8a864e
Environment variables:
Packit 8a864e
  depmode     Dependency tracking mode.
Packit 8a864e
  source      Source file read by `PROGRAMS ARGS'.
Packit 8a864e
  object      Object file output by `PROGRAMS ARGS'.
Packit 8a864e
  DEPDIR      directory where to store dependencies.
Packit 8a864e
  depfile     Dependency file to output.
Packit 8a864e
  tmpdepfile  Temporary file to use when outputing dependencies.
Packit 8a864e
  libtool     Whether libtool is used (yes/no).
Packit 8a864e
Packit 8a864e
Report bugs to <bug-automake@gnu.org>.
Packit 8a864e
EOF
Packit 8a864e
    exit $?
Packit 8a864e
    ;;
Packit 8a864e
  -v | --v*)
Packit 8a864e
    echo "depcomp $scriptversion"
Packit 8a864e
    exit $?
Packit 8a864e
    ;;
Packit 8a864e
esac
Packit 8a864e
Packit 8a864e
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
Packit 8a864e
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
Packit 8a864e
  exit 1
Packit 8a864e
fi
Packit 8a864e
Packit 8a864e
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
Packit 8a864e
depfile=${depfile-`echo "$object" |
Packit 8a864e
  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
Packit 8a864e
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
Packit 8a864e
Packit 8a864e
rm -f "$tmpdepfile"
Packit 8a864e
Packit 8a864e
# Some modes work just like other modes, but use different flags.  We
Packit 8a864e
# parameterize here, but still list the modes in the big case below,
Packit 8a864e
# to make depend.m4 easier to write.  Note that we *cannot* use a case
Packit 8a864e
# here, because this file can only contain one case statement.
Packit 8a864e
if test "$depmode" = hp; then
Packit 8a864e
  # HP compiler uses -M and no extra arg.
Packit 8a864e
  gccflag=-M
Packit 8a864e
  depmode=gcc
Packit 8a864e
fi
Packit 8a864e
Packit 8a864e
if test "$depmode" = dashXmstdout; then
Packit 8a864e
   # This is just like dashmstdout with a different argument.
Packit 8a864e
   dashmflag=-xM
Packit 8a864e
   depmode=dashmstdout
Packit 8a864e
fi
Packit 8a864e
Packit 8a864e
case "$depmode" in
Packit 8a864e
gcc3)
Packit 8a864e
## gcc 3 implements dependency tracking that does exactly what
Packit 8a864e
## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
Packit 8a864e
## it if -MD -MP comes after the -MF stuff.  Hmm.
Packit 8a864e
  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
Packit 8a864e
  stat=$?
Packit 8a864e
  if test $stat -eq 0; then :
Packit 8a864e
  else
Packit 8a864e
    rm -f "$tmpdepfile"
Packit 8a864e
    exit $stat
Packit 8a864e
  fi
Packit 8a864e
  mv "$tmpdepfile" "$depfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
gcc)
Packit 8a864e
## There are various ways to get dependency output from gcc.  Here's
Packit 8a864e
## why we pick this rather obscure method:
Packit 8a864e
## - Don't want to use -MD because we'd like the dependencies to end
Packit 8a864e
##   up in a subdir.  Having to rename by hand is ugly.
Packit 8a864e
##   (We might end up doing this anyway to support other compilers.)
Packit 8a864e
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
Packit 8a864e
##   -MM, not -M (despite what the docs say).
Packit 8a864e
## - Using -M directly means running the compiler twice (even worse
Packit 8a864e
##   than renaming).
Packit 8a864e
  if test -z "$gccflag"; then
Packit 8a864e
    gccflag=-MD,
Packit 8a864e
  fi
Packit 8a864e
  "$@" -Wp,"$gccflag$tmpdepfile"
Packit 8a864e
  stat=$?
Packit 8a864e
  if test $stat -eq 0; then :
Packit 8a864e
  else
Packit 8a864e
    rm -f "$tmpdepfile"
Packit 8a864e
    exit $stat
Packit 8a864e
  fi
Packit 8a864e
  rm -f "$depfile"
Packit 8a864e
  echo "$object : \\" > "$depfile"
Packit 8a864e
  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Packit 8a864e
## The second -e expression handles DOS-style file names with drive letters.
Packit 8a864e
  sed -e 's/^[^:]*: / /' \
Packit 8a864e
      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
Packit 8a864e
## This next piece of magic avoids the `deleted header file' problem.
Packit 8a864e
## The problem is that when a header file which appears in a .P file
Packit 8a864e
## is deleted, the dependency causes make to die (because there is
Packit 8a864e
## typically no way to rebuild the header).  We avoid this by adding
Packit 8a864e
## dummy dependencies for each header file.  Too bad gcc doesn't do
Packit 8a864e
## this for us directly.
Packit 8a864e
  tr ' ' '
Packit 8a864e
' < "$tmpdepfile" |
Packit 8a864e
## Some versions of gcc put a space before the `:'.  On the theory
Packit 8a864e
## that the space means something, we add a space to the output as
Packit 8a864e
## well.
Packit 8a864e
## Some versions of the HPUX 10.20 sed can't process this invocation
Packit 8a864e
## correctly.  Breaking it into two sed invocations is a workaround.
Packit 8a864e
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
Packit 8a864e
  rm -f "$tmpdepfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
hp)
Packit 8a864e
  # This case exists only to let depend.m4 do its work.  It works by
Packit 8a864e
  # looking at the text of this script.  This case will never be run,
Packit 8a864e
  # since it is checked for above.
Packit 8a864e
  exit 1
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
sgi)
Packit 8a864e
  if test "$libtool" = yes; then
Packit 8a864e
    "$@" "-Wp,-MDupdate,$tmpdepfile"
Packit 8a864e
  else
Packit 8a864e
    "$@" -MDupdate "$tmpdepfile"
Packit 8a864e
  fi
Packit 8a864e
  stat=$?
Packit 8a864e
  if test $stat -eq 0; then :
Packit 8a864e
  else
Packit 8a864e
    rm -f "$tmpdepfile"
Packit 8a864e
    exit $stat
Packit 8a864e
  fi
Packit 8a864e
  rm -f "$depfile"
Packit 8a864e
Packit 8a864e
  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
Packit 8a864e
    echo "$object : \\" > "$depfile"
Packit 8a864e
Packit 8a864e
    # Clip off the initial element (the dependent).  Don't try to be
Packit 8a864e
    # clever and replace this with sed code, as IRIX sed won't handle
Packit 8a864e
    # lines with more than a fixed number of characters (4096 in
Packit 8a864e
    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
Packit 8a864e
    # the IRIX cc adds comments like `#:fec' to the end of the
Packit 8a864e
    # dependency line.
Packit 8a864e
    tr ' ' '
Packit 8a864e
' < "$tmpdepfile" \
Packit 8a864e
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
Packit 8a864e
    tr '
Packit 8a864e
' ' ' >> $depfile
Packit 8a864e
    echo >> $depfile
Packit 8a864e
Packit 8a864e
    # The second pass generates a dummy entry for each header file.
Packit 8a864e
    tr ' ' '
Packit 8a864e
' < "$tmpdepfile" \
Packit 8a864e
   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
Packit 8a864e
   >> $depfile
Packit 8a864e
  else
Packit 8a864e
    # The sourcefile does not contain any dependencies, so just
Packit 8a864e
    # store a dummy comment line, to avoid errors with the Makefile
Packit 8a864e
    # "include basename.Plo" scheme.
Packit 8a864e
    echo "#dummy" > "$depfile"
Packit 8a864e
  fi
Packit 8a864e
  rm -f "$tmpdepfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
aix)
Packit 8a864e
  # The C for AIX Compiler uses -M and outputs the dependencies
Packit 8a864e
  # in a .u file.  In older versions, this file always lives in the
Packit 8a864e
  # current directory.  Also, the AIX compiler puts `$object:' at the
Packit 8a864e
  # start of each line; $object doesn't have directory information.
Packit 8a864e
  # Version 6 uses the directory in both cases.
Packit 8a864e
  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
Packit 8a864e
  tmpdepfile="$stripped.u"
Packit 8a864e
  if test "$libtool" = yes; then
Packit 8a864e
    "$@" -Wc,-M
Packit 8a864e
  else
Packit 8a864e
    "$@" -M
Packit 8a864e
  fi
Packit 8a864e
  stat=$?
Packit 8a864e
Packit 8a864e
  if test -f "$tmpdepfile"; then :
Packit 8a864e
  else
Packit 8a864e
    stripped=`echo "$stripped" | sed 's,^.*/,,'`
Packit 8a864e
    tmpdepfile="$stripped.u"
Packit 8a864e
  fi
Packit 8a864e
Packit 8a864e
  if test $stat -eq 0; then :
Packit 8a864e
  else
Packit 8a864e
    rm -f "$tmpdepfile"
Packit 8a864e
    exit $stat
Packit 8a864e
  fi
Packit 8a864e
Packit 8a864e
  if test -f "$tmpdepfile"; then
Packit 8a864e
    outname="$stripped.o"
Packit 8a864e
    # Each line is of the form `foo.o: dependent.h'.
Packit 8a864e
    # Do two passes, one to just change these to
Packit 8a864e
    # `$object: dependent.h' and one to simply `dependent.h:'.
Packit 8a864e
    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
Packit 8a864e
    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
Packit 8a864e
  else
Packit 8a864e
    # The sourcefile does not contain any dependencies, so just
Packit 8a864e
    # store a dummy comment line, to avoid errors with the Makefile
Packit 8a864e
    # "include basename.Plo" scheme.
Packit 8a864e
    echo "#dummy" > "$depfile"
Packit 8a864e
  fi
Packit 8a864e
  rm -f "$tmpdepfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
icc)
Packit 8a864e
  # Intel's C compiler understands `-MD -MF file'.  However on
Packit 8a864e
  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
Packit 8a864e
  # ICC 7.0 will fill foo.d with something like
Packit 8a864e
  #    foo.o: sub/foo.c
Packit 8a864e
  #    foo.o: sub/foo.h
Packit 8a864e
  # which is wrong.  We want:
Packit 8a864e
  #    sub/foo.o: sub/foo.c
Packit 8a864e
  #    sub/foo.o: sub/foo.h
Packit 8a864e
  #    sub/foo.c:
Packit 8a864e
  #    sub/foo.h:
Packit 8a864e
  # ICC 7.1 will output
Packit 8a864e
  #    foo.o: sub/foo.c sub/foo.h
Packit 8a864e
  # and will wrap long lines using \ :
Packit 8a864e
  #    foo.o: sub/foo.c ... \
Packit 8a864e
  #     sub/foo.h ... \
Packit 8a864e
  #     ...
Packit 8a864e
Packit 8a864e
  "$@" -MD -MF "$tmpdepfile"
Packit 8a864e
  stat=$?
Packit 8a864e
  if test $stat -eq 0; then :
Packit 8a864e
  else
Packit 8a864e
    rm -f "$tmpdepfile"
Packit 8a864e
    exit $stat
Packit 8a864e
  fi
Packit 8a864e
  rm -f "$depfile"
Packit 8a864e
  # Each line is of the form `foo.o: dependent.h',
Packit 8a864e
  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
Packit 8a864e
  # Do two passes, one to just change these to
Packit 8a864e
  # `$object: dependent.h' and one to simply `dependent.h:'.
Packit 8a864e
  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
Packit 8a864e
  # Some versions of the HPUX 10.20 sed can't process this invocation
Packit 8a864e
  # correctly.  Breaking it into two sed invocations is a workaround.
Packit 8a864e
  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
Packit 8a864e
    sed -e 's/$/ :/' >> "$depfile"
Packit 8a864e
  rm -f "$tmpdepfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
tru64)
Packit 8a864e
   # The Tru64 compiler uses -MD to generate dependencies as a side
Packit 8a864e
   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
Packit 8a864e
   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
Packit 8a864e
   # dependencies in `foo.d' instead, so we check for that too.
Packit 8a864e
   # Subdirectories are respected.
Packit 8a864e
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
Packit 8a864e
   test "x$dir" = "x$object" && dir=
Packit 8a864e
   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
Packit 8a864e
Packit 8a864e
   if test "$libtool" = yes; then
Packit 8a864e
      # With Tru64 cc, shared objects can also be used to make a
Packit 8a864e
      # static library.  This mecanism is used in libtool 1.4 series to
Packit 8a864e
      # handle both shared and static libraries in a single compilation.
Packit 8a864e
      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
Packit 8a864e
      #
Packit 8a864e
      # With libtool 1.5 this exception was removed, and libtool now
Packit 8a864e
      # generates 2 separate objects for the 2 libraries.  These two
Packit 8a864e
      # compilations output dependencies in in $dir.libs/$base.o.d and
Packit 8a864e
      # in $dir$base.o.d.  We have to check for both files, because
Packit 8a864e
      # one of the two compilations can be disabled.  We should prefer
Packit 8a864e
      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
Packit 8a864e
      # automatically cleaned when .libs/ is deleted, while ignoring
Packit 8a864e
      # the former would cause a distcleancheck panic.
Packit 8a864e
      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
Packit 8a864e
      tmpdepfile2=$dir$base.o.d          # libtool 1.5
Packit 8a864e
      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
Packit 8a864e
      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
Packit 8a864e
      "$@" -Wc,-MD
Packit 8a864e
   else
Packit 8a864e
      tmpdepfile1=$dir$base.o.d
Packit 8a864e
      tmpdepfile2=$dir$base.d
Packit 8a864e
      tmpdepfile3=$dir$base.d
Packit 8a864e
      tmpdepfile4=$dir$base.d
Packit 8a864e
      "$@" -MD
Packit 8a864e
   fi
Packit 8a864e
Packit 8a864e
   stat=$?
Packit 8a864e
   if test $stat -eq 0; then :
Packit 8a864e
   else
Packit 8a864e
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
Packit 8a864e
      exit $stat
Packit 8a864e
   fi
Packit 8a864e
Packit 8a864e
   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
Packit 8a864e
   do
Packit 8a864e
     test -f "$tmpdepfile" && break
Packit 8a864e
   done
Packit 8a864e
   if test -f "$tmpdepfile"; then
Packit 8a864e
      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
Packit 8a864e
      # That's a tab and a space in the [].
Packit 8a864e
      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
Packit 8a864e
   else
Packit 8a864e
      echo "#dummy" > "$depfile"
Packit 8a864e
   fi
Packit 8a864e
   rm -f "$tmpdepfile"
Packit 8a864e
   ;;
Packit 8a864e
Packit 8a864e
#nosideeffect)
Packit 8a864e
  # This comment above is used by automake to tell side-effect
Packit 8a864e
  # dependency tracking mechanisms from slower ones.
Packit 8a864e
Packit 8a864e
dashmstdout)
Packit 8a864e
  # Important note: in order to support this mode, a compiler *must*
Packit 8a864e
  # always write the preprocessed file to stdout, regardless of -o.
Packit 8a864e
  "$@" || exit $?
Packit 8a864e
Packit 8a864e
  # Remove the call to Libtool.
Packit 8a864e
  if test "$libtool" = yes; then
Packit 8a864e
    while test $1 != '--mode=compile'; do
Packit 8a864e
      shift
Packit 8a864e
    done
Packit 8a864e
    shift
Packit 8a864e
  fi
Packit 8a864e
Packit 8a864e
  # Remove `-o $object'.
Packit 8a864e
  IFS=" "
Packit 8a864e
  for arg
Packit 8a864e
  do
Packit 8a864e
    case $arg in
Packit 8a864e
    -o)
Packit 8a864e
      shift
Packit 8a864e
      ;;
Packit 8a864e
    $object)
Packit 8a864e
      shift
Packit 8a864e
      ;;
Packit 8a864e
    *)
Packit 8a864e
      set fnord "$@" "$arg"
Packit 8a864e
      shift # fnord
Packit 8a864e
      shift # $arg
Packit 8a864e
      ;;
Packit 8a864e
    esac
Packit 8a864e
  done
Packit 8a864e
Packit 8a864e
  test -z "$dashmflag" && dashmflag=-M
Packit 8a864e
  # Require at least two characters before searching for `:'
Packit 8a864e
  # in the target name.  This is to cope with DOS-style filenames:
Packit 8a864e
  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
Packit 8a864e
  "$@" $dashmflag |
Packit 8a864e
    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
Packit 8a864e
  rm -f "$depfile"
Packit 8a864e
  cat < "$tmpdepfile" > "$depfile"
Packit 8a864e
  tr ' ' '
Packit 8a864e
' < "$tmpdepfile" | \
Packit 8a864e
## Some versions of the HPUX 10.20 sed can't process this invocation
Packit 8a864e
## correctly.  Breaking it into two sed invocations is a workaround.
Packit 8a864e
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
Packit 8a864e
  rm -f "$tmpdepfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
dashXmstdout)
Packit 8a864e
  # This case only exists to satisfy depend.m4.  It is never actually
Packit 8a864e
  # run, as this mode is specially recognized in the preamble.
Packit 8a864e
  exit 1
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
makedepend)
Packit 8a864e
  "$@" || exit $?
Packit 8a864e
  # Remove any Libtool call
Packit 8a864e
  if test "$libtool" = yes; then
Packit 8a864e
    while test $1 != '--mode=compile'; do
Packit 8a864e
      shift
Packit 8a864e
    done
Packit 8a864e
    shift
Packit 8a864e
  fi
Packit 8a864e
  # X makedepend
Packit 8a864e
  shift
Packit 8a864e
  cleared=no
Packit 8a864e
  for arg in "$@"; do
Packit 8a864e
    case $cleared in
Packit 8a864e
    no)
Packit 8a864e
      set ""; shift
Packit 8a864e
      cleared=yes ;;
Packit 8a864e
    esac
Packit 8a864e
    case "$arg" in
Packit 8a864e
    -D*|-I*)
Packit 8a864e
      set fnord "$@" "$arg"; shift ;;
Packit 8a864e
    # Strip any option that makedepend may not understand.  Remove
Packit 8a864e
    # the object too, otherwise makedepend will parse it as a source file.
Packit 8a864e
    -*|$object)
Packit 8a864e
      ;;
Packit 8a864e
    *)
Packit 8a864e
      set fnord "$@" "$arg"; shift ;;
Packit 8a864e
    esac
Packit 8a864e
  done
Packit 8a864e
  obj_suffix="`echo $object | sed 's/^.*\././'`"
Packit 8a864e
  touch "$tmpdepfile"
Packit 8a864e
  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
Packit 8a864e
  rm -f "$depfile"
Packit 8a864e
  cat < "$tmpdepfile" > "$depfile"
Packit 8a864e
  sed '1,2d' "$tmpdepfile" | tr ' ' '
Packit 8a864e
' | \
Packit 8a864e
## Some versions of the HPUX 10.20 sed can't process this invocation
Packit 8a864e
## correctly.  Breaking it into two sed invocations is a workaround.
Packit 8a864e
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
Packit 8a864e
  rm -f "$tmpdepfile" "$tmpdepfile".bak
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
cpp)
Packit 8a864e
  # Important note: in order to support this mode, a compiler *must*
Packit 8a864e
  # always write the preprocessed file to stdout.
Packit 8a864e
  "$@" || exit $?
Packit 8a864e
Packit 8a864e
  # Remove the call to Libtool.
Packit 8a864e
  if test "$libtool" = yes; then
Packit 8a864e
    while test $1 != '--mode=compile'; do
Packit 8a864e
      shift
Packit 8a864e
    done
Packit 8a864e
    shift
Packit 8a864e
  fi
Packit 8a864e
Packit 8a864e
  # Remove `-o $object'.
Packit 8a864e
  IFS=" "
Packit 8a864e
  for arg
Packit 8a864e
  do
Packit 8a864e
    case $arg in
Packit 8a864e
    -o)
Packit 8a864e
      shift
Packit 8a864e
      ;;
Packit 8a864e
    $object)
Packit 8a864e
      shift
Packit 8a864e
      ;;
Packit 8a864e
    *)
Packit 8a864e
      set fnord "$@" "$arg"
Packit 8a864e
      shift # fnord
Packit 8a864e
      shift # $arg
Packit 8a864e
      ;;
Packit 8a864e
    esac
Packit 8a864e
  done
Packit 8a864e
Packit 8a864e
  "$@" -E |
Packit 8a864e
    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
Packit 8a864e
       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
Packit 8a864e
    sed '$ s: \\$::' > "$tmpdepfile"
Packit 8a864e
  rm -f "$depfile"
Packit 8a864e
  echo "$object : \\" > "$depfile"
Packit 8a864e
  cat < "$tmpdepfile" >> "$depfile"
Packit 8a864e
  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
Packit 8a864e
  rm -f "$tmpdepfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
msvisualcpp)
Packit 8a864e
  # Important note: in order to support this mode, a compiler *must*
Packit 8a864e
  # always write the preprocessed file to stdout, regardless of -o,
Packit 8a864e
  # because we must use -o when running libtool.
Packit 8a864e
  "$@" || exit $?
Packit 8a864e
  IFS=" "
Packit 8a864e
  for arg
Packit 8a864e
  do
Packit 8a864e
    case "$arg" in
Packit 8a864e
    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
Packit 8a864e
	set fnord "$@"
Packit 8a864e
	shift
Packit 8a864e
	shift
Packit 8a864e
	;;
Packit 8a864e
    *)
Packit 8a864e
	set fnord "$@" "$arg"
Packit 8a864e
	shift
Packit 8a864e
	shift
Packit 8a864e
	;;
Packit 8a864e
    esac
Packit 8a864e
  done
Packit 8a864e
  "$@" -E |
Packit 8a864e
  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
Packit 8a864e
  rm -f "$depfile"
Packit 8a864e
  echo "$object : \\" > "$depfile"
Packit 8a864e
  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
Packit 8a864e
  echo "	" >> "$depfile"
Packit 8a864e
  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
Packit 8a864e
  rm -f "$tmpdepfile"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
none)
Packit 8a864e
  exec "$@"
Packit 8a864e
  ;;
Packit 8a864e
Packit 8a864e
*)
Packit 8a864e
  echo "Unknown depmode $depmode" 1>&2
Packit 8a864e
  exit 1
Packit 8a864e
  ;;
Packit 8a864e
esac
Packit 8a864e
Packit 8a864e
exit 0
Packit 8a864e
Packit 8a864e
# Local Variables:
Packit 8a864e
# mode: shell-script
Packit 8a864e
# sh-indentation: 2
Packit 8a864e
# eval: (add-hook 'write-file-hooks 'time-stamp)
Packit 8a864e
# time-stamp-start: "scriptversion="
Packit 8a864e
# time-stamp-format: "%:y-%02m-%02d.%02H"
Packit 8a864e
# time-stamp-end: "$"
Packit 8a864e
# End: