~ubuntu-branches/ubuntu/raring/gigedit/raring

« back to all changes in this revision

Viewing changes to depcomp

  • Committer: Bazaar Package Importer
  • Author(s): Alessio Treglia
  • Date: 2011-02-08 23:43:24 UTC
  • mfrom: (3.1.2 natty)
  • Revision ID: james.westby@ubuntu.com-20110208234324-y4etux3ihk36apjf
Tags: 0.2.0-1
* Upload to unstable.
* debian/gbp.conf: Set sign-tags to True.

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=2006-10-15.18
 
4
scriptversion=2004-04-25.13
5
5
 
6
 
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
7
 
# Foundation, Inc.
 
6
# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
8
7
 
9
8
# This program is free software; you can redistribute it and/or modify
10
9
# it under the terms of the GNU General Public License as published by
18
17
 
19
18
# You should have received a copy of the GNU General Public License
20
19
# along with this program; if not, write to the Free Software
21
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22
 
# 02110-1301, USA.
 
20
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 
21
# 02111-1307, USA.
23
22
 
24
23
# As a special exception to the GNU General Public License, if you
25
24
# distribute this file as part of a program that contains a
44
43
  depmode     Dependency tracking mode.
45
44
  source      Source file read by `PROGRAMS ARGS'.
46
45
  object      Object file output by `PROGRAMS ARGS'.
47
 
  DEPDIR      directory where to store dependencies.
48
46
  depfile     Dependency file to output.
49
47
  tmpdepfile  Temporary file to use when outputing dependencies.
50
48
  libtool     Whether libtool is used (yes/no).
51
49
 
52
50
Report bugs to <bug-automake@gnu.org>.
53
51
EOF
54
 
    exit $?
 
52
    exit 0
55
53
    ;;
56
54
  -v | --v*)
57
55
    echo "depcomp $scriptversion"
58
 
    exit $?
 
56
    exit 0
59
57
    ;;
60
58
esac
61
59
 
63
61
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
64
62
  exit 1
65
63
fi
66
 
 
67
 
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
68
 
depfile=${depfile-`echo "$object" |
69
 
  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
 
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
 
70
76
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
71
77
 
72
78
rm -f "$tmpdepfile"
92
98
## gcc 3 implements dependency tracking that does exactly what
93
99
## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
94
100
## it if -MD -MP comes after the -MF stuff.  Hmm.
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
 
  "$@"
 
101
  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
109
102
  stat=$?
110
103
  if test $stat -eq 0; then :
111
104
  else
290
283
  rm -f "$tmpdepfile"
291
284
  ;;
292
285
 
293
 
hp2)
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
298
 
  # happens to be.
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
306
 
    "$@" -Wc,+Maked
307
 
  else
308
 
    tmpdepfile1=$dir$base.d
309
 
    tmpdepfile2=$dir$base.d
310
 
    "$@" +Maked
311
 
  fi
312
 
  stat=$?
313
 
  if test $stat -eq 0; then :
314
 
  else
315
 
     rm -f "$tmpdepfile1" "$tmpdepfile2"
316
 
     exit $stat
317
 
  fi
318
 
 
319
 
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
320
 
  do
321
 
    test -f "$tmpdepfile" && break
322
 
  done
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"
327
 
  else
328
 
    echo "#dummy" > "$depfile"
329
 
  fi
330
 
  rm -f "$tmpdepfile" "$tmpdepfile2"
331
 
  ;;
332
 
 
333
286
tru64)
334
287
   # The Tru64 compiler uses -MD to generate dependencies as a side
335
288
   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
341
294
   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
342
295
 
343
296
   if test "$libtool" = yes; then
344
 
      # With Tru64 cc, shared objects can also be used to make a
345
 
      # static library.  This mechanism is used in libtool 1.4 series to
346
 
      # handle both shared and static libraries in a single compilation.
347
 
      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
348
 
      #
349
 
      # With libtool 1.5 this exception was removed, and libtool now
350
 
      # generates 2 separate objects for the 2 libraries.  These two
351
 
      # compilations output dependencies in $dir.libs/$base.o.d and
352
 
      # in $dir$base.o.d.  We have to check for both files, because
353
 
      # one of the two compilations can be disabled.  We should prefer
354
 
      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
355
 
      # automatically cleaned when .libs/ is deleted, while ignoring
356
 
      # the former would cause a distcleancheck panic.
357
 
      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
358
 
      tmpdepfile2=$dir$base.o.d          # libtool 1.5
359
 
      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
360
 
      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
 
297
      # Dependencies are output in .lo.d with libtool 1.4.
 
298
      # They are output in .o.d with libtool 1.5.
 
299
      tmpdepfile1="$dir.libs/$base.lo.d"
 
300
      tmpdepfile2="$dir.libs/$base.o.d"
 
301
      tmpdepfile3="$dir.libs/$base.d"
361
302
      "$@" -Wc,-MD
362
303
   else
363
 
      tmpdepfile1=$dir$base.o.d
364
 
      tmpdepfile2=$dir$base.d
365
 
      tmpdepfile3=$dir$base.d
366
 
      tmpdepfile4=$dir$base.d
 
304
      tmpdepfile1="$dir$base.o.d"
 
305
      tmpdepfile2="$dir$base.d"
 
306
      tmpdepfile3="$dir$base.d"
367
307
      "$@" -MD
368
308
   fi
369
309
 
370
310
   stat=$?
371
311
   if test $stat -eq 0; then :
372
312
   else
373
 
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
 
313
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
374
314
      exit $stat
375
315
   fi
376
316
 
377
 
   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
378
 
   do
379
 
     test -f "$tmpdepfile" && break
380
 
   done
 
317
   if test -f "$tmpdepfile1"; then
 
318
      tmpdepfile="$tmpdepfile1"
 
319
   elif test -f "$tmpdepfile2"; then
 
320
      tmpdepfile="$tmpdepfile2"
 
321
   else
 
322
      tmpdepfile="$tmpdepfile3"
 
323
   fi
381
324
   if test -f "$tmpdepfile"; then
382
325
      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
383
326
      # That's a tab and a space in the [].
521
464
  done
522
465
 
523
466
  "$@" -E |
524
 
    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
525
 
       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
 
467
    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
526
468
    sed '$ s: \\$::' > "$tmpdepfile"
527
469
  rm -f "$depfile"
528
470
  echo "$object : \\" > "$depfile"