/sqlite3cc

To get this branch, use:
bzr branch http://bzr.ed.am/sqlite3cc

« back to all changes in this revision

Viewing changes to build-aux/depcomp

  • Committer: edam
  • Date: 2010-02-02 16:13:16 UTC
  • Revision ID: edam@waxworlds.org-20100202161316-tceybmdeotltldow
- print "ok" when test program is successful!
- renamed 'Makefile's 'subdir.mk' so that the edam.mk build system will live happily along side an autotools build system

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#! /bin/sh
2
 
# depcomp - compile a program generating dependencies as side-effects
3
 
 
4
 
scriptversion=2009-04-28.21; # UTC
5
 
 
6
 
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
7
 
# Software Foundation, Inc.
8
 
 
9
 
# This program is free software; you can redistribute it and/or modify
10
 
# it under the terms of the GNU General Public License as published by
11
 
# the Free Software Foundation; either version 2, or (at your option)
12
 
# any later version.
13
 
 
14
 
# This program is distributed in the hope that it will be useful,
15
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 
# GNU General Public License for more details.
18
 
 
19
 
# You should have received a copy of the GNU General Public License
20
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 
 
22
 
# As a special exception to the GNU General Public License, if you
23
 
# distribute this file as part of a program that contains a
24
 
# configuration script generated by Autoconf, you may include it under
25
 
# the same distribution terms that you use for the rest of that program.
26
 
 
27
 
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
28
 
 
29
 
case $1 in
30
 
  '')
31
 
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
32
 
     exit 1;
33
 
     ;;
34
 
  -h | --h*)
35
 
    cat <<\EOF
36
 
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
37
 
 
38
 
Run PROGRAMS ARGS to compile a file, generating dependencies
39
 
as side-effects.
40
 
 
41
 
Environment variables:
42
 
  depmode     Dependency tracking mode.
43
 
  source      Source file read by `PROGRAMS ARGS'.
44
 
  object      Object file output by `PROGRAMS ARGS'.
45
 
  DEPDIR      directory where to store dependencies.
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 $?
53
 
    ;;
54
 
  -v | --v*)
55
 
    echo "depcomp $scriptversion"
56
 
    exit $?
57
 
    ;;
58
 
esac
59
 
 
60
 
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
61
 
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
62
 
  exit 1
63
 
fi
64
 
 
65
 
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
66
 
depfile=${depfile-`echo "$object" |
67
 
  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
68
 
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
69
 
 
70
 
rm -f "$tmpdepfile"
71
 
 
72
 
# Some modes work just like other modes, but use different flags.  We
73
 
# parameterize here, but still list the modes in the big case below,
74
 
# to make depend.m4 easier to write.  Note that we *cannot* use a case
75
 
# here, because this file can only contain one case statement.
76
 
if test "$depmode" = hp; then
77
 
  # HP compiler uses -M and no extra arg.
78
 
  gccflag=-M
79
 
  depmode=gcc
80
 
fi
81
 
 
82
 
if test "$depmode" = dashXmstdout; then
83
 
   # This is just like dashmstdout with a different argument.
84
 
   dashmflag=-xM
85
 
   depmode=dashmstdout
86
 
fi
87
 
 
88
 
cygpath_u="cygpath -u -f -"
89
 
if test "$depmode" = msvcmsys; then
90
 
   # This is just like msvisualcpp but w/o cygpath translation.
91
 
   # Just convert the backslash-escaped backslashes to single forward
92
 
   # slashes to satisfy depend.m4
93
 
   cygpath_u="sed s,\\\\\\\\,/,g"
94
 
   depmode=msvisualcpp
95
 
fi
96
 
 
97
 
case "$depmode" in
98
 
gcc3)
99
 
## gcc 3 implements dependency tracking that does exactly what
100
 
## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
101
 
## it if -MD -MP comes after the -MF stuff.  Hmm.
102
 
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
103
 
## the command line argument order; so add the flags where they
104
 
## appear in depend2.am.  Note that the slowdown incurred here
105
 
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
106
 
  for arg
107
 
  do
108
 
    case $arg in
109
 
    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
110
 
    *)  set fnord "$@" "$arg" ;;
111
 
    esac
112
 
    shift # fnord
113
 
    shift # $arg
114
 
  done
115
 
  "$@"
116
 
  stat=$?
117
 
  if test $stat -eq 0; then :
118
 
  else
119
 
    rm -f "$tmpdepfile"
120
 
    exit $stat
121
 
  fi
122
 
  mv "$tmpdepfile" "$depfile"
123
 
  ;;
124
 
 
125
 
gcc)
126
 
## There are various ways to get dependency output from gcc.  Here's
127
 
## why we pick this rather obscure method:
128
 
## - Don't want to use -MD because we'd like the dependencies to end
129
 
##   up in a subdir.  Having to rename by hand is ugly.
130
 
##   (We might end up doing this anyway to support other compilers.)
131
 
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
132
 
##   -MM, not -M (despite what the docs say).
133
 
## - Using -M directly means running the compiler twice (even worse
134
 
##   than renaming).
135
 
  if test -z "$gccflag"; then
136
 
    gccflag=-MD,
137
 
  fi
138
 
  "$@" -Wp,"$gccflag$tmpdepfile"
139
 
  stat=$?
140
 
  if test $stat -eq 0; then :
141
 
  else
142
 
    rm -f "$tmpdepfile"
143
 
    exit $stat
144
 
  fi
145
 
  rm -f "$depfile"
146
 
  echo "$object : \\" > "$depfile"
147
 
  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
148
 
## The second -e expression handles DOS-style file names with drive letters.
149
 
  sed -e 's/^[^:]*: / /' \
150
 
      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
151
 
## This next piece of magic avoids the `deleted header file' problem.
152
 
## The problem is that when a header file which appears in a .P file
153
 
## is deleted, the dependency causes make to die (because there is
154
 
## typically no way to rebuild the header).  We avoid this by adding
155
 
## dummy dependencies for each header file.  Too bad gcc doesn't do
156
 
## this for us directly.
157
 
  tr ' ' '
158
 
' < "$tmpdepfile" |
159
 
## Some versions of gcc put a space before the `:'.  On the theory
160
 
## that the space means something, we add a space to the output as
161
 
## well.
162
 
## Some versions of the HPUX 10.20 sed can't process this invocation
163
 
## correctly.  Breaking it into two sed invocations is a workaround.
164
 
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
165
 
  rm -f "$tmpdepfile"
166
 
  ;;
167
 
 
168
 
hp)
169
 
  # This case exists only to let depend.m4 do its work.  It works by
170
 
  # looking at the text of this script.  This case will never be run,
171
 
  # since it is checked for above.
172
 
  exit 1
173
 
  ;;
174
 
 
175
 
sgi)
176
 
  if test "$libtool" = yes; then
177
 
    "$@" "-Wp,-MDupdate,$tmpdepfile"
178
 
  else
179
 
    "$@" -MDupdate "$tmpdepfile"
180
 
  fi
181
 
  stat=$?
182
 
  if test $stat -eq 0; then :
183
 
  else
184
 
    rm -f "$tmpdepfile"
185
 
    exit $stat
186
 
  fi
187
 
  rm -f "$depfile"
188
 
 
189
 
  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
190
 
    echo "$object : \\" > "$depfile"
191
 
 
192
 
    # Clip off the initial element (the dependent).  Don't try to be
193
 
    # clever and replace this with sed code, as IRIX sed won't handle
194
 
    # lines with more than a fixed number of characters (4096 in
195
 
    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
196
 
    # the IRIX cc adds comments like `#:fec' to the end of the
197
 
    # dependency line.
198
 
    tr ' ' '
199
 
' < "$tmpdepfile" \
200
 
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
201
 
    tr '
202
 
' ' ' >> "$depfile"
203
 
    echo >> "$depfile"
204
 
 
205
 
    # The second pass generates a dummy entry for each header file.
206
 
    tr ' ' '
207
 
' < "$tmpdepfile" \
208
 
   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
209
 
   >> "$depfile"
210
 
  else
211
 
    # The sourcefile does not contain any dependencies, so just
212
 
    # store a dummy comment line, to avoid errors with the Makefile
213
 
    # "include basename.Plo" scheme.
214
 
    echo "#dummy" > "$depfile"
215
 
  fi
216
 
  rm -f "$tmpdepfile"
217
 
  ;;
218
 
 
219
 
aix)
220
 
  # The C for AIX Compiler uses -M and outputs the dependencies
221
 
  # in a .u file.  In older versions, this file always lives in the
222
 
  # current directory.  Also, the AIX compiler puts `$object:' at the
223
 
  # start of each line; $object doesn't have directory information.
224
 
  # Version 6 uses the directory in both cases.
225
 
  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
226
 
  test "x$dir" = "x$object" && dir=
227
 
  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
228
 
  if test "$libtool" = yes; then
229
 
    tmpdepfile1=$dir$base.u
230
 
    tmpdepfile2=$base.u
231
 
    tmpdepfile3=$dir.libs/$base.u
232
 
    "$@" -Wc,-M
233
 
  else
234
 
    tmpdepfile1=$dir$base.u
235
 
    tmpdepfile2=$dir$base.u
236
 
    tmpdepfile3=$dir$base.u
237
 
    "$@" -M
238
 
  fi
239
 
  stat=$?
240
 
 
241
 
  if test $stat -eq 0; then :
242
 
  else
243
 
    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
244
 
    exit $stat
245
 
  fi
246
 
 
247
 
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
248
 
  do
249
 
    test -f "$tmpdepfile" && break
250
 
  done
251
 
  if test -f "$tmpdepfile"; then
252
 
    # Each line is of the form `foo.o: dependent.h'.
253
 
    # Do two passes, one to just change these to
254
 
    # `$object: dependent.h' and one to simply `dependent.h:'.
255
 
    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
256
 
    # That's a tab and a space in the [].
257
 
    sed -e 's,^.*\.[a-z]*:[      ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
258
 
  else
259
 
    # The sourcefile does not contain any dependencies, so just
260
 
    # store a dummy comment line, to avoid errors with the Makefile
261
 
    # "include basename.Plo" scheme.
262
 
    echo "#dummy" > "$depfile"
263
 
  fi
264
 
  rm -f "$tmpdepfile"
265
 
  ;;
266
 
 
267
 
icc)
268
 
  # Intel's C compiler understands `-MD -MF file'.  However on
269
 
  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
270
 
  # ICC 7.0 will fill foo.d with something like
271
 
  #    foo.o: sub/foo.c
272
 
  #    foo.o: sub/foo.h
273
 
  # which is wrong.  We want:
274
 
  #    sub/foo.o: sub/foo.c
275
 
  #    sub/foo.o: sub/foo.h
276
 
  #    sub/foo.c:
277
 
  #    sub/foo.h:
278
 
  # ICC 7.1 will output
279
 
  #    foo.o: sub/foo.c sub/foo.h
280
 
  # and will wrap long lines using \ :
281
 
  #    foo.o: sub/foo.c ... \
282
 
  #     sub/foo.h ... \
283
 
  #     ...
284
 
 
285
 
  "$@" -MD -MF "$tmpdepfile"
286
 
  stat=$?
287
 
  if test $stat -eq 0; then :
288
 
  else
289
 
    rm -f "$tmpdepfile"
290
 
    exit $stat
291
 
  fi
292
 
  rm -f "$depfile"
293
 
  # Each line is of the form `foo.o: dependent.h',
294
 
  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
295
 
  # Do two passes, one to just change these to
296
 
  # `$object: dependent.h' and one to simply `dependent.h:'.
297
 
  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
298
 
  # Some versions of the HPUX 10.20 sed can't process this invocation
299
 
  # correctly.  Breaking it into two sed invocations is a workaround.
300
 
  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
301
 
    sed -e 's/$/ :/' >> "$depfile"
302
 
  rm -f "$tmpdepfile"
303
 
  ;;
304
 
 
305
 
hp2)
306
 
  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
307
 
  # compilers, which have integrated preprocessors.  The correct option
308
 
  # to use with these is +Maked; it writes dependencies to a file named
309
 
  # 'foo.d', which lands next to the object file, wherever that
310
 
  # happens to be.
311
 
  # Much of this is similar to the tru64 case; see comments there.
312
 
  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
313
 
  test "x$dir" = "x$object" && dir=
314
 
  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
315
 
  if test "$libtool" = yes; then
316
 
    tmpdepfile1=$dir$base.d
317
 
    tmpdepfile2=$dir.libs/$base.d
318
 
    "$@" -Wc,+Maked
319
 
  else
320
 
    tmpdepfile1=$dir$base.d
321
 
    tmpdepfile2=$dir$base.d
322
 
    "$@" +Maked
323
 
  fi
324
 
  stat=$?
325
 
  if test $stat -eq 0; then :
326
 
  else
327
 
     rm -f "$tmpdepfile1" "$tmpdepfile2"
328
 
     exit $stat
329
 
  fi
330
 
 
331
 
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
332
 
  do
333
 
    test -f "$tmpdepfile" && break
334
 
  done
335
 
  if test -f "$tmpdepfile"; then
336
 
    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
337
 
    # Add `dependent.h:' lines.
338
 
    sed -ne '2,${
339
 
               s/^ *//
340
 
               s/ \\*$//
341
 
               s/$/:/
342
 
               p
343
 
             }' "$tmpdepfile" >> "$depfile"
344
 
  else
345
 
    echo "#dummy" > "$depfile"
346
 
  fi
347
 
  rm -f "$tmpdepfile" "$tmpdepfile2"
348
 
  ;;
349
 
 
350
 
tru64)
351
 
   # The Tru64 compiler uses -MD to generate dependencies as a side
352
 
   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
353
 
   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
354
 
   # dependencies in `foo.d' instead, so we check for that too.
355
 
   # Subdirectories are respected.
356
 
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
357
 
   test "x$dir" = "x$object" && dir=
358
 
   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
359
 
 
360
 
   if test "$libtool" = yes; then
361
 
      # With Tru64 cc, shared objects can also be used to make a
362
 
      # static library.  This mechanism is used in libtool 1.4 series to
363
 
      # handle both shared and static libraries in a single compilation.
364
 
      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
365
 
      #
366
 
      # With libtool 1.5 this exception was removed, and libtool now
367
 
      # generates 2 separate objects for the 2 libraries.  These two
368
 
      # compilations output dependencies in $dir.libs/$base.o.d and
369
 
      # in $dir$base.o.d.  We have to check for both files, because
370
 
      # one of the two compilations can be disabled.  We should prefer
371
 
      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
372
 
      # automatically cleaned when .libs/ is deleted, while ignoring
373
 
      # the former would cause a distcleancheck panic.
374
 
      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
375
 
      tmpdepfile2=$dir$base.o.d          # libtool 1.5
376
 
      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
377
 
      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
378
 
      "$@" -Wc,-MD
379
 
   else
380
 
      tmpdepfile1=$dir$base.o.d
381
 
      tmpdepfile2=$dir$base.d
382
 
      tmpdepfile3=$dir$base.d
383
 
      tmpdepfile4=$dir$base.d
384
 
      "$@" -MD
385
 
   fi
386
 
 
387
 
   stat=$?
388
 
   if test $stat -eq 0; then :
389
 
   else
390
 
      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
391
 
      exit $stat
392
 
   fi
393
 
 
394
 
   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
395
 
   do
396
 
     test -f "$tmpdepfile" && break
397
 
   done
398
 
   if test -f "$tmpdepfile"; then
399
 
      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
400
 
      # That's a tab and a space in the [].
401
 
      sed -e 's,^.*\.[a-z]*:[    ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
402
 
   else
403
 
      echo "#dummy" > "$depfile"
404
 
   fi
405
 
   rm -f "$tmpdepfile"
406
 
   ;;
407
 
 
408
 
#nosideeffect)
409
 
  # This comment above is used by automake to tell side-effect
410
 
  # dependency tracking mechanisms from slower ones.
411
 
 
412
 
dashmstdout)
413
 
  # Important note: in order to support this mode, a compiler *must*
414
 
  # always write the preprocessed file to stdout, regardless of -o.
415
 
  "$@" || exit $?
416
 
 
417
 
  # Remove the call to Libtool.
418
 
  if test "$libtool" = yes; then
419
 
    while test "X$1" != 'X--mode=compile'; do
420
 
      shift
421
 
    done
422
 
    shift
423
 
  fi
424
 
 
425
 
  # Remove `-o $object'.
426
 
  IFS=" "
427
 
  for arg
428
 
  do
429
 
    case $arg in
430
 
    -o)
431
 
      shift
432
 
      ;;
433
 
    $object)
434
 
      shift
435
 
      ;;
436
 
    *)
437
 
      set fnord "$@" "$arg"
438
 
      shift # fnord
439
 
      shift # $arg
440
 
      ;;
441
 
    esac
442
 
  done
443
 
 
444
 
  test -z "$dashmflag" && dashmflag=-M
445
 
  # Require at least two characters before searching for `:'
446
 
  # in the target name.  This is to cope with DOS-style filenames:
447
 
  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
448
 
  "$@" $dashmflag |
449
 
    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
450
 
  rm -f "$depfile"
451
 
  cat < "$tmpdepfile" > "$depfile"
452
 
  tr ' ' '
453
 
' < "$tmpdepfile" | \
454
 
## Some versions of the HPUX 10.20 sed can't process this invocation
455
 
## correctly.  Breaking it into two sed invocations is a workaround.
456
 
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
457
 
  rm -f "$tmpdepfile"
458
 
  ;;
459
 
 
460
 
dashXmstdout)
461
 
  # This case only exists to satisfy depend.m4.  It is never actually
462
 
  # run, as this mode is specially recognized in the preamble.
463
 
  exit 1
464
 
  ;;
465
 
 
466
 
makedepend)
467
 
  "$@" || exit $?
468
 
  # Remove any Libtool call
469
 
  if test "$libtool" = yes; then
470
 
    while test "X$1" != 'X--mode=compile'; do
471
 
      shift
472
 
    done
473
 
    shift
474
 
  fi
475
 
  # X makedepend
476
 
  shift
477
 
  cleared=no eat=no
478
 
  for arg
479
 
  do
480
 
    case $cleared in
481
 
    no)
482
 
      set ""; shift
483
 
      cleared=yes ;;
484
 
    esac
485
 
    if test $eat = yes; then
486
 
      eat=no
487
 
      continue
488
 
    fi
489
 
    case "$arg" in
490
 
    -D*|-I*)
491
 
      set fnord "$@" "$arg"; shift ;;
492
 
    # Strip any option that makedepend may not understand.  Remove
493
 
    # the object too, otherwise makedepend will parse it as a source file.
494
 
    -arch)
495
 
      eat=yes ;;
496
 
    -*|$object)
497
 
      ;;
498
 
    *)
499
 
      set fnord "$@" "$arg"; shift ;;
500
 
    esac
501
 
  done
502
 
  obj_suffix=`echo "$object" | sed 's/^.*\././'`
503
 
  touch "$tmpdepfile"
504
 
  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
505
 
  rm -f "$depfile"
506
 
  cat < "$tmpdepfile" > "$depfile"
507
 
  sed '1,2d' "$tmpdepfile" | tr ' ' '
508
 
' | \
509
 
## Some versions of the HPUX 10.20 sed can't process this invocation
510
 
## correctly.  Breaking it into two sed invocations is a workaround.
511
 
    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
512
 
  rm -f "$tmpdepfile" "$tmpdepfile".bak
513
 
  ;;
514
 
 
515
 
cpp)
516
 
  # Important note: in order to support this mode, a compiler *must*
517
 
  # always write the preprocessed file to stdout.
518
 
  "$@" || exit $?
519
 
 
520
 
  # Remove the call to Libtool.
521
 
  if test "$libtool" = yes; then
522
 
    while test "X$1" != 'X--mode=compile'; do
523
 
      shift
524
 
    done
525
 
    shift
526
 
  fi
527
 
 
528
 
  # Remove `-o $object'.
529
 
  IFS=" "
530
 
  for arg
531
 
  do
532
 
    case $arg in
533
 
    -o)
534
 
      shift
535
 
      ;;
536
 
    $object)
537
 
      shift
538
 
      ;;
539
 
    *)
540
 
      set fnord "$@" "$arg"
541
 
      shift # fnord
542
 
      shift # $arg
543
 
      ;;
544
 
    esac
545
 
  done
546
 
 
547
 
  "$@" -E |
548
 
    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
549
 
       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
550
 
    sed '$ s: \\$::' > "$tmpdepfile"
551
 
  rm -f "$depfile"
552
 
  echo "$object : \\" > "$depfile"
553
 
  cat < "$tmpdepfile" >> "$depfile"
554
 
  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
555
 
  rm -f "$tmpdepfile"
556
 
  ;;
557
 
 
558
 
msvisualcpp)
559
 
  # Important note: in order to support this mode, a compiler *must*
560
 
  # always write the preprocessed file to stdout.
561
 
  "$@" || exit $?
562
 
 
563
 
  # Remove the call to Libtool.
564
 
  if test "$libtool" = yes; then
565
 
    while test "X$1" != 'X--mode=compile'; do
566
 
      shift
567
 
    done
568
 
    shift
569
 
  fi
570
 
 
571
 
  IFS=" "
572
 
  for arg
573
 
  do
574
 
    case "$arg" in
575
 
    -o)
576
 
      shift
577
 
      ;;
578
 
    $object)
579
 
      shift
580
 
      ;;
581
 
    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
582
 
        set fnord "$@"
583
 
        shift
584
 
        shift
585
 
        ;;
586
 
    *)
587
 
        set fnord "$@" "$arg"
588
 
        shift
589
 
        shift
590
 
        ;;
591
 
    esac
592
 
  done
593
 
  "$@" -E 2>/dev/null |
594
 
  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
595
 
  rm -f "$depfile"
596
 
  echo "$object : \\" > "$depfile"
597
 
  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::      \1 \\:p' >> "$depfile"
598
 
  echo "        " >> "$depfile"
599
 
  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
600
 
  rm -f "$tmpdepfile"
601
 
  ;;
602
 
 
603
 
msvcmsys)
604
 
  # This case exists only to let depend.m4 do its work.  It works by
605
 
  # looking at the text of this script.  This case will never be run,
606
 
  # since it is checked for above.
607
 
  exit 1
608
 
  ;;
609
 
 
610
 
none)
611
 
  exec "$@"
612
 
  ;;
613
 
 
614
 
*)
615
 
  echo "Unknown depmode $depmode" 1>&2
616
 
  exit 1
617
 
  ;;
618
 
esac
619
 
 
620
 
exit 0
621
 
 
622
 
# Local Variables:
623
 
# mode: shell-script
624
 
# sh-indentation: 2
625
 
# eval: (add-hook 'write-file-hooks 'time-stamp)
626
 
# time-stamp-start: "scriptversion="
627
 
# time-stamp-format: "%:y-%02m-%02d.%02H"
628
 
# time-stamp-time-zone: "UTC"
629
 
# time-stamp-end: "; # UTC"
630
 
# End: