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

version 1.1.1.4, 2013/07/21 23:54:37 version 1.1.1.5, 2016/11/02 10:09:09
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-07-12.20; # UTCscriptversion=2012-03-27.16; # UTC
   
# Copyright (C) 1999-2012 Free Software Foundation, Inc.# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
 # 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 74  tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\( Line 75  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 111  if test "$depmode" = msvc7msys; then Line 109  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 information.   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
    gccflag=-qmakedep=gcc,-MF     gccflag=-qmakedep=gcc,-MF
    depmode=gcc     depmode=gcc
 fi  fi
Line 145  gcc3) Line 143  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).  Also, it might not be##   -MM, not -M (despite what the docs say).
##   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 338  icc) Line 332  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.4  
changed lines
  Added in v.1.1.1.5


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