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

version 1.1.1.3, 2012/10/09 09:22:28 version 1.1.1.4, 2013/07/21 23:54:37
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=2012-03-27.16; # UTCscriptversion=2012-07-12.20; # UTC
   
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,# Copyright (C) 1999-2012 Free 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 75  tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\( Line 74  tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\(
   
 rm -f "$tmpdepfile"  rm -f "$tmpdepfile"
   
   # Avoid interferences from the environment.
   gccflag= dashmflag=
   
 # Some modes work just like other modes, but use different flags.  We  # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,  # 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  # to make depend.m4 easier to write.  Note that we *cannot* use a case
Line 109  if test "$depmode" = msvc7msys; then Line 111  if test "$depmode" = msvc7msys; then
 fi  fi
   
 if test "$depmode" = xlc; then  if test "$depmode" = xlc; then
   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
    gccflag=-qmakedep=gcc,-MF     gccflag=-qmakedep=gcc,-MF
    depmode=gcc     depmode=gcc
 fi  fi
Line 143  gcc3) Line 145  gcc3)
   ;;    ;;
   
 gcc)  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  ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:  ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end  ## - 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.  ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)  ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like  ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
##   -MM, not -M (despite what the docs say).##   -MM, not -M (despite what the docs say).  Also, it might not be
 ##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse  ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).  ##   than renaming).
   if test -z "$gccflag"; then    if test -z "$gccflag"; then
Line 332  icc) Line 338  icc)
     /:$/d      /:$/d
     s/$/ :/      s/$/ :/
   ' < "$tmpdepfile" >> "$depfile"    ' < "$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
     #    foo.o: sub/foo.c sub/foo.h
     # and will wrap long lines using '\' :
     #    foo.o: sub/foo.c ... \
     #     sub/foo.h ... \
     #     ...
     dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
     test "x$dir" = "x$object" && dir=
     # Use the source, not the object, to determine the base name, since
     # that's sadly what pgcc will do too.
     base=`echo "$source" | sed -e 's|^.*/||' -e 's/\.[-_a-zA-Z0-9]*$//'`
     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; rm -rf $lockdir" 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.
         rm -rf $lockdir
         break
       else
         ## 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
       rm -f "$tmpdepfile"
       exit $stat
     fi
     rm -f "$depfile"
     # Each line is of the form `foo.o: dependent.h',
     # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
     # Do two passes, one to just change these to
     # `$object: dependent.h' and one to simply `dependent.h:'.
     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"
   rm -f "$tmpdepfile"    rm -f "$tmpdepfile"
   ;;    ;;
   

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


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