2
2
# depcomp - compile a program generating dependencies as side-effects
4
scriptversion=2006-10-15.18
4
scriptversion=2009-04-28.21; # UTC
6
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
6
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
7
# Software Foundation, Inc.
9
9
# This program is free software; you can redistribute it and/or modify
10
10
# it under the terms of the GNU General Public License as published by
17
17
# GNU General Public License for more details.
19
19
# You should have received a copy of the GNU General Public License
20
# along with this program; if not, write to the Free Software
21
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20
# along with this program. If not, see <http://www.gnu.org/licenses/>.
24
22
# As a special exception to the GNU General Public License, if you
25
23
# distribute this file as part of a program that contains a
87
85
depmode=dashmstdout
88
cygpath_u="cygpath -u -f -"
89
if test "$depmode" = msvcmsys; then
90
# This is just like msvisualcpp but w/o cygpath translation.
91
# Just convert the backslash-escaped backslashes to single forward
92
# slashes to satisfy depend.m4
93
cygpath_u="sed s,\\\\\\\\,/,g"
92
99
## gcc 3 implements dependency tracking that does exactly what
192
199
' < "$tmpdepfile" \
193
200
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
198
205
# The second pass generates a dummy entry for each header file.
200
207
' < "$tmpdepfile" \
201
208
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
204
211
# The sourcefile does not contain any dependencies, so just
205
212
# store a dummy comment line, to avoid errors with the Makefile
215
222
# current directory. Also, the AIX compiler puts `$object:' at the
216
223
# start of each line; $object doesn't have directory information.
217
224
# Version 6 uses the directory in both cases.
218
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
219
tmpdepfile="$stripped.u"
225
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
226
test "x$dir" = "x$object" && dir=
227
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
220
228
if test "$libtool" = yes; then
229
tmpdepfile1=$dir$base.u
231
tmpdepfile3=$dir.libs/$base.u
234
tmpdepfile1=$dir$base.u
235
tmpdepfile2=$dir$base.u
236
tmpdepfile3=$dir$base.u
227
if test -f "$tmpdepfile"; then :
229
stripped=`echo "$stripped" | sed 's,^.*/,,'`
230
tmpdepfile="$stripped.u"
233
241
if test $stat -eq 0; then :
243
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
247
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
249
test -f "$tmpdepfile" && break
239
251
if test -f "$tmpdepfile"; then
240
outname="$stripped.o"
241
252
# Each line is of the form `foo.o: dependent.h'.
242
253
# Do two passes, one to just change these to
243
254
# `$object: dependent.h' and one to simply `dependent.h:'.
244
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
245
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
255
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
256
# That's a tab and a space in the [].
257
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
247
259
# The sourcefile does not contain any dependencies, so just
248
260
# store a dummy comment line, to avoid errors with the Makefile
323
335
if test -f "$tmpdepfile"; then
324
336
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
325
337
# Add `dependent.h:' lines.
326
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
343
}' "$tmpdepfile" >> "$depfile"
328
345
echo "#dummy" > "$depfile"
451
468
# Remove any Libtool call
452
469
if test "$libtool" = yes; then
453
while test $1 != '--mode=compile'; do
470
while test "X$1" != 'X--mode=compile'; do
485
if test $eat = yes; then
469
491
set fnord "$@" "$arg"; shift ;;
470
492
# Strip any option that makedepend may not understand. Remove
471
493
# the object too, otherwise makedepend will parse it as a source file.
475
499
set fnord "$@" "$arg"; shift ;;
478
obj_suffix="`echo $object | sed 's/^.*\././'`"
502
obj_suffix=`echo "$object" | sed 's/^.*\././'`
479
503
touch "$tmpdepfile"
480
504
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
535
559
# Important note: in order to support this mode, a compiler *must*
536
# always write the preprocessed file to stdout, regardless of -o,
537
# because we must use -o when running libtool.
560
# always write the preprocessed file to stdout.
563
# Remove the call to Libtool.
564
if test "$libtool" = yes; then
565
while test "X$1" != 'X--mode=compile'; do
543
581
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
556
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
593
"$@" -E 2>/dev/null |
594
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
558
596
echo "$object : \\" > "$depfile"
559
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
597
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
560
598
echo " " >> "$depfile"
561
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
599
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
562
600
rm -f "$tmpdepfile"
604
# This case exists only to let depend.m4 do its work. It works by
605
# looking at the text of this script. This case will never be run,
606
# since it is checked for above.
580
625
# eval: (add-hook 'write-file-hooks 'time-stamp)
581
626
# time-stamp-start: "scriptversion="
582
627
# time-stamp-format: "%:y-%02m-%02d.%02H"
583
# time-stamp-end: "$"
628
# time-stamp-time-zone: "UTC"
629
# time-stamp-end: "; # UTC"