Ignore:
Timestamp:
Sep 15, 2006, 7:09:38 AM (19 years ago)
Author:
bird
Message:

Untested merge with GNU Make v3.81 (vendor/gnumake/2005-05-16 -> vendor/gnumake/current).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gmake/config/depcomp

    • Property svn:executable set to *
    r151 r503  
    22# depcomp - compile a program generating dependencies as side-effects
    33
    4 scriptversion=2003-11-08.23
    5 
    6 # Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
     4scriptversion=2005-07-09.11
     5
     6# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    77
    88# This program is free software; you can redistribute it and/or modify
     
    1818# You should have received a copy of the GNU General Public License
    1919# along with this program; if not, write to the Free Software
    20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    21 # 02111-1307, USA.
     20# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
     21# 02110-1301, USA.
    2222
    2323# As a special exception to the GNU General Public License, if you
     
    4444  source      Source file read by `PROGRAMS ARGS'.
    4545  object      Object file output by `PROGRAMS ARGS'.
     46  DEPDIR      directory where to store dependencies.
    4647  depfile     Dependency file to output.
    4748  tmpdepfile  Temporary file to use when outputing dependencies.
     
    5051Report bugs to <bug-automake@gnu.org>.
    5152EOF
    52     exit 0
     53    exit $?
    5354    ;;
    5455  -v | --v*)
    5556    echo "depcomp $scriptversion"
    56     exit 0
     57    exit $?
    5758    ;;
    5859esac
     
    6263  exit 1
    6364fi
    64 # `libtool' can also be set to `yes' or `no'.
    65 
    66 if test -z "$depfile"; then
    67    base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
    68    dir=`echo "$object" | sed 's,/.*$,/,'`
    69    if test "$dir" = "$object"; then
    70       dir=
    71    fi
    72    # FIXME: should be _deps on DOS.
    73    depfile="$dir.deps/$base"
    74 fi
    75 
     65
     66# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
     67depfile=${depfile-`echo "$object" |
     68  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
    7669tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
    7770
     
    295288
    296289   if test "$libtool" = yes; then
    297       tmpdepfile1="$dir.libs/$base.lo.d"
    298       tmpdepfile2="$dir.libs/$base.d"
     290      # With Tru64 cc, shared objects can also be used to make a
     291      # static library.  This mecanism is used in libtool 1.4 series to
     292      # handle both shared and static libraries in a single compilation.
     293      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
     294      #
     295      # With libtool 1.5 this exception was removed, and libtool now
     296      # generates 2 separate objects for the 2 libraries.  These two
     297      # compilations output dependencies in in $dir.libs/$base.o.d and
     298      # in $dir$base.o.d.  We have to check for both files, because
     299      # one of the two compilations can be disabled.  We should prefer
     300      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
     301      # automatically cleaned when .libs/ is deleted, while ignoring
     302      # the former would cause a distcleancheck panic.
     303      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
     304      tmpdepfile2=$dir$base.o.d          # libtool 1.5
     305      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
     306      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
    299307      "$@" -Wc,-MD
    300308   else
    301       tmpdepfile1="$dir$base.o.d"
    302       tmpdepfile2="$dir$base.d"
     309      tmpdepfile1=$dir$base.o.d
     310      tmpdepfile2=$dir$base.d
     311      tmpdepfile3=$dir$base.d
     312      tmpdepfile4=$dir$base.d
    303313      "$@" -MD
    304314   fi
     
    307317   if test $stat -eq 0; then :
    308318   else
    309       rm -f "$tmpdepfile1" "$tmpdepfile2"
     319      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
    310320      exit $stat
    311321   fi
    312322
    313    if test -f "$tmpdepfile1"; then
    314       tmpdepfile="$tmpdepfile1"
    315    else
    316       tmpdepfile="$tmpdepfile2"
    317    fi
     323   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
     324   do
     325     test -f "$tmpdepfile" && break
     326   done
    318327   if test -f "$tmpdepfile"; then
    319328      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
     
    459468
    460469  "$@" -E |
    461     sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
     470    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
     471       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
    462472    sed '$ s: \\$::' > "$tmpdepfile"
    463473  rm -f "$depfile"
Note: See TracChangeset for help on using the changeset viewer.