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