~ubuntu-branches/ubuntu/trusty/log4shib/trusty

« back to all changes in this revision

Viewing changes to config/depcomp

  • Committer: Package Import Robot
  • Author(s): Russ Allbery
  • Date: 2013-05-22 20:21:15 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20130522202115-2qzanli9fue82x24
Tags: 1.0.5-1
* New upstream release.
* Switch to xz compression for *.debian.tar and the *.deb packages.
* Use canonical URLs for Vcs-Browser and Vcs-Git.
* Update standards version to 3.9.4 (no changes required).

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=2003-11-08.23
 
4
scriptversion=2012-03-27.16; # UTC
5
5
 
6
 
# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
 
6
# Copyright (C) 1999-2012 Free Software Foundation, Inc.
7
7
 
8
8
# This program is free software; you can redistribute it and/or modify
9
9
# it under the terms of the GNU General Public License as published by
16
16
# GNU General Public License for more details.
17
17
 
18
18
# You should have received a copy of the GNU General Public License
19
 
# 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.
 
19
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
20
 
23
21
# As a special exception to the GNU General Public License, if you
24
22
# distribute this file as part of a program that contains a
29
27
 
30
28
case $1 in
31
29
  '')
32
 
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
 
30
     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
33
31
     exit 1;
34
32
     ;;
35
33
  -h | --h*)
41
39
 
42
40
Environment variables:
43
41
  depmode     Dependency tracking mode.
44
 
  source      Source file read by `PROGRAMS ARGS'.
45
 
  object      Object file output by `PROGRAMS ARGS'.
 
42
  source      Source file read by 'PROGRAMS ARGS'.
 
43
  object      Object file output by 'PROGRAMS ARGS'.
 
44
  DEPDIR      directory where to store dependencies.
46
45
  depfile     Dependency file to output.
47
 
  tmpdepfile  Temporary file to use when outputing dependencies.
 
46
  tmpdepfile  Temporary file to use when outputting dependencies.
48
47
  libtool     Whether libtool is used (yes/no).
49
48
 
50
49
Report bugs to <bug-automake@gnu.org>.
51
50
EOF
52
 
    exit 0
 
51
    exit $?
53
52
    ;;
54
53
  -v | --v*)
55
54
    echo "depcomp $scriptversion"
56
 
    exit 0
 
55
    exit $?
57
56
    ;;
58
57
esac
59
58
 
 
59
# A tabulation character.
 
60
tab='   '
 
61
# A newline character.
 
62
nl='
 
63
'
 
64
 
60
65
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
61
66
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
62
67
  exit 1
63
68
fi
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
 
 
 
69
 
 
70
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
 
71
depfile=${depfile-`echo "$object" |
 
72
  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
76
73
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
77
74
 
78
75
rm -f "$tmpdepfile"
93
90
   depmode=dashmstdout
94
91
fi
95
92
 
 
93
cygpath_u="cygpath -u -f -"
 
94
if test "$depmode" = msvcmsys; then
 
95
   # This is just like msvisualcpp but w/o cygpath translation.
 
96
   # Just convert the backslash-escaped backslashes to single forward
 
97
   # slashes to satisfy depend.m4
 
98
   cygpath_u='sed s,\\\\,/,g'
 
99
   depmode=msvisualcpp
 
100
fi
 
101
 
 
102
if test "$depmode" = msvc7msys; then
 
103
   # This is just like msvc7 but w/o cygpath translation.
 
104
   # Just convert the backslash-escaped backslashes to single forward
 
105
   # slashes to satisfy depend.m4
 
106
   cygpath_u='sed s,\\\\,/,g'
 
107
   depmode=msvc7
 
108
fi
 
109
 
 
110
if test "$depmode" = xlc; then
 
111
   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
 
112
   gccflag=-qmakedep=gcc,-MF
 
113
   depmode=gcc
 
114
fi
 
115
 
96
116
case "$depmode" in
97
117
gcc3)
98
118
## gcc 3 implements dependency tracking that does exactly what
99
119
## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
100
120
## it if -MD -MP comes after the -MF stuff.  Hmm.
101
 
  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
 
121
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
 
122
## the command line argument order; so add the flags where they
 
123
## appear in depend2.am.  Note that the slowdown incurred here
 
124
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
 
125
  for arg
 
126
  do
 
127
    case $arg in
 
128
    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
 
129
    *)  set fnord "$@" "$arg" ;;
 
130
    esac
 
131
    shift # fnord
 
132
    shift # $arg
 
133
  done
 
134
  "$@"
102
135
  stat=$?
103
136
  if test $stat -eq 0; then :
104
137
  else
134
167
## The second -e expression handles DOS-style file names with drive letters.
135
168
  sed -e 's/^[^:]*: / /' \
136
169
      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
137
 
## This next piece of magic avoids the `deleted header file' problem.
 
170
## This next piece of magic avoids the "deleted header file" problem.
138
171
## The problem is that when a header file which appears in a .P file
139
172
## is deleted, the dependency causes make to die (because there is
140
173
## typically no way to rebuild the header).  We avoid this by adding
141
174
## dummy dependencies for each header file.  Too bad gcc doesn't do
142
175
## this for us directly.
143
 
  tr ' ' '
144
 
' < "$tmpdepfile" |
145
 
## Some versions of gcc put a space before the `:'.  On the theory
 
176
  tr ' ' "$nl" < "$tmpdepfile" |
 
177
## Some versions of gcc put a space before the ':'.  On the theory
146
178
## that the space means something, we add a space to the output as
147
 
## well.
 
179
## well.  hp depmode also adds that space, but also prefixes the VPATH
 
180
## to the object.  Take care to not repeat it in the output.
148
181
## Some versions of the HPUX 10.20 sed can't process this invocation
149
182
## correctly.  Breaking it into two sed invocations is a workaround.
150
 
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
 
183
    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
 
184
      | sed -e 's/$/ :/' >> "$depfile"
151
185
  rm -f "$tmpdepfile"
152
186
  ;;
153
187
 
179
213
    # clever and replace this with sed code, as IRIX sed won't handle
180
214
    # lines with more than a fixed number of characters (4096 in
181
215
    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
182
 
    # the IRIX cc adds comments like `#:fec' to the end of the
 
216
    # the IRIX cc adds comments like '#:fec' to the end of the
183
217
    # dependency line.
184
 
    tr ' ' '
185
 
' < "$tmpdepfile" \
 
218
    tr ' ' "$nl" < "$tmpdepfile" \
186
219
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
187
 
    tr '
188
 
' ' ' >> $depfile
189
 
    echo >> $depfile
 
220
    tr "$nl" ' ' >> "$depfile"
 
221
    echo >> "$depfile"
190
222
 
191
223
    # The second pass generates a dummy entry for each header file.
192
 
    tr ' ' '
193
 
' < "$tmpdepfile" \
 
224
    tr ' ' "$nl" < "$tmpdepfile" \
194
225
   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
195
 
   >> $depfile
 
226
   >> "$depfile"
196
227
  else
197
228
    # The sourcefile does not contain any dependencies, so just
198
229
    # store a dummy comment line, to avoid errors with the Makefile
202
233
  rm -f "$tmpdepfile"
203
234
  ;;
204
235
 
 
236
xlc)
 
237
  # This case exists only to let depend.m4 do its work.  It works by
 
238
  # looking at the text of this script.  This case will never be run,
 
239
  # since it is checked for above.
 
240
  exit 1
 
241
  ;;
 
242
 
205
243
aix)
206
244
  # The C for AIX Compiler uses -M and outputs the dependencies
207
245
  # in a .u file.  In older versions, this file always lives in the
208
 
  # current directory.  Also, the AIX compiler puts `$object:' at the
 
246
  # current directory.  Also, the AIX compiler puts '$object:' at the
209
247
  # start of each line; $object doesn't have directory information.
210
248
  # Version 6 uses the directory in both cases.
211
 
  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
212
 
  tmpdepfile="$stripped.u"
 
249
  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
 
250
  test "x$dir" = "x$object" && dir=
 
251
  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
213
252
  if test "$libtool" = yes; then
 
253
    tmpdepfile1=$dir$base.u
 
254
    tmpdepfile2=$base.u
 
255
    tmpdepfile3=$dir.libs/$base.u
214
256
    "$@" -Wc,-M
215
257
  else
 
258
    tmpdepfile1=$dir$base.u
 
259
    tmpdepfile2=$dir$base.u
 
260
    tmpdepfile3=$dir$base.u
216
261
    "$@" -M
217
262
  fi
218
263
  stat=$?
219
264
 
220
 
  if test -f "$tmpdepfile"; then :
221
 
  else
222
 
    stripped=`echo "$stripped" | sed 's,^.*/,,'`
223
 
    tmpdepfile="$stripped.u"
224
 
  fi
225
 
 
226
265
  if test $stat -eq 0; then :
227
266
  else
228
 
    rm -f "$tmpdepfile"
 
267
    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
229
268
    exit $stat
230
269
  fi
231
270
 
 
271
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
 
272
  do
 
273
    test -f "$tmpdepfile" && break
 
274
  done
232
275
  if test -f "$tmpdepfile"; then
233
 
    outname="$stripped.o"
234
 
    # Each line is of the form `foo.o: dependent.h'.
 
276
    # Each line is of the form 'foo.o: dependent.h'.
235
277
    # Do two passes, one to just change these to
236
 
    # `$object: dependent.h' and one to simply `dependent.h:'.
237
 
    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
238
 
    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
 
278
    # '$object: dependent.h' and one to simply 'dependent.h:'.
 
279
    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
 
280
    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
239
281
  else
240
282
    # The sourcefile does not contain any dependencies, so just
241
283
    # store a dummy comment line, to avoid errors with the Makefile
246
288
  ;;
247
289
 
248
290
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
 
291
  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
 
292
  # However on
 
293
  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
251
294
  # ICC 7.0 will fill foo.d with something like
252
295
  #    foo.o: sub/foo.c
253
296
  #    foo.o: sub/foo.h
254
 
  # which is wrong.  We want:
 
297
  # which is wrong.  We want
255
298
  #    sub/foo.o: sub/foo.c
256
299
  #    sub/foo.o: sub/foo.h
257
300
  #    sub/foo.c:
258
301
  #    sub/foo.h:
259
302
  # ICC 7.1 will output
260
303
  #    foo.o: sub/foo.c sub/foo.h
261
 
  # and will wrap long lines using \ :
 
304
  # and will wrap long lines using '\':
262
305
  #    foo.o: sub/foo.c ... \
263
306
  #     sub/foo.h ... \
264
307
  #     ...
265
 
 
 
308
  # tcc 0.9.26 (FIXME still under development at the moment of writing)
 
309
  # will emit a similar output, but also prepend the continuation lines
 
310
  # with horizontal tabulation characters.
266
311
  "$@" -MD -MF "$tmpdepfile"
267
312
  stat=$?
268
313
  if test $stat -eq 0; then :
271
316
    exit $stat
272
317
  fi
273
318
  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 \'.
 
319
  # Each line is of the form 'foo.o: dependent.h',
 
320
  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
276
321
  # 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"
 
322
  # '$object: dependent.h' and one to simply 'dependent.h:'.
 
323
  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
 
324
    < "$tmpdepfile" > "$depfile"
 
325
  sed '
 
326
    s/[ '"$tab"'][ '"$tab"']*/ /g
 
327
    s/^ *//
 
328
    s/ *\\*$//
 
329
    s/^[^:]*: *//
 
330
    /^$/d
 
331
    /:$/d
 
332
    s/$/ :/
 
333
  ' < "$tmpdepfile" >> "$depfile"
283
334
  rm -f "$tmpdepfile"
284
335
  ;;
285
336
 
 
337
hp2)
 
338
  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
 
339
  # compilers, which have integrated preprocessors.  The correct option
 
340
  # to use with these is +Maked; it writes dependencies to a file named
 
341
  # 'foo.d', which lands next to the object file, wherever that
 
342
  # happens to be.
 
343
  # Much of this is similar to the tru64 case; see comments there.
 
344
  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
 
345
  test "x$dir" = "x$object" && dir=
 
346
  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
 
347
  if test "$libtool" = yes; then
 
348
    tmpdepfile1=$dir$base.d
 
349
    tmpdepfile2=$dir.libs/$base.d
 
350
    "$@" -Wc,+Maked
 
351
  else
 
352
    tmpdepfile1=$dir$base.d
 
353
    tmpdepfile2=$dir$base.d
 
354
    "$@" +Maked
 
355
  fi
 
356
  stat=$?
 
357
  if test $stat -eq 0; then :
 
358
  else
 
359
     rm -f "$tmpdepfile1" "$tmpdepfile2"
 
360
     exit $stat
 
361
  fi
 
362
 
 
363
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
 
364
  do
 
365
    test -f "$tmpdepfile" && break
 
366
  done
 
367
  if test -f "$tmpdepfile"; then
 
368
    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
 
369
    # Add 'dependent.h:' lines.
 
370
    sed -ne '2,${
 
371
               s/^ *//
 
372
               s/ \\*$//
 
373
               s/$/:/
 
374
               p
 
375
             }' "$tmpdepfile" >> "$depfile"
 
376
  else
 
377
    echo "#dummy" > "$depfile"
 
378
  fi
 
379
  rm -f "$tmpdepfile" "$tmpdepfile2"
 
380
  ;;
 
381
 
286
382
tru64)
287
383
   # The Tru64 compiler uses -MD to generate dependencies as a side
288
 
   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
 
384
   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
289
385
   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
290
 
   # dependencies in `foo.d' instead, so we check for that too.
 
386
   # dependencies in 'foo.d' instead, so we check for that too.
291
387
   # Subdirectories are respected.
292
388
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
293
389
   test "x$dir" = "x$object" && dir=
294
390
   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
295
391
 
296
392
   if test "$libtool" = yes; then
297
 
      tmpdepfile1="$dir.libs/$base.lo.d"
298
 
      tmpdepfile2="$dir.libs/$base.d"
 
393
      # With Tru64 cc, shared objects can also be used to make a
 
394
      # static library.  This mechanism is used in libtool 1.4 series to
 
395
      # handle both shared and static libraries in a single compilation.
 
396
      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
 
397
      #
 
398
      # With libtool 1.5 this exception was removed, and libtool now
 
399
      # generates 2 separate objects for the 2 libraries.  These two
 
400
      # compilations output dependencies in $dir.libs/$base.o.d and
 
401
      # in $dir$base.o.d.  We have to check for both files, because
 
402
      # one of the two compilations can be disabled.  We should prefer
 
403
      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
 
404
      # automatically cleaned when .libs/ is deleted, while ignoring
 
405
      # the former would cause a distcleancheck panic.
 
406
      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
 
407
      tmpdepfile2=$dir$base.o.d          # libtool 1.5
 
408
      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
 
409
      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
299
410
      "$@" -Wc,-MD
300
411
   else
301
 
      tmpdepfile1="$dir$base.o.d"
302
 
      tmpdepfile2="$dir$base.d"
 
412
      tmpdepfile1=$dir$base.o.d
 
413
      tmpdepfile2=$dir$base.d
 
414
      tmpdepfile3=$dir$base.d
 
415
      tmpdepfile4=$dir$base.d
303
416
      "$@" -MD
304
417
   fi
305
418
 
306
419
   stat=$?
307
420
   if test $stat -eq 0; then :
308
421
   else
309
 
      rm -f "$tmpdepfile1" "$tmpdepfile2"
 
422
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
310
423
      exit $stat
311
424
   fi
312
425
 
313
 
   if test -f "$tmpdepfile1"; then
314
 
      tmpdepfile="$tmpdepfile1"
315
 
   else
316
 
      tmpdepfile="$tmpdepfile2"
317
 
   fi
 
426
   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
 
427
   do
 
428
     test -f "$tmpdepfile" && break
 
429
   done
318
430
   if test -f "$tmpdepfile"; then
319
431
      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
320
 
      # That's a tab and a space in the [].
321
 
      sed -e 's,^.*\.[a-z]*:[    ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
 
432
      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
322
433
   else
323
434
      echo "#dummy" > "$depfile"
324
435
   fi
325
436
   rm -f "$tmpdepfile"
326
437
   ;;
327
438
 
 
439
msvc7)
 
440
  if test "$libtool" = yes; then
 
441
    showIncludes=-Wc,-showIncludes
 
442
  else
 
443
    showIncludes=-showIncludes
 
444
  fi
 
445
  "$@" $showIncludes > "$tmpdepfile"
 
446
  stat=$?
 
447
  grep -v '^Note: including file: ' "$tmpdepfile"
 
448
  if test "$stat" = 0; then :
 
449
  else
 
450
    rm -f "$tmpdepfile"
 
451
    exit $stat
 
452
  fi
 
453
  rm -f "$depfile"
 
454
  echo "$object : \\" > "$depfile"
 
455
  # The first sed program below extracts the file names and escapes
 
456
  # backslashes for cygpath.  The second sed program outputs the file
 
457
  # name when reading, but also accumulates all include files in the
 
458
  # hold buffer in order to output them again at the end.  This only
 
459
  # works with sed implementations that can handle large buffers.
 
460
  sed < "$tmpdepfile" -n '
 
461
/^Note: including file:  *\(.*\)/ {
 
462
  s//\1/
 
463
  s/\\/\\\\/g
 
464
  p
 
465
}' | $cygpath_u | sort -u | sed -n '
 
466
s/ /\\ /g
 
467
s/\(.*\)/'"$tab"'\1 \\/p
 
468
s/.\(.*\) \\/\1:/
 
469
H
 
470
$ {
 
471
  s/.*/'"$tab"'/
 
472
  G
 
473
  p
 
474
}' >> "$depfile"
 
475
  rm -f "$tmpdepfile"
 
476
  ;;
 
477
 
 
478
msvc7msys)
 
479
  # This case exists only to let depend.m4 do its work.  It works by
 
480
  # looking at the text of this script.  This case will never be run,
 
481
  # since it is checked for above.
 
482
  exit 1
 
483
  ;;
 
484
 
328
485
#nosideeffect)
329
486
  # This comment above is used by automake to tell side-effect
330
487
  # dependency tracking mechanisms from slower ones.
336
493
 
337
494
  # Remove the call to Libtool.
338
495
  if test "$libtool" = yes; then
339
 
    while test $1 != '--mode=compile'; do
 
496
    while test "X$1" != 'X--mode=compile'; do
340
497
      shift
341
498
    done
342
499
    shift
343
500
  fi
344
501
 
345
 
  # Remove `-o $object'.
 
502
  # Remove '-o $object'.
346
503
  IFS=" "
347
504
  for arg
348
505
  do
362
519
  done
363
520
 
364
521
  test -z "$dashmflag" && dashmflag=-M
365
 
  # Require at least two characters before searching for `:'
 
522
  # Require at least two characters before searching for ':'
366
523
  # in the target name.  This is to cope with DOS-style filenames:
367
 
  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
 
524
  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
368
525
  "$@" $dashmflag |
369
 
    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
 
526
    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
370
527
  rm -f "$depfile"
371
528
  cat < "$tmpdepfile" > "$depfile"
372
 
  tr ' ' '
373
 
' < "$tmpdepfile" | \
 
529
  tr ' ' "$nl" < "$tmpdepfile" | \
374
530
## Some versions of the HPUX 10.20 sed can't process this invocation
375
531
## correctly.  Breaking it into two sed invocations is a workaround.
376
532
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
387
543
  "$@" || exit $?
388
544
  # Remove any Libtool call
389
545
  if test "$libtool" = yes; then
390
 
    while test $1 != '--mode=compile'; do
 
546
    while test "X$1" != 'X--mode=compile'; do
391
547
      shift
392
548
    done
393
549
    shift
394
550
  fi
395
551
  # X makedepend
396
552
  shift
397
 
  cleared=no
398
 
  for arg in "$@"; do
 
553
  cleared=no eat=no
 
554
  for arg
 
555
  do
399
556
    case $cleared in
400
557
    no)
401
558
      set ""; shift
402
559
      cleared=yes ;;
403
560
    esac
 
561
    if test $eat = yes; then
 
562
      eat=no
 
563
      continue
 
564
    fi
404
565
    case "$arg" in
405
566
    -D*|-I*)
406
567
      set fnord "$@" "$arg"; shift ;;
407
568
    # Strip any option that makedepend may not understand.  Remove
408
569
    # the object too, otherwise makedepend will parse it as a source file.
 
570
    -arch)
 
571
      eat=yes ;;
409
572
    -*|$object)
410
573
      ;;
411
574
    *)
412
575
      set fnord "$@" "$arg"; shift ;;
413
576
    esac
414
577
  done
415
 
  obj_suffix="`echo $object | sed 's/^.*\././'`"
 
578
  obj_suffix=`echo "$object" | sed 's/^.*\././'`
416
579
  touch "$tmpdepfile"
417
580
  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
418
581
  rm -f "$depfile"
419
 
  cat < "$tmpdepfile" > "$depfile"
420
 
  sed '1,2d' "$tmpdepfile" | tr ' ' '
421
 
' | \
 
582
  # makedepend may prepend the VPATH from the source file name to the object.
 
583
  # No need to regex-escape $object, excess matching of '.' is harmless.
 
584
  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
 
585
  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
422
586
## Some versions of the HPUX 10.20 sed can't process this invocation
423
587
## correctly.  Breaking it into two sed invocations is a workaround.
424
588
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
432
596
 
433
597
  # Remove the call to Libtool.
434
598
  if test "$libtool" = yes; then
435
 
    while test $1 != '--mode=compile'; do
 
599
    while test "X$1" != 'X--mode=compile'; do
436
600
      shift
437
601
    done
438
602
    shift
439
603
  fi
440
604
 
441
 
  # Remove `-o $object'.
 
605
  # Remove '-o $object'.
442
606
  IFS=" "
443
607
  for arg
444
608
  do
458
622
  done
459
623
 
460
624
  "$@" -E |
461
 
    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
 
625
    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
 
626
       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
462
627
    sed '$ s: \\$::' > "$tmpdepfile"
463
628
  rm -f "$depfile"
464
629
  echo "$object : \\" > "$depfile"
469
634
 
470
635
msvisualcpp)
471
636
  # Important note: in order to support this mode, a compiler *must*
472
 
  # always write the preprocessed file to stdout, regardless of -o,
473
 
  # because we must use -o when running libtool.
 
637
  # always write the preprocessed file to stdout.
474
638
  "$@" || exit $?
 
639
 
 
640
  # Remove the call to Libtool.
 
641
  if test "$libtool" = yes; then
 
642
    while test "X$1" != 'X--mode=compile'; do
 
643
      shift
 
644
    done
 
645
    shift
 
646
  fi
 
647
 
475
648
  IFS=" "
476
649
  for arg
477
650
  do
478
651
    case "$arg" in
 
652
    -o)
 
653
      shift
 
654
      ;;
 
655
    $object)
 
656
      shift
 
657
      ;;
479
658
    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
480
659
        set fnord "$@"
481
660
        shift
488
667
        ;;
489
668
    esac
490
669
  done
491
 
  "$@" -E |
492
 
  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
 
670
  "$@" -E 2>/dev/null |
 
671
  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
493
672
  rm -f "$depfile"
494
673
  echo "$object : \\" > "$depfile"
495
 
  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::    \1 \\:p' >> "$depfile"
496
 
  echo "        " >> "$depfile"
497
 
  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
 
674
  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
 
675
  echo "$tab" >> "$depfile"
 
676
  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
498
677
  rm -f "$tmpdepfile"
499
678
  ;;
500
679
 
 
680
msvcmsys)
 
681
  # This case exists only to let depend.m4 do its work.  It works by
 
682
  # looking at the text of this script.  This case will never be run,
 
683
  # since it is checked for above.
 
684
  exit 1
 
685
  ;;
 
686
 
501
687
none)
502
688
  exec "$@"
503
689
  ;;
516
702
# eval: (add-hook 'write-file-hooks 'time-stamp)
517
703
# time-stamp-start: "scriptversion="
518
704
# time-stamp-format: "%:y-%02m-%02d.%02H"
519
 
# time-stamp-end: "$"
 
705
# time-stamp-time-zone: "UTC"
 
706
# time-stamp-end: "; # UTC"
520
707
# End: