~ubuntu-branches/ubuntu/saucy/avr-libc/saucy

« back to all changes in this revision

Viewing changes to depcomp

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2011-07-14 11:15:32 UTC
  • mfrom: (1.1.10 upstream) (4.1.6 sid)
  • Revision ID: james.westby@ubuntu.com-20110714111532-e83i3vqdowgxw8lv
Tags: 1:1.7.1-2
include/util/delay.h.in: Add math.h to list of includes (closes:
#633822)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#! /bin/sh
2
2
# depcomp - compile a program generating dependencies as side-effects
3
3
 
4
 
scriptversion=2004-05-31.23
 
4
scriptversion=2007-03-29.01
5
5
 
6
 
# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
 
6
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
 
7
# Foundation, Inc.
7
8
 
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
17
18
 
18
19
# You should have received a copy of the GNU General Public License
19
20
# 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.
 
21
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 
22
# 02110-1301, USA.
22
23
 
23
24
# As a special exception to the GNU General Public License, if you
24
25
# distribute this file as part of a program that contains a
50
51
 
51
52
Report bugs to <bug-automake@gnu.org>.
52
53
EOF
53
 
    exit 0
 
54
    exit $?
54
55
    ;;
55
56
  -v | --v*)
56
57
    echo "depcomp $scriptversion"
57
 
    exit 0
 
58
    exit $?
58
59
    ;;
59
60
esac
60
61
 
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.
 
99
  for arg
 
100
  do
 
101
    case $arg in
 
102
    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
 
103
    *)  set fnord "$@" "$arg" ;;
 
104
    esac
 
105
    shift # fnord
 
106
    shift # $arg
 
107
  done
 
108
  "$@"
95
109
  stat=$?
96
110
  if test $stat -eq 0; then :
97
111
  else
201
215
  # current directory.  Also, the AIX compiler puts `$object:' at the
202
216
  # start of each line; $object doesn't have directory information.
203
217
  # Version 6 uses the directory in both cases.
204
 
  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
205
 
  tmpdepfile="$stripped.u"
 
218
  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
 
219
  test "x$dir" = "x$object" && dir=
 
220
  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
206
221
  if test "$libtool" = yes; then
 
222
    tmpdepfile1=$dir$base.u
 
223
    tmpdepfile2=$base.u
 
224
    tmpdepfile3=$dir.libs/$base.u
207
225
    "$@" -Wc,-M
208
226
  else
 
227
    tmpdepfile1=$dir$base.u
 
228
    tmpdepfile2=$dir$base.u
 
229
    tmpdepfile3=$dir$base.u
209
230
    "$@" -M
210
231
  fi
211
232
  stat=$?
212
233
 
213
 
  if test -f "$tmpdepfile"; then :
214
 
  else
215
 
    stripped=`echo "$stripped" | sed 's,^.*/,,'`
216
 
    tmpdepfile="$stripped.u"
217
 
  fi
218
 
 
219
234
  if test $stat -eq 0; then :
220
235
  else
221
 
    rm -f "$tmpdepfile"
 
236
    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
222
237
    exit $stat
223
238
  fi
224
239
 
 
240
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
 
241
  do
 
242
    test -f "$tmpdepfile" && break
 
243
  done
225
244
  if test -f "$tmpdepfile"; then
226
 
    outname="$stripped.o"
227
245
    # Each line is of the form `foo.o: dependent.h'.
228
246
    # Do two passes, one to just change these to
229
247
    # `$object: dependent.h' and one to simply `dependent.h:'.
230
 
    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
231
 
    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
 
248
    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
 
249
    # That's a tab and a space in the [].
 
250
    sed -e 's,^.*\.[a-z]*:[      ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
232
251
  else
233
252
    # The sourcefile does not contain any dependencies, so just
234
253
    # store a dummy comment line, to avoid errors with the Makefile
276
295
  rm -f "$tmpdepfile"
277
296
  ;;
278
297
 
 
298
hp2)
 
299
  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
 
300
  # compilers, which have integrated preprocessors.  The correct option
 
301
  # to use with these is +Maked; it writes dependencies to a file named
 
302
  # 'foo.d', which lands next to the object file, wherever that
 
303
  # happens to be.
 
304
  # Much of this is similar to the tru64 case; see comments there.
 
305
  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
 
306
  test "x$dir" = "x$object" && dir=
 
307
  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
 
308
  if test "$libtool" = yes; then
 
309
    tmpdepfile1=$dir$base.d
 
310
    tmpdepfile2=$dir.libs/$base.d
 
311
    "$@" -Wc,+Maked
 
312
  else
 
313
    tmpdepfile1=$dir$base.d
 
314
    tmpdepfile2=$dir$base.d
 
315
    "$@" +Maked
 
316
  fi
 
317
  stat=$?
 
318
  if test $stat -eq 0; then :
 
319
  else
 
320
     rm -f "$tmpdepfile1" "$tmpdepfile2"
 
321
     exit $stat
 
322
  fi
 
323
 
 
324
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
 
325
  do
 
326
    test -f "$tmpdepfile" && break
 
327
  done
 
328
  if test -f "$tmpdepfile"; then
 
329
    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
 
330
    # Add `dependent.h:' lines.
 
331
    sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
 
332
  else
 
333
    echo "#dummy" > "$depfile"
 
334
  fi
 
335
  rm -f "$tmpdepfile" "$tmpdepfile2"
 
336
  ;;
 
337
 
279
338
tru64)
280
339
   # The Tru64 compiler uses -MD to generate dependencies as a side
281
340
   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
287
346
   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
288
347
 
289
348
   if test "$libtool" = yes; then
290
 
      # Dependencies are output in .lo.d with libtool 1.4.
291
 
      # With libtool 1.5 they are output both in $dir.libs/$base.o.d
292
 
      # and in $dir.libs/$base.o.d and $dir$base.o.d.  We process the
293
 
      # latter, because the former will be cleaned when $dir.libs is
294
 
      # erased.
295
 
      tmpdepfile1="$dir.libs/$base.lo.d"
296
 
      tmpdepfile2="$dir$base.o.d"
297
 
      tmpdepfile3="$dir.libs/$base.d"
 
349
      # With Tru64 cc, shared objects can also be used to make a
 
350
      # static library.  This mechanism is used in libtool 1.4 series to
 
351
      # handle both shared and static libraries in a single compilation.
 
352
      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
 
353
      #
 
354
      # With libtool 1.5 this exception was removed, and libtool now
 
355
      # generates 2 separate objects for the 2 libraries.  These two
 
356
      # compilations output dependencies in $dir.libs/$base.o.d and
 
357
      # in $dir$base.o.d.  We have to check for both files, because
 
358
      # one of the two compilations can be disabled.  We should prefer
 
359
      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
 
360
      # automatically cleaned when .libs/ is deleted, while ignoring
 
361
      # the former would cause a distcleancheck panic.
 
362
      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
 
363
      tmpdepfile2=$dir$base.o.d          # libtool 1.5
 
364
      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
 
365
      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
298
366
      "$@" -Wc,-MD
299
367
   else
300
 
      tmpdepfile1="$dir$base.o.d"
301
 
      tmpdepfile2="$dir$base.d"
302
 
      tmpdepfile3="$dir$base.d"
 
368
      tmpdepfile1=$dir$base.o.d
 
369
      tmpdepfile2=$dir$base.d
 
370
      tmpdepfile3=$dir$base.d
 
371
      tmpdepfile4=$dir$base.d
303
372
      "$@" -MD
304
373
   fi
305
374
 
306
375
   stat=$?
307
376
   if test $stat -eq 0; then :
308
377
   else
309
 
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
 
378
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
310
379
      exit $stat
311
380
   fi
312
381
 
313
 
   if test -f "$tmpdepfile1"; then
314
 
      tmpdepfile="$tmpdepfile1"
315
 
   elif test -f "$tmpdepfile2"; then
316
 
      tmpdepfile="$tmpdepfile2"
317
 
   else
318
 
      tmpdepfile="$tmpdepfile3"
319
 
   fi
 
382
   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
 
383
   do
 
384
     test -f "$tmpdepfile" && break
 
385
   done
320
386
   if test -f "$tmpdepfile"; then
321
387
      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
322
388
      # That's a tab and a space in the [].
460
526
  done
461
527
 
462
528
  "$@" -E |
463
 
    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
 
529
    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
 
530
       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
464
531
    sed '$ s: \\$::' > "$tmpdepfile"
465
532
  rm -f "$depfile"
466
533
  echo "$object : \\" > "$depfile"