Diff for /embedaddon/quagga/depcomp between versions 1.1 and 1.1.1.3

version 1.1, 2012/02/21 17:26:11 version 1.1.1.3, 2012/10/09 09:22:28
Line 1 Line 1
 #! /bin/sh  #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects  # depcomp - compile a program generating dependencies as side-effects
   
scriptversion=2009-04-28.21; # UTCscriptversion=2012-03-27.16; # UTC
   
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
# Software Foundation, Inc.# 2011, 2012 Free Software Foundation, Inc.
   
 # This program is free software; you can redistribute it and/or modify  # 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  # it under the terms of the GNU General Public License as published by
Line 28  scriptversion=2009-04-28.21; # UTC Line 28  scriptversion=2009-04-28.21; # UTC
   
 case $1 in  case $1 in
   '')    '')
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
      exit 1;       exit 1;
      ;;       ;;
   -h | --h*)    -h | --h*)
Line 40  as side-effects. Line 40  as side-effects.
   
 Environment variables:  Environment variables:
   depmode     Dependency tracking mode.    depmode     Dependency tracking mode.
  source      Source file read by `PROGRAMS ARGS'.  source      Source file read by 'PROGRAMS ARGS'.
  object      Object file output by `PROGRAMS ARGS'.  object      Object file output by 'PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.    DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.    depfile     Dependency file to output.
  tmpdepfile  Temporary file to use when outputing dependencies.  tmpdepfile  Temporary file to use when outputting dependencies.
   libtool     Whether libtool is used (yes/no).    libtool     Whether libtool is used (yes/no).
   
 Report bugs to <bug-automake@gnu.org>.  Report bugs to <bug-automake@gnu.org>.
Line 57  EOF Line 57  EOF
     ;;      ;;
 esac  esac
   
   # A tabulation character.
   tab='   '
   # A newline character.
   nl='
   '
   
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then  if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2    echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1    exit 1
Line 90  if test "$depmode" = msvcmsys; then Line 96  if test "$depmode" = msvcmsys; then
    # This is just like msvisualcpp but w/o cygpath translation.     # This is just like msvisualcpp but w/o cygpath translation.
    # Just convert the backslash-escaped backslashes to single forward     # Just convert the backslash-escaped backslashes to single forward
    # slashes to satisfy depend.m4     # slashes to satisfy depend.m4
   cygpath_u="sed s,\\\\\\\\,/,g"   cygpath_u='sed s,\\\\,/,g'
    depmode=msvisualcpp     depmode=msvisualcpp
 fi  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 informations.
      gccflag=-qmakedep=gcc,-MF
      depmode=gcc
   fi
   
 case "$depmode" in  case "$depmode" in
 gcc3)  gcc3)
 ## gcc 3 implements dependency tracking that does exactly what  ## gcc 3 implements dependency tracking that does exactly what
Line 148  gcc) Line 168  gcc)
 ## The second -e expression handles DOS-style file names with drive letters.  ## The second -e expression handles DOS-style file names with drive letters.
   sed -e 's/^[^:]*: / /' \    sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"        -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  ## 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  ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding  ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do  ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.  ## this for us directly.
  tr ' ' '  tr ' ' "$nl" < "$tmpdepfile" |
' < "$tmpdepfile" |## Some versions of gcc put a space before the ':'.  On the theory
## 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  ## that the space means something, we add a space to the output as
## well.## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation  ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.  ## correctly.  Breaking it into two sed invocations is a workaround.
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
       | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"    rm -f "$tmpdepfile"
   ;;    ;;
   
Line 193  sgi) Line 214  sgi)
     # clever and replace this with sed code, as IRIX sed won't handle      # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in      # 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;      # 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.      # dependency line.
    tr ' ' '    tr ' ' "$nl" < "$tmpdepfile" \
' < "$tmpdepfile" \ 
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
    tr '    tr "$nl" ' ' >> "$depfile"
' ' ' >> "$depfile" 
     echo >> "$depfile"      echo >> "$depfile"
   
     # The second pass generates a dummy entry for each header file.      # The second pass generates a dummy entry for each header file.
    tr ' ' '    tr ' ' "$nl" < "$tmpdepfile" \
' < "$tmpdepfile" \ 
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    >> "$depfile"     >> "$depfile"
   else    else
Line 216  sgi) Line 234  sgi)
   rm -f "$tmpdepfile"    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)  aix)
   # The C for AIX Compiler uses -M and outputs the dependencies    # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the    # 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.    # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.    # Version 6 uses the directory in both cases.
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
Line 249  aix) Line 274  aix)
     test -f "$tmpdepfile" && break      test -f "$tmpdepfile" && break
   done    done
   if test -f "$tmpdepfile"; then    if test -f "$tmpdepfile"; then
    # Each line is of the form `foo.o: dependent.h'.    # Each line is of the form 'foo.o: dependent.h'.
     # Do two passes, one to just change these to      # Do two passes, one to just change these to
    # `$object: dependent.h' and one to simply `dependent.h:'.    # '$object: dependent.h' and one to simply 'dependent.h:'.
     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
    # That's a tab and a space in the [].    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    sed -e 's,^.*\.[a-z]*:[      ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 
   else    else
     # The sourcefile does not contain any dependencies, so just      # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile      # store a dummy comment line, to avoid errors with the Makefile
Line 265  aix) Line 289  aix)
   ;;    ;;
   
 icc)  icc)
  # Intel's C compiler understands `-MD -MF file'.  However on  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c  # However on
   #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like    # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c    #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h    #    foo.o: sub/foo.h
  # which is wrong.  We want:  # which is wrong.  We want
   #    sub/foo.o: sub/foo.c    #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h    #    sub/foo.o: sub/foo.h
   #    sub/foo.c:    #    sub/foo.c:
   #    sub/foo.h:    #    sub/foo.h:
   # ICC 7.1 will output    # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h    #    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 ... \    #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \    #     sub/foo.h ... \
   #     ...    #     ...
  # tcc 0.9.26 (FIXME still under development at the moment of writing)
   # will emit a similar output, but also prepend the continuation lines
   # with horizontal tabulation characters.
   "$@" -MD -MF "$tmpdepfile"    "$@" -MD -MF "$tmpdepfile"
   stat=$?    stat=$?
   if test $stat -eq 0; then :    if test $stat -eq 0; then :
Line 290  icc) Line 317  icc)
     exit $stat      exit $stat
   fi    fi
   rm -f "$depfile"    rm -f "$depfile"
  # Each line is of the form `foo.o: dependent.h',  # Each line is of the form 'foo.o: dependent.h',
  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
   # Do two passes, one to just change these to    # Do two passes, one to just change these to
  # `$object: dependent.h' and one to simply `dependent.h:'.  # '$object: dependent.h' and one to simply 'dependent.h:'.
  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
  # Some versions of the HPUX 10.20 sed can't process this invocation    < "$tmpdepfile" > "$depfile"
  # correctly.  Breaking it into two sed invocations is a workaround.  sed '
  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |    s/[ '"$tab"'][ '"$tab"']*/ /g
    sed -e 's/$/ :/' >> "$depfile"    s/^ *//
     s/ *\\*$//
     s/^[^:]*: *//
     /^$/d
     /:$/d
     s/$/ :/
   ' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"    rm -f "$tmpdepfile"
   ;;    ;;
   
Line 334  hp2) Line 367  hp2)
   done    done
   if test -f "$tmpdepfile"; then    if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"      sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
    # Add `dependent.h:' lines.    # Add 'dependent.h:' lines.
     sed -ne '2,${      sed -ne '2,${
                s/^ *//                 s/^ *//
                s/ \\*$//                 s/ \\*$//
Line 349  hp2) Line 382  hp2)
   
 tru64)  tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side     # The Tru64 compiler uses -MD to generate dependencies as a side
   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.   # 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     # 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.   # dependencies in 'foo.d' instead, so we check for that too.
    # Subdirectories are respected.     # Subdirectories are respected.
    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`     dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    test "x$dir" = "x$object" && dir=     test "x$dir" = "x$object" && dir=
Line 397  tru64) Line 430  tru64)
    done     done
    if test -f "$tmpdepfile"; then     if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"        sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
      # That's a tab and a space in the [].      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
      sed -e 's,^.*\.[a-z]*:[    ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 
    else     else
       echo "#dummy" > "$depfile"        echo "#dummy" > "$depfile"
    fi     fi
    rm -f "$tmpdepfile"     rm -f "$tmpdepfile"
    ;;     ;;
   
   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" = 0; then :
     else
       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"
     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
     ;;
   
 #nosideeffect)  #nosideeffect)
   # This comment above is used by automake to tell side-effect    # This comment above is used by automake to tell side-effect
   # dependency tracking mechanisms from slower ones.    # dependency tracking mechanisms from slower ones.
Line 422  dashmstdout) Line 500  dashmstdout)
     shift      shift
   fi    fi
   
  # Remove `-o $object'.  # Remove '-o $object'.
   IFS=" "    IFS=" "
   for arg    for arg
   do    do
Line 442  dashmstdout) Line 520  dashmstdout)
   done    done
   
   test -z "$dashmflag" && dashmflag=-M    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:    # 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 |    "$@" $dashmflag |
    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"    rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"    cat < "$tmpdepfile" > "$depfile"
  tr ' ' '  tr ' ' "$nl" < "$tmpdepfile" | \
' < "$tmpdepfile" | \ 
 ## Some versions of the HPUX 10.20 sed can't process this invocation  ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.  ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"      sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
Line 503  makedepend) Line 580  makedepend)
   touch "$tmpdepfile"    touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"    ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"    rm -f "$depfile"
  cat < "$tmpdepfile" > "$depfile"  # makedepend may prepend the VPATH from the source file name to the object.
  sed '1,2d' "$tmpdepfile" | tr ' ' '  # No need to regex-escape $object, excess matching of '.' is harmless.
' | \  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
   sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation  ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.  ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"      sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
Line 525  cpp) Line 603  cpp)
     shift      shift
   fi    fi
   
  # Remove `-o $object'.  # Remove '-o $object'.
   IFS=" "    IFS=" "
   for arg    for arg
   do    do
Line 594  msvisualcpp) Line 672  msvisualcpp)
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"    rm -f "$depfile"
   echo "$object : \\" > "$depfile"    echo "$object : \\" > "$depfile"
  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::      \1 \\:p' >> "$depfile"  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
  echo "        " >> "$depfile"  echo "$tab" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"    sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"    rm -f "$tmpdepfile"
   ;;    ;;

Removed from v.1.1  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>