~ubuntu-branches/ubuntu/edgy/libxpm/edgy

« back to all changes in this revision

Viewing changes to depcomp

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Stone
  • Date: 2005-12-21 13:30:35 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20051221133035-22czwyhoyie60o17
Tags: 1:3.5.4.2-0ubuntu1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#! /bin/sh
 
2
 
2
3
# depcomp - compile a program generating dependencies as side-effects
3
 
 
4
 
scriptversion=2005-02-09.22
5
 
 
6
 
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
 
4
# Copyright 1999, 2000, 2003 Free Software Foundation, Inc.
7
5
 
8
6
# This program is free software; you can redistribute it and/or modify
9
7
# it under the terms of the GNU General Public License as published by
27
25
 
28
26
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
29
27
 
30
 
case $1 in
31
 
  '')
32
 
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
33
 
     exit 1;
34
 
     ;;
35
 
  -h | --h*)
36
 
    cat <<\EOF
37
 
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
38
 
 
39
 
Run PROGRAMS ARGS to compile a file, generating dependencies
40
 
as side-effects.
41
 
 
42
 
Environment variables:
43
 
  depmode     Dependency tracking mode.
44
 
  source      Source file read by `PROGRAMS ARGS'.
45
 
  object      Object file output by `PROGRAMS ARGS'.
46
 
  DEPDIR      directory where to store dependencies.
47
 
  depfile     Dependency file to output.
48
 
  tmpdepfile  Temporary file to use when outputing dependencies.
49
 
  libtool     Whether libtool is used (yes/no).
50
 
 
51
 
Report bugs to <bug-automake@gnu.org>.
52
 
EOF
53
 
    exit $?
54
 
    ;;
55
 
  -v | --v*)
56
 
    echo "depcomp $scriptversion"
57
 
    exit $?
58
 
    ;;
59
 
esac
60
 
 
61
28
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
62
29
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
63
30
  exit 1
64
31
fi
65
 
 
66
 
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
67
 
depfile=${depfile-`echo "$object" |
68
 
  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
 
32
# `libtool' can also be set to `yes' or `no'.
 
33
 
 
34
if test -z "$depfile"; then
 
35
   base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
 
36
   dir=`echo "$object" | sed 's,/.*$,/,'`
 
37
   if test "$dir" = "$object"; then
 
38
      dir=
 
39
   fi
 
40
   # FIXME: should be _deps on DOS.
 
41
   depfile="$dir.deps/$base"
 
42
fi
 
43
 
69
44
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
70
45
 
71
46
rm -f "$tmpdepfile"
287
262
   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
288
263
 
289
264
   if test "$libtool" = yes; then
290
 
      # 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
292
 
      # handle both shared and static libraries in a single compilation.
293
 
      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
294
 
      #
295
 
      # With libtool 1.5 this exception was removed, and libtool now
296
 
      # generates 2 separate objects for the 2 libraries.  These two
297
 
      # compilations output dependencies in in $dir.libs/$base.o.d and
298
 
      # in $dir$base.o.d.  We have to check for both files, because
299
 
      # one of the two compilations can be disabled.  We should prefer
300
 
      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
301
 
      # automatically cleaned when .libs/ is deleted, while ignoring
302
 
      # the former would cause a distcleancheck panic.
303
 
      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
304
 
      tmpdepfile2=$dir$base.o.d          # libtool 1.5
305
 
      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
306
 
      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
 
265
      tmpdepfile1="$dir.libs/$base.lo.d"
 
266
      tmpdepfile2="$dir.libs/$base.d"
307
267
      "$@" -Wc,-MD
308
268
   else
309
 
      tmpdepfile1=$dir$base.o.d
310
 
      tmpdepfile2=$dir$base.d
311
 
      tmpdepfile3=$dir$base.d
312
 
      tmpdepfile4=$dir$base.d
 
269
      tmpdepfile1="$dir$base.o.d"
 
270
      tmpdepfile2="$dir$base.d"
313
271
      "$@" -MD
314
272
   fi
315
273
 
316
274
   stat=$?
317
275
   if test $stat -eq 0; then :
318
276
   else
319
 
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
 
277
      rm -f "$tmpdepfile1" "$tmpdepfile2"
320
278
      exit $stat
321
279
   fi
322
280
 
323
 
   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
324
 
   do
325
 
     test -f "$tmpdepfile" && break
326
 
   done
 
281
   if test -f "$tmpdepfile1"; then
 
282
      tmpdepfile="$tmpdepfile1"
 
283
   else
 
284
      tmpdepfile="$tmpdepfile2"
 
285
   fi
327
286
   if test -f "$tmpdepfile"; then
328
287
      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
329
288
      # That's a tab and a space in the [].
518
477
esac
519
478
 
520
479
exit 0
521
 
 
522
 
# Local Variables:
523
 
# mode: shell-script
524
 
# sh-indentation: 2
525
 
# eval: (add-hook 'write-file-hooks 'time-stamp)
526
 
# time-stamp-start: "scriptversion="
527
 
# time-stamp-format: "%:y-%02m-%02d.%02H"
528
 
# time-stamp-end: "$"
529
 
# End: