Blame depcomp

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