~ubuntu-branches/ubuntu/hardy/speex/hardy-security

« back to all changes in this revision

Viewing changes to depcomp

  • Committer: Bazaar Package Importer
  • Author(s): Mark Purcell
  • Date: 2005-12-07 23:22:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20051207232221-nme7vf9m182p7dpe
Tags: 1.1.11.1-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#! /bin/sh
2
 
 
3
2
# depcomp - compile a program generating dependencies as side-effects
4
 
# Copyright 1999, 2000 Free Software Foundation, Inc.
 
3
 
 
4
scriptversion=2004-04-25.13
 
5
 
 
6
# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
5
7
 
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
25
27
 
26
28
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
27
29
 
 
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
  depfile     Dependency file to output.
 
47
  tmpdepfile  Temporary file to use when outputing dependencies.
 
48
  libtool     Whether libtool is used (yes/no).
 
49
 
 
50
Report bugs to <bug-automake@gnu.org>.
 
51
EOF
 
52
    exit 0
 
53
    ;;
 
54
  -v | --v*)
 
55
    echo "depcomp $scriptversion"
 
56
    exit 0
 
57
    ;;
 
58
esac
 
59
 
28
60
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
29
61
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
30
62
  exit 1
172
204
 
173
205
aix)
174
206
  # The C for AIX Compiler uses -M and outputs the dependencies
175
 
  # in a .u file.  This file always lives in the current directory.
176
 
  # Also, the AIX compiler puts `$object:' at the start of each line;
177
 
  # $object doesn't have directory information.
178
 
  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
 
207
  # in a .u file.  In older versions, this file always lives in the
 
208
  # current directory.  Also, the AIX compiler puts `$object:' at the
 
209
  # start of each line; $object doesn't have directory information.
 
210
  # Version 6 uses the directory in both cases.
 
211
  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
179
212
  tmpdepfile="$stripped.u"
180
 
  outname="$stripped.o"
181
213
  if test "$libtool" = yes; then
182
214
    "$@" -Wc,-M
183
215
  else
184
216
    "$@" -M
185
217
  fi
186
 
 
187
218
  stat=$?
 
219
 
 
220
  if test -f "$tmpdepfile"; then :
 
221
  else
 
222
    stripped=`echo "$stripped" | sed 's,^.*/,,'`
 
223
    tmpdepfile="$stripped.u"
 
224
  fi
 
225
 
188
226
  if test $stat -eq 0; then :
189
227
  else
190
228
    rm -f "$tmpdepfile"
192
230
  fi
193
231
 
194
232
  if test -f "$tmpdepfile"; then
 
233
    outname="$stripped.o"
195
234
    # Each line is of the form `foo.o: dependent.h'.
196
235
    # Do two passes, one to just change these to
197
236
    # `$object: dependent.h' and one to simply `dependent.h:'.
206
245
  rm -f "$tmpdepfile"
207
246
  ;;
208
247
 
 
248
icc)
 
249
  # Intel's C compiler understands `-MD -MF file'.  However on
 
250
  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
 
251
  # ICC 7.0 will fill foo.d with something like
 
252
  #    foo.o: sub/foo.c
 
253
  #    foo.o: sub/foo.h
 
254
  # which is wrong.  We want:
 
255
  #    sub/foo.o: sub/foo.c
 
256
  #    sub/foo.o: sub/foo.h
 
257
  #    sub/foo.c:
 
258
  #    sub/foo.h:
 
259
  # ICC 7.1 will output
 
260
  #    foo.o: sub/foo.c sub/foo.h
 
261
  # and will wrap long lines using \ :
 
262
  #    foo.o: sub/foo.c ... \
 
263
  #     sub/foo.h ... \
 
264
  #     ...
 
265
 
 
266
  "$@" -MD -MF "$tmpdepfile"
 
267
  stat=$?
 
268
  if test $stat -eq 0; then :
 
269
  else
 
270
    rm -f "$tmpdepfile"
 
271
    exit $stat
 
272
  fi
 
273
  rm -f "$depfile"
 
274
  # Each line is of the form `foo.o: dependent.h',
 
275
  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
 
276
  # Do two passes, one to just change these to
 
277
  # `$object: dependent.h' and one to simply `dependent.h:'.
 
278
  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
 
279
  # Some versions of the HPUX 10.20 sed can't process this invocation
 
280
  # correctly.  Breaking it into two sed invocations is a workaround.
 
281
  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
 
282
    sed -e 's/$/ :/' >> "$depfile"
 
283
  rm -f "$tmpdepfile"
 
284
  ;;
 
285
 
209
286
tru64)
210
287
   # The Tru64 compiler uses -MD to generate dependencies as a side
211
288
   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
217
294
   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
218
295
 
219
296
   if test "$libtool" = yes; then
 
297
      # Dependencies are output in .lo.d with libtool 1.4.
 
298
      # They are output in .o.d with libtool 1.5.
220
299
      tmpdepfile1="$dir.libs/$base.lo.d"
221
 
      tmpdepfile2="$dir.libs/$base.d"
 
300
      tmpdepfile2="$dir.libs/$base.o.d"
 
301
      tmpdepfile3="$dir.libs/$base.d"
222
302
      "$@" -Wc,-MD
223
303
   else
224
304
      tmpdepfile1="$dir$base.o.d"
225
305
      tmpdepfile2="$dir$base.d"
 
306
      tmpdepfile3="$dir$base.d"
226
307
      "$@" -MD
227
308
   fi
228
309
 
229
310
   stat=$?
230
311
   if test $stat -eq 0; then :
231
312
   else
232
 
      rm -f "$tmpdepfile1" "$tmpdepfile2"
 
313
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
233
314
      exit $stat
234
315
   fi
235
316
 
236
317
   if test -f "$tmpdepfile1"; then
237
318
      tmpdepfile="$tmpdepfile1"
238
 
   else
 
319
   elif test -f "$tmpdepfile2"; then
239
320
      tmpdepfile="$tmpdepfile2"
 
321
   else
 
322
      tmpdepfile="$tmpdepfile3"
240
323
   fi
241
324
   if test -f "$tmpdepfile"; then
242
325
      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
243
 
      # That's a space and a tab in the [].
244
 
      sed -e 's,^.*\.[a-z]*:[   ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
 
326
      # That's a tab and a space in the [].
 
327
      sed -e 's,^.*\.[a-z]*:[    ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
245
328
   else
246
329
      echo "#dummy" > "$depfile"
247
330
   fi
254
337
 
255
338
dashmstdout)
256
339
  # Important note: in order to support this mode, a compiler *must*
257
 
  # always write the proprocessed file to stdout, regardless of -o.
 
340
  # always write the preprocessed file to stdout, regardless of -o.
258
341
  "$@" || exit $?
259
342
 
260
343
  # Remove the call to Libtool.
265
348
    shift
266
349
  fi
267
350
 
268
 
  # Remove `-o $object'.  We will use -o /dev/null later,
269
 
  # however we can't do the remplacement now because
270
 
  # `-o $object' might simply not be used
 
351
  # Remove `-o $object'.
271
352
  IFS=" "
272
353
  for arg
273
354
  do
287
368
  done
288
369
 
289
370
  test -z "$dashmflag" && dashmflag=-M
290
 
  "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[       ]*:'"$object"'\: :' > "$tmpdepfile"
 
371
  # Require at least two characters before searching for `:'
 
372
  # in the target name.  This is to cope with DOS-style filenames:
 
373
  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
 
374
  "$@" $dashmflag |
 
375
    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
291
376
  rm -f "$depfile"
292
377
  cat < "$tmpdepfile" > "$depfile"
293
378
  tr ' ' '
306
391
 
307
392
makedepend)
308
393
  "$@" || exit $?
 
394
  # Remove any Libtool call
 
395
  if test "$libtool" = yes; then
 
396
    while test $1 != '--mode=compile'; do
 
397
      shift
 
398
    done
 
399
    shift
 
400
  fi
309
401
  # X makedepend
310
402
  shift
311
403
  cleared=no
318
410
    case "$arg" in
319
411
    -D*|-I*)
320
412
      set fnord "$@" "$arg"; shift ;;
321
 
    -*)
 
413
    # Strip any option that makedepend may not understand.  Remove
 
414
    # the object too, otherwise makedepend will parse it as a source file.
 
415
    -*|$object)
322
416
      ;;
323
417
    *)
324
418
      set fnord "$@" "$arg"; shift ;;
339
433
 
340
434
cpp)
341
435
  # Important note: in order to support this mode, a compiler *must*
342
 
  # always write the proprocessed file to stdout.
 
436
  # always write the preprocessed file to stdout.
343
437
  "$@" || exit $?
344
438
 
345
439
  # Remove the call to Libtool.
381
475
 
382
476
msvisualcpp)
383
477
  # Important note: in order to support this mode, a compiler *must*
384
 
  # always write the proprocessed file to stdout, regardless of -o,
 
478
  # always write the preprocessed file to stdout, regardless of -o,
385
479
  # because we must use -o when running libtool.
386
480
  "$@" || exit $?
387
481
  IFS=" "
421
515
esac
422
516
 
423
517
exit 0
 
518
 
 
519
# Local Variables:
 
520
# mode: shell-script
 
521
# sh-indentation: 2
 
522
# eval: (add-hook 'write-file-hooks 'time-stamp)
 
523
# time-stamp-start: "scriptversion="
 
524
# time-stamp-format: "%:y-%02m-%02d.%02H"
 
525
# time-stamp-end: "$"
 
526
# End: