Blame depcomp

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