diff options
| author | Stephen Kitt <skitt@debian.org> | 2016-05-27 10:11:04 +0200 | 
|---|---|---|
| committer | Manuel A. Fernandez Montecelo <manuel.montezelo@gmail.com> | 2016-05-27 14:28:33 +0100 | 
| commit | 752fd7247bc223bcea35bd89cf56d1c08ead9ba6 (patch) | |
| tree | b4a428f847a963738faaf24c8eff070fdb03a3a5 /build-aux/depcomp | |
| parent | 9f7d4fa477ff2a51d7c932b13d57ac22dc033105 (diff) | |
| parent | a9a31b1de5776a3b08a82101a4fa711294f0dd1d (diff) | |
Imported Debian patch 0.9.6+really0.9.3-0.1debian/0.9.6+really0.9.3-0.1
Diffstat (limited to 'build-aux/depcomp')
| -rwxr-xr-x | build-aux/depcomp | 586 | 
1 files changed, 192 insertions, 394 deletions
| diff --git a/build-aux/depcomp b/build-aux/depcomp index fc98710e..e5f9736c 100755 --- a/build-aux/depcomp +++ b/build-aux/depcomp @@ -1,9 +1,10 @@  #! /bin/sh  # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2007-03-29.01 -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software +# Foundation, Inc.  # This program is free software; you can redistribute it and/or modify  # it under the terms of the GNU General Public License as published by @@ -16,7 +17,9 @@ scriptversion=2013-05-30.07; # UTC  # GNU General Public License for more details.  # You should have received a copy of the GNU General Public License -# along with this program.  If not, see <http://www.gnu.org/licenses/>. +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA.  # As a special exception to the GNU General Public License, if you  # distribute this file as part of a program that contains a @@ -27,9 +30,9 @@ scriptversion=2013-05-30.07; # UTC  case $1 in    '') -    echo "$0: No command.  Try '$0 --help' for more information." 1>&2 -    exit 1; -    ;; +     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2 +     exit 1; +     ;;    -h | --h*)      cat <<\EOF  Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -39,11 +42,11 @@ as side-effects.  Environment variables:    depmode     Dependency tracking mode. -  source      Source file read by 'PROGRAMS ARGS'. -  object      Object file output by 'PROGRAMS ARGS'. +  source      Source file read by `PROGRAMS ARGS'. +  object      Object file output by `PROGRAMS ARGS'.    DEPDIR      directory where to store dependencies.    depfile     Dependency file to output. -  tmpdepfile  Temporary file to use when outputting dependencies. +  tmpdepfile  Temporary file to use when outputing dependencies.    libtool     Whether libtool is used (yes/no).  Report bugs to <bug-automake@gnu.org>. @@ -56,66 +59,6 @@ EOF      ;;  esac -# Get the directory component of the given path, and save it in the -# global variables '$dir'.  Note that this directory component will -# be either empty or ending with a '/' character.  This is deliberate. -set_dir_from () -{ -  case $1 in -    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; -      *) dir=;; -  esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ -  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ -  echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ -  # If the compiler actually managed to produce a dependency file, -  # post-process it. -  if test -f "$tmpdepfile"; then -    # Each line is of the form 'foo.o: dependency.h'. -    # Do two passes, one to just change these to -    #   $object: dependency.h -    # and one to simply output -    #   dependency.h: -    # which is needed to avoid the deleted-header problem. -    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" -      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" -    } > "$depfile" -    rm -f "$tmpdepfile" -  else -    make_dummy_depfile -  fi -} - -# A tabulation character. -tab='	' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} -  if test -z "$depmode" || test -z "$source" || test -z "$object"; then    echo "depcomp: Variables source, object and depmode must be set" 1>&2    exit 1 @@ -128,9 +71,6 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}  rm -f "$tmpdepfile" -# Avoid interferences from the environment. -gccflag= dashmflag= -  # Some modes work just like other modes, but use different flags.  We  # parameterize here, but still list the modes in the big case below,  # to make depend.m4 easier to write.  Note that we *cannot* use a case @@ -142,32 +82,9 @@ if test "$depmode" = hp; then  fi  if test "$depmode" = dashXmstdout; then -  # This is just like dashmstdout with a different argument. -  dashmflag=-xM -  depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then -  # This is just like msvisualcpp but w/o cygpath translation. -  # Just convert the backslash-escaped backslashes to single forward -  # slashes to satisfy depend.m4 -  cygpath_u='sed s,\\\\,/,g' -  depmode=msvisualcpp -fi - -if test "$depmode" = msvc7msys; then -  # This is just like msvc7 but w/o cygpath translation. -  # Just convert the backslash-escaped backslashes to single forward -  # slashes to satisfy depend.m4 -  cygpath_u='sed s,\\\\,/,g' -  depmode=msvc7 -fi - -if test "$depmode" = xlc; then -  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. -  gccflag=-qmakedep=gcc,-MF -  depmode=gcc +   # This is just like dashmstdout with a different argument. +   dashmflag=-xM +   depmode=dashmstdout  fi  case "$depmode" in @@ -190,7 +107,8 @@ gcc3)    done    "$@"    stat=$? -  if test $stat -ne 0; then +  if test $stat -eq 0; then : +  else      rm -f "$tmpdepfile"      exit $stat    fi @@ -198,17 +116,13 @@ gcc3)    ;;  gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above).  ## There are various ways to get dependency output from gcc.  Here's  ## why we pick this rather obscure method:  ## - Don't want to use -MD because we'd like the dependencies to end  ##   up in a subdir.  Having to rename by hand is ugly.  ##   (We might end up doing this anyway to support other compilers.)  ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -##   -MM, not -M (despite what the docs say).  Also, it might not be -##   supported by the other compilers which use the 'gcc' depmode. +##   -MM, not -M (despite what the docs say).  ## - Using -M directly means running the compiler twice (even worse  ##   than renaming).    if test -z "$gccflag"; then @@ -216,31 +130,31 @@ gcc)    fi    "$@" -Wp,"$gccflag$tmpdepfile"    stat=$? -  if test $stat -ne 0; then +  if test $stat -eq 0; then : +  else      rm -f "$tmpdepfile"      exit $stat    fi    rm -f "$depfile"    echo "$object : \\" > "$depfile" -  # The second -e expression handles DOS-style file names with drive -  # letters. +  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters.    sed -e 's/^[^:]*: / /' \        -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. +## This next piece of magic avoids the `deleted header file' problem.  ## The problem is that when a header file which appears in a .P file  ## is deleted, the dependency causes make to die (because there is  ## typically no way to rebuild the header).  We avoid this by adding  ## dummy dependencies for each header file.  Too bad gcc doesn't do  ## this for us directly. -## Some versions of gcc put a space before the ':'.  On the theory +  tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'.  On the theory  ## that the space means something, we add a space to the output as -## well.  hp depmode also adds that space, but also prefixes the VPATH -## to the object.  Take care to not repeat it in the output. +## well.  ## Some versions of the HPUX 10.20 sed can't process this invocation  ## correctly.  Breaking it into two sed invocations is a workaround. -  tr ' ' "$nl" < "$tmpdepfile" \ -    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ -    | sed -e 's/$/ :/' >> "$depfile" +    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"    rm -f "$tmpdepfile"    ;; @@ -258,7 +172,8 @@ sgi)      "$@" -MDupdate "$tmpdepfile"    fi    stat=$? -  if test $stat -ne 0; then +  if test $stat -eq 0; then : +  else      rm -f "$tmpdepfile"      exit $stat    fi @@ -266,41 +181,43 @@ sgi)    if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files      echo "$object : \\" > "$depfile" +      # Clip off the initial element (the dependent).  Don't try to be      # clever and replace this with sed code, as IRIX sed won't handle      # lines with more than a fixed number of characters (4096 in      # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines; -    # the IRIX cc adds comments like '#:fec' to the end of the +    # the IRIX cc adds comments like `#:fec' to the end of the      # dependency line. -    tr ' ' "$nl" < "$tmpdepfile" \ -      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ -      | tr "$nl" ' ' >> "$depfile" -    echo >> "$depfile" +    tr ' ' ' +' < "$tmpdepfile" \ +    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ +    tr ' +' ' ' >> $depfile +    echo >> $depfile +      # The second pass generates a dummy entry for each header file. -    tr ' ' "$nl" < "$tmpdepfile" \ -      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ -      >> "$depfile" +    tr ' ' ' +' < "$tmpdepfile" \ +   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ +   >> $depfile    else -    make_dummy_depfile +    # The sourcefile does not contain any dependencies, so just +    # store a dummy comment line, to avoid errors with the Makefile +    # "include basename.Plo" scheme. +    echo "#dummy" > "$depfile"    fi    rm -f "$tmpdepfile"    ;; -xlc) -  # This case exists only to let depend.m4 do its work.  It works by -  # looking at the text of this script.  This case will never be run, -  # since it is checked for above. -  exit 1 -  ;; -  aix)    # The C for AIX Compiler uses -M and outputs the dependencies    # in a .u file.  In older versions, this file always lives in the -  # current directory.  Also, the AIX compiler puts '$object:' at the +  # current directory.  Also, the AIX compiler puts `$object:' at the    # start of each line; $object doesn't have directory information.    # Version 6 uses the directory in both cases. -  set_dir_from "$object" -  set_base_from "$object" +  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` +  test "x$dir" = "x$object" && dir= +  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`    if test "$libtool" = yes; then      tmpdepfile1=$dir$base.u      tmpdepfile2=$base.u @@ -313,7 +230,9 @@ aix)      "$@" -M    fi    stat=$? -  if test $stat -ne 0; then + +  if test $stat -eq 0; then : +  else      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"      exit $stat    fi @@ -322,100 +241,44 @@ aix)    do      test -f "$tmpdepfile" && break    done -  aix_post_process_depfile -  ;; - -tcc) -  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 -  # FIXME: That version still under development at the moment of writing. -  #        Make that this statement remains true also for stable, released -  #        versions. -  # It will wrap lines (doesn't matter whether long or short) with a -  # trailing '\', as in: -  # -  #   foo.o : \ -  #    foo.c \ -  #    foo.h \ -  # -  # It will put a trailing '\' even on the last line, and will use leading -  # spaces rather than leading tabs (at least since its commit 0394caf7 -  # "Emit spaces for -MD"). -  "$@" -MD -MF "$tmpdepfile" -  stat=$? -  if test $stat -ne 0; then -    rm -f "$tmpdepfile" -    exit $stat +  if test -f "$tmpdepfile"; then +    # Each line is of the form `foo.o: dependent.h'. +    # Do two passes, one to just change these to +    # `$object: dependent.h' and one to simply `dependent.h:'. +    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" +    # That's a tab and a space in the []. +    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" +  else +    # The sourcefile does not contain any dependencies, so just +    # store a dummy comment line, to avoid errors with the Makefile +    # "include basename.Plo" scheme. +    echo "#dummy" > "$depfile"    fi -  rm -f "$depfile" -  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. -  # We have to change lines of the first kind to '$object: \'. -  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" -  # And for each line of the second kind, we have to emit a 'dep.h:' -  # dummy dependency, to avoid the deleted-header problem. -  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"    rm -f "$tmpdepfile"    ;; -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file.  A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) -  # Portland's C compiler understands '-MD'. -  # Will always output deps to 'file.d' where file is the root name of the -  # source file under compilation, even if file resides in a subdirectory. -  # The object file name does not affect the name of the '.d' file. -  # pgcc 10.2 will output +icc) +  # Intel's C compiler understands `-MD -MF file'.  However on +  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c +  # ICC 7.0 will fill foo.d with something like +  #    foo.o: sub/foo.c +  #    foo.o: sub/foo.h +  # which is wrong.  We want: +  #    sub/foo.o: sub/foo.c +  #    sub/foo.o: sub/foo.h +  #    sub/foo.c: +  #    sub/foo.h: +  # ICC 7.1 will output    #    foo.o: sub/foo.c sub/foo.h -  # and will wrap long lines using '\' : +  # and will wrap long lines using \ :    #    foo.o: sub/foo.c ... \    #     sub/foo.h ... \    #     ... -  set_dir_from "$object" -  # Use the source, not the object, to determine the base name, since -  # that's sadly what pgcc will do too. -  set_base_from "$source" -  tmpdepfile=$base.d - -  # For projects that build the same source file twice into different object -  # files, the pgcc approach of using the *source* file root name can cause -  # problems in parallel builds.  Use a locking strategy to avoid stomping on -  # the same $tmpdepfile. -  lockdir=$base.d-lock -  trap " -    echo '$0: caught signal, cleaning up...' >&2 -    rmdir '$lockdir' -    exit 1 -  " 1 2 13 15 -  numtries=100 -  i=$numtries -  while test $i -gt 0; do -    # mkdir is a portable test-and-set. -    if mkdir "$lockdir" 2>/dev/null; then -      # This process acquired the lock. -      "$@" -MD -      stat=$? -      # Release the lock. -      rmdir "$lockdir" -      break -    else -      # If the lock is being held by a different process, wait -      # until the winning process is done or we timeout. -      while test -d "$lockdir" && test $i -gt 0; do -        sleep 1 -        i=`expr $i - 1` -      done -    fi -    i=`expr $i - 1` -  done -  trap - 1 2 13 15 -  if test $i -le 0; then -    echo "$0: failed to acquire lock after $numtries attempts" >&2 -    echo "$0: check lockdir '$lockdir'" >&2 -    exit 1 -  fi -  if test $stat -ne 0; then +  "$@" -MD -MF "$tmpdepfile" +  stat=$? +  if test $stat -eq 0; then : +  else      rm -f "$tmpdepfile"      exit $stat    fi @@ -427,8 +290,8 @@ pgcc)    sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"    # Some versions of the HPUX 10.20 sed can't process this invocation    # correctly.  Breaking it into two sed invocations is a workaround. -  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ -    | sed -e 's/$/ :/' >> "$depfile" +  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | +    sed -e 's/$/ :/' >> "$depfile"    rm -f "$tmpdepfile"    ;; @@ -439,8 +302,9 @@ hp2)    # 'foo.d', which lands next to the object file, wherever that    # happens to be.    # Much of this is similar to the tru64 case; see comments there. -  set_dir_from  "$object" -  set_base_from "$object" +  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` +  test "x$dir" = "x$object" && dir= +  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`    if test "$libtool" = yes; then      tmpdepfile1=$dir$base.d      tmpdepfile2=$dir.libs/$base.d @@ -451,7 +315,8 @@ hp2)      "$@" +Maked    fi    stat=$? -  if test $stat -ne 0; then +  if test $stat -eq 0; then : +  else       rm -f "$tmpdepfile1" "$tmpdepfile2"       exit $stat    fi @@ -461,107 +326,72 @@ hp2)      test -f "$tmpdepfile" && break    done    if test -f "$tmpdepfile"; then -    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" -    # Add 'dependent.h:' lines. -    sed -ne '2,${ -               s/^ *// -               s/ \\*$// -               s/$/:/ -               p -             }' "$tmpdepfile" >> "$depfile" +    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" +    # Add `dependent.h:' lines. +    sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"    else -    make_dummy_depfile +    echo "#dummy" > "$depfile"    fi    rm -f "$tmpdepfile" "$tmpdepfile2"    ;;  tru64) -  # The Tru64 compiler uses -MD to generate dependencies as a side -  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. -  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put -  # dependencies in 'foo.d' instead, so we check for that too. -  # Subdirectories are respected. -  set_dir_from  "$object" -  set_base_from "$object" - -  if test "$libtool" = yes; then -    # Libtool generates 2 separate objects for the 2 libraries.  These -    # two compilations output dependencies in $dir.libs/$base.o.d and -    # in $dir$base.o.d.  We have to check for both files, because -    # one of the two compilations can be disabled.  We should prefer -    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is -    # automatically cleaned when .libs/ is deleted, while ignoring -    # the former would cause a distcleancheck panic. -    tmpdepfile1=$dir$base.o.d          # libtool 1.5 -    tmpdepfile2=$dir.libs/$base.o.d    # Likewise. -    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504 -    "$@" -Wc,-MD -  else -    tmpdepfile1=$dir$base.d -    tmpdepfile2=$dir$base.d -    tmpdepfile3=$dir$base.d -    "$@" -MD -  fi - -  stat=$? -  if test $stat -ne 0; then -    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" -    exit $stat -  fi - -  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" -  do -    test -f "$tmpdepfile" && break -  done -  # Same post-processing that is required for AIX mode. -  aix_post_process_depfile -  ;; - -msvc7) -  if test "$libtool" = yes; then -    showIncludes=-Wc,-showIncludes -  else -    showIncludes=-showIncludes -  fi -  "$@" $showIncludes > "$tmpdepfile" -  stat=$? -  grep -v '^Note: including file: ' "$tmpdepfile" -  if test $stat -ne 0; then -    rm -f "$tmpdepfile" -    exit $stat -  fi -  rm -f "$depfile" -  echo "$object : \\" > "$depfile" -  # The first sed program below extracts the file names and escapes -  # backslashes for cygpath.  The second sed program outputs the file -  # name when reading, but also accumulates all include files in the -  # hold buffer in order to output them again at the end.  This only -  # works with sed implementations that can handle large buffers. -  sed < "$tmpdepfile" -n ' -/^Note: including file:  *\(.*\)/ { -  s//\1/ -  s/\\/\\\\/g -  p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { -  s/.*/'"$tab"'/ -  G -  p -}' >> "$depfile" -  echo >> "$depfile" # make sure the fragment doesn't end with a backslash -  rm -f "$tmpdepfile" -  ;; - -msvc7msys) -  # This case exists only to let depend.m4 do its work.  It works by -  # looking at the text of this script.  This case will never be run, -  # since it is checked for above. -  exit 1 -  ;; +   # The Tru64 compiler uses -MD to generate dependencies as a side +   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. +   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put +   # dependencies in `foo.d' instead, so we check for that too. +   # Subdirectories are respected. +   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` +   test "x$dir" = "x$object" && dir= +   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + +   if test "$libtool" = yes; then +      # With Tru64 cc, shared objects can also be used to make a +      # static library.  This mechanism is used in libtool 1.4 series to +      # handle both shared and static libraries in a single compilation. +      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. +      # +      # With libtool 1.5 this exception was removed, and libtool now +      # generates 2 separate objects for the 2 libraries.  These two +      # compilations output dependencies in $dir.libs/$base.o.d and +      # in $dir$base.o.d.  We have to check for both files, because +      # one of the two compilations can be disabled.  We should prefer +      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is +      # automatically cleaned when .libs/ is deleted, while ignoring +      # the former would cause a distcleancheck panic. +      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4 +      tmpdepfile2=$dir$base.o.d          # libtool 1.5 +      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5 +      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504 +      "$@" -Wc,-MD +   else +      tmpdepfile1=$dir$base.o.d +      tmpdepfile2=$dir$base.d +      tmpdepfile3=$dir$base.d +      tmpdepfile4=$dir$base.d +      "$@" -MD +   fi + +   stat=$? +   if test $stat -eq 0; then : +   else +      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" +      exit $stat +   fi + +   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" +   do +     test -f "$tmpdepfile" && break +   done +   if test -f "$tmpdepfile"; then +      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" +      # That's a tab and a space in the []. +      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" +   else +      echo "#dummy" > "$depfile" +   fi +   rm -f "$tmpdepfile" +   ;;  #nosideeffect)    # This comment above is used by automake to tell side-effect @@ -574,13 +404,13 @@ dashmstdout)    # Remove the call to Libtool.    if test "$libtool" = yes; then -    while test "X$1" != 'X--mode=compile'; do +    while test $1 != '--mode=compile'; do        shift      done      shift    fi -  # Remove '-o $object'. +  # Remove `-o $object'.    IFS=" "    for arg    do @@ -600,18 +430,18 @@ dashmstdout)    done    test -z "$dashmflag" && dashmflag=-M -  # Require at least two characters before searching for ':' +  # Require at least two characters before searching for `:'    # in the target name.  This is to cope with DOS-style filenames: -  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. +  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.    "$@" $dashmflag | -    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" +    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"    rm -f "$depfile"    cat < "$tmpdepfile" > "$depfile" -  # Some versions of the HPUX 10.20 sed can't process this sed invocation -  # correctly.  Breaking it into two sed invocations is a workaround. -  tr ' ' "$nl" < "$tmpdepfile" \ -    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ -    | sed -e 's/$/ :/' >> "$depfile" +  tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly.  Breaking it into two sed invocations is a workaround. +    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"    rm -f "$tmpdepfile"    ;; @@ -625,51 +455,41 @@ makedepend)    "$@" || exit $?    # Remove any Libtool call    if test "$libtool" = yes; then -    while test "X$1" != 'X--mode=compile'; do +    while test $1 != '--mode=compile'; do        shift      done      shift    fi    # X makedepend    shift -  cleared=no eat=no -  for arg -  do +  cleared=no +  for arg in "$@"; do      case $cleared in      no)        set ""; shift        cleared=yes ;;      esac -    if test $eat = yes; then -      eat=no -      continue -    fi      case "$arg" in      -D*|-I*)        set fnord "$@" "$arg"; shift ;;      # Strip any option that makedepend may not understand.  Remove      # the object too, otherwise makedepend will parse it as a source file. -    -arch) -      eat=yes ;;      -*|$object)        ;;      *)        set fnord "$@" "$arg"; shift ;;      esac    done -  obj_suffix=`echo "$object" | sed 's/^.*\././'` +  obj_suffix="`echo $object | sed 's/^.*\././'`"    touch "$tmpdepfile"    ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"    rm -f "$depfile" -  # makedepend may prepend the VPATH from the source file name to the object. -  # No need to regex-escape $object, excess matching of '.' is harmless. -  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" -  # Some versions of the HPUX 10.20 sed can't process the last invocation -  # correctly.  Breaking it into two sed invocations is a workaround. -  sed '1,2d' "$tmpdepfile" \ -    | tr ' ' "$nl" \ -    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ -    | sed -e 's/$/ :/' >> "$depfile" +  cat < "$tmpdepfile" > "$depfile" +  sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly.  Breaking it into two sed invocations is a workaround. +    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"    rm -f "$tmpdepfile" "$tmpdepfile".bak    ;; @@ -680,13 +500,13 @@ cpp)    # Remove the call to Libtool.    if test "$libtool" = yes; then -    while test "X$1" != 'X--mode=compile'; do +    while test $1 != '--mode=compile'; do        shift      done      shift    fi -  # Remove '-o $object'. +  # Remove `-o $object'.    IFS=" "    for arg    do @@ -705,10 +525,10 @@ cpp)      esac    done -  "$@" -E \ -    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -    | sed '$ s: \\$::' > "$tmpdepfile" +  "$@" -E | +    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ +       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | +    sed '$ s: \\$::' > "$tmpdepfile"    rm -f "$depfile"    echo "$object : \\" > "$depfile"    cat < "$tmpdepfile" >> "$depfile" @@ -718,56 +538,35 @@ cpp)  msvisualcpp)    # Important note: in order to support this mode, a compiler *must* -  # always write the preprocessed file to stdout. +  # always write the preprocessed file to stdout, regardless of -o, +  # because we must use -o when running libtool.    "$@" || exit $? - -  # Remove the call to Libtool. -  if test "$libtool" = yes; then -    while test "X$1" != 'X--mode=compile'; do -      shift -    done -    shift -  fi -    IFS=" "    for arg    do      case "$arg" in -    -o) -      shift -      ;; -    $object) -      shift -      ;;      "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") -        set fnord "$@" -        shift -        shift -        ;; +	set fnord "$@" +	shift +	shift +	;;      *) -        set fnord "$@" "$arg" -        shift -        shift -        ;; +	set fnord "$@" "$arg" +	shift +	shift +	;;      esac    done -  "$@" -E 2>/dev/null | -  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" +  "$@" -E | +  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"    rm -f "$depfile"    echo "$object : \\" > "$depfile" -  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" -  echo "$tab" >> "$depfile" -  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" +  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile" +  echo "	" >> "$depfile" +  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"    rm -f "$tmpdepfile"    ;; -msvcmsys) -  # This case exists only to let depend.m4 do its work.  It works by -  # looking at the text of this script.  This case will never be run, -  # since it is checked for above. -  exit 1 -  ;; -  none)    exec "$@"    ;; @@ -786,6 +585,5 @@ exit 0  # eval: (add-hook 'write-file-hooks 'time-stamp)  # time-stamp-start: "scriptversion="  # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" +# time-stamp-end: "$"  # End: | 
