Blame depcomp

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