2
2
# depcomp - compile a program generating dependencies as side-effects
4
scriptversion=2005-07-09.11
4
scriptversion=2006-10-15.18
6
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
6
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
8
9
# This program is free software; you can redistribute it and/or modify
9
10
# it under the terms of the GNU General Public License as published by
91
92
## gcc 3 implements dependency tracking that does exactly what
92
93
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
93
94
## it if -MD -MP comes after the -MF stuff. Hmm.
94
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
95
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
96
## the command line argument order; so add the flags where they
97
## appear in depend2.am. Note that the slowdown incurred here
98
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
102
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
103
*) set fnord "$@" "$arg" ;;
96
110
if test $stat -eq 0; then :
276
290
rm -f "$tmpdepfile"
294
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
295
# compilers, which have integrated preprocessors. The correct option
296
# to use with these is +Maked; it writes dependencies to a file named
297
# 'foo.d', which lands next to the object file, wherever that
299
# Much of this is similar to the tru64 case; see comments there.
300
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
301
test "x$dir" = "x$object" && dir=
302
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
303
if test "$libtool" = yes; then
304
tmpdepfile1=$dir$base.d
305
tmpdepfile2=$dir.libs/$base.d
308
tmpdepfile1=$dir$base.d
309
tmpdepfile2=$dir$base.d
313
if test $stat -eq 0; then :
315
rm -f "$tmpdepfile1" "$tmpdepfile2"
319
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
321
test -f "$tmpdepfile" && break
323
if test -f "$tmpdepfile"; then
324
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
325
# Add `dependent.h:' lines.
326
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
328
echo "#dummy" > "$depfile"
330
rm -f "$tmpdepfile" "$tmpdepfile2"
280
334
# The Tru64 compiler uses -MD to generate dependencies as a side
281
335
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
289
343
if test "$libtool" = yes; then
290
344
# 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
345
# static library. This mechanism is used in libtool 1.4 series to
292
346
# handle both shared and static libraries in a single compilation.
293
347
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
295
349
# With libtool 1.5 this exception was removed, and libtool now
296
350
# generates 2 separate objects for the 2 libraries. These two
297
# compilations output dependencies in in $dir.libs/$base.o.d and
351
# compilations output dependencies in $dir.libs/$base.o.d and
298
352
# in $dir$base.o.d. We have to check for both files, because
299
353
# one of the two compilations can be disabled. We should prefer
300
354
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is