Difference for utils/depcomp from version 1.1 to 1.2


version 1.1 version 1.2
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
 # Copyright 1999, 2000 Free Software Foundation, Inc.  
   scriptversion=2004-05-31.23
   
   # Copyright (C) 1999, 2000, 2003, 2004 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 25
 
Line 27
   
 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.  # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
   
   case $1 in
     '')
        echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
        exit 1;
        ;;
     -h | --h*)
       cat <<\EOF
   Usage: depcomp [--help] [--version] PROGRAM [ARGS]
   
   Run PROGRAMS ARGS to compile a file, generating dependencies
   as side-effects.
   
   Environment variables:
     depmode     Dependency tracking mode.
     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 outputing dependencies.
     libtool     Whether libtool is used (yes/no).
   
   Report bugs to <bug-automake@gnu.org>.
   EOF
       exit 0
       ;;
     -v | --v*)
       echo "depcomp $scriptversion"
       exit 0
       ;;
   esac
   
 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
 fi  fi
 # `libtool' can also be set to `yes' or `no'.  
   
 if test -z "$depfile"; then  
    base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`  
    dir=`echo "$object" | sed 's,/.*$,/,'`  
    if test "$dir" = "$object"; then  
       dir=  
    fi  
    # FIXME: should be _deps on DOS.  
    depfile="$dir.deps/$base"  
 fi  
   
   # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
   depfile=${depfile-`echo "$object" |
     sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}  tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
   
 rm -f "$tmpdepfile"  rm -f "$tmpdepfile"
Line 172
 
Line 197
   
 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.  This file always lives in the current directory.    # in a .u file.  In older versions, this file always lives in the
   # Also, the AIX compiler puts `$object:' at the start of each line;    # current directory.  Also, the AIX compiler puts `$object:' at the
   # $object doesn't have directory information.    # start of each line; $object doesn't have directory information.
   stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`    # Version 6 uses the directory in both cases.
     stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
   tmpdepfile="$stripped.u"    tmpdepfile="$stripped.u"
   outname="$stripped.o"  
   if test "$libtool" = yes; then    if test "$libtool" = yes; then
     "$@" -Wc,-M      "$@" -Wc,-M
   else    else
     "$@" -M      "$@" -M
   fi    fi
   
   stat=$?    stat=$?
   
     if test -f "$tmpdepfile"; then :
     else
       stripped=`echo "$stripped" | sed 's,^.*/,,'`
       tmpdepfile="$stripped.u"
     fi
   
   if test $stat -eq 0; then :    if test $stat -eq 0; then :
   else    else
     rm -f "$tmpdepfile"      rm -f "$tmpdepfile"
Line 192
 
Line 223
   fi    fi
   
   if test -f "$tmpdepfile"; then    if test -f "$tmpdepfile"; then
       outname="$stripped.o"
     # 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:'.
Line 206
 
Line 238
   rm -f "$tmpdepfile"    rm -f "$tmpdepfile"
   ;;    ;;
   
   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 \ :
     #    foo.o: sub/foo.c ... \
     #     sub/foo.h ... \
     #     ...
   
     "$@" -MD -MF "$tmpdepfile"
     stat=$?
     if test $stat -eq 0; then :
     else
       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"
     ;;
   
 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'.
Line 217
 
Line 287
    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`     base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
   
    if test "$libtool" = yes; then     if test "$libtool" = yes; then
         # Dependencies are output in .lo.d with libtool 1.4.
         # With libtool 1.5 they are output both in $dir.libs/$base.o.d
         # and in $dir.libs/$base.o.d and $dir$base.o.d.  We process the
         # latter, because the former will be cleaned when $dir.libs is
         # erased.
       tmpdepfile1="$dir.libs/$base.lo.d"        tmpdepfile1="$dir.libs/$base.lo.d"
       tmpdepfile2="$dir.libs/$base.d"        tmpdepfile2="$dir$base.o.d"
         tmpdepfile3="$dir.libs/$base.d"
       "$@" -Wc,-MD        "$@" -Wc,-MD
    else     else
       tmpdepfile1="$dir$base.o.d"        tmpdepfile1="$dir$base.o.d"
       tmpdepfile2="$dir$base.d"        tmpdepfile2="$dir$base.d"
         tmpdepfile3="$dir$base.d"
       "$@" -MD        "$@" -MD
    fi     fi
   
    stat=$?     stat=$?
    if test $stat -eq 0; then :     if test $stat -eq 0; then :
    else     else
       rm -f "$tmpdepfile1" "$tmpdepfile2"        rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
       exit $stat        exit $stat
    fi     fi
   
    if test -f "$tmpdepfile1"; then     if test -f "$tmpdepfile1"; then
       tmpdepfile="$tmpdepfile1"        tmpdepfile="$tmpdepfile1"
    else     elif test -f "$tmpdepfile2"; then
       tmpdepfile="$tmpdepfile2"        tmpdepfile="$tmpdepfile2"
      else
         tmpdepfile="$tmpdepfile3"
    fi     fi
    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 space and a tab in the [].        # That's a tab and a space in the [].
       sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"        sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else     else
       echo "#dummy" > "$depfile"        echo "#dummy" > "$depfile"
Line 254
 
Line 333
   
 dashmstdout)  dashmstdout)
   # Important note: in order to support this mode, a compiler *must*    # Important note: in order to support this mode, a compiler *must*
   # always write the proprocessed file to stdout, regardless of -o.    # always write the preprocessed file to stdout, regardless of -o.
   "$@" || exit $?    "$@" || exit $?
   
   # Remove the call to Libtool.    # Remove the call to Libtool.
Line 265
 
Line 344
     shift      shift
   fi    fi
   
   # Remove `-o $object'.  We will use -o /dev/null later,    # Remove `-o $object'.
   # however we can't do the remplacement now because  
   # `-o $object' might simply not be used  
   IFS=" "    IFS=" "
   for arg    for arg
   do    do
Line 287
 
Line 364
   done    done
   
   test -z "$dashmflag" && dashmflag=-M    test -z "$dashmflag" && dashmflag=-M
   "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"    # 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.
     "$@" $dashmflag |
       sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"    rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"    cat < "$tmpdepfile" > "$depfile"
   tr ' ' '    tr ' ' '
Line 306
 
Line 387
   
 makedepend)  makedepend)
   "$@" || exit $?    "$@" || exit $?
     # Remove any Libtool call
     if test "$libtool" = yes; then
       while test $1 != '--mode=compile'; do
         shift
       done
       shift
     fi
   # X makedepend    # X makedepend
   shift    shift
   cleared=no    cleared=no
Line 318
 
Line 406
     case "$arg" in      case "$arg" in
     -D*|-I*)      -D*|-I*)
       set fnord "$@" "$arg"; shift ;;        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.
       -*|$object)
       ;;        ;;
     *)      *)
       set fnord "$@" "$arg"; shift ;;        set fnord "$@" "$arg"; shift ;;
Line 339
 
Line 429
   
 cpp)  cpp)
   # Important note: in order to support this mode, a compiler *must*    # Important note: in order to support this mode, a compiler *must*
   # always write the proprocessed file to stdout.    # always write the preprocessed file to stdout.
   "$@" || exit $?    "$@" || exit $?
   
   # Remove the call to Libtool.    # Remove the call to Libtool.
Line 381
 
Line 471
   
 msvisualcpp)  msvisualcpp)
   # Important note: in order to support this mode, a compiler *must*    # Important note: in order to support this mode, a compiler *must*
   # always write the proprocessed file to stdout, regardless of -o,    # always write the preprocessed file to stdout, regardless of -o,
   # because we must use -o when running libtool.    # because we must use -o when running libtool.
   "$@" || exit $?    "$@" || exit $?
   IFS=" "    IFS=" "
Line 421
 
Line 511
 esac  esac
   
 exit 0  exit 0
   
   # Local Variables:
   # mode: shell-script
   # sh-indentation: 2
   # eval: (add-hook 'write-file-hooks 'time-stamp)
   # time-stamp-start: "scriptversion="
   # time-stamp-format: "%:y-%02m-%02d.%02H"
   # time-stamp-end: "$"
   # End:


Legend:
line(s) removed in v.1.1 
line(s) changed
 line(s) added in v.1.2

File made using version 1.98 of cvs2html by leaf at 2011-07-21 17:02