3
2
# depcomp - compile a program generating dependencies as side-effects
4
# Copyright 1999, 2000, 2003 Free Software Foundation, Inc.
4
scriptversion=2004-05-31.23
6
# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
6
8
# This program is free software; you can redistribute it and/or modify
7
9
# it under the terms of the GNU General Public License as published by
26
28
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
32
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
37
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
39
Run PROGRAMS ARGS to compile a file, generating dependencies
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).
51
Report bugs to <bug-automake@gnu.org>.
56
echo "depcomp $scriptversion"
28
61
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
29
62
echo "depcomp: Variables source, object and depmode must be set" 1>&2
32
# `libtool' can also be set to `yes' or `no'.
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
40
# FIXME: should be _deps on DOS.
41
depfile="$dir.deps/$base"
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|'`}
44
69
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
46
71
rm -f "$tmpdepfile"
262
287
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
264
289
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
265
295
tmpdepfile1="$dir.libs/$base.lo.d"
266
tmpdepfile2="$dir.libs/$base.d"
296
tmpdepfile2="$dir$base.o.d"
297
tmpdepfile3="$dir.libs/$base.d"
269
300
tmpdepfile1="$dir$base.o.d"
270
301
tmpdepfile2="$dir$base.d"
302
tmpdepfile3="$dir$base.d"
275
307
if test $stat -eq 0; then :
277
rm -f "$tmpdepfile1" "$tmpdepfile2"
309
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
281
313
if test -f "$tmpdepfile1"; then
282
314
tmpdepfile="$tmpdepfile1"
315
elif test -f "$tmpdepfile2"; then
284
316
tmpdepfile="$tmpdepfile2"
318
tmpdepfile="$tmpdepfile3"
286
320
if test -f "$tmpdepfile"; then
287
321
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"