source: rtems/depcomp @ c0456d7f

4.115
Last change on this file since c0456d7f was c0456d7f, checked in by Ralf Corsépius <ralf.corsepius@…>, on 07/19/12 at 13:24:36

Update from automake-1.12.2.

  • Property mode set to 100755
File size: 20.4 KB
RevLine 
[4b5348cc]1#! /bin/sh
2# depcomp - compile a program generating dependencies as side-effects
3
[39aab06a]4scriptversion=2012-03-27.16; # UTC
[4b5348cc]5
[c0456d7f]6# Copyright (C) 1999-2012 Free Software Foundation, Inc.
[4b5348cc]7
8# This program is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 2, or (at your option)
11# any later version.
12
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17
18# You should have received a copy of the GNU General Public License
19# along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21# As a special exception to the GNU General Public License, if you
22# distribute this file as part of a program that contains a
23# configuration script generated by Autoconf, you may include it under
24# the same distribution terms that you use for the rest of that program.
25
26# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
27
28case $1 in
29  '')
[39aab06a]30     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
[4b5348cc]31     exit 1;
32     ;;
33  -h | --h*)
34    cat <<\EOF
35Usage: depcomp [--help] [--version] PROGRAM [ARGS]
36
37Run PROGRAMS ARGS to compile a file, generating dependencies
38as side-effects.
39
40Environment variables:
41  depmode     Dependency tracking mode.
[39aab06a]42  source      Source file read by 'PROGRAMS ARGS'.
43  object      Object file output by 'PROGRAMS ARGS'.
[4b5348cc]44  DEPDIR      directory where to store dependencies.
45  depfile     Dependency file to output.
[055e668]46  tmpdepfile  Temporary file to use when outputting dependencies.
[4b5348cc]47  libtool     Whether libtool is used (yes/no).
48
49Report bugs to <bug-automake@gnu.org>.
50EOF
51    exit $?
52    ;;
53  -v | --v*)
54    echo "depcomp $scriptversion"
55    exit $?
56    ;;
57esac
58
[39aab06a]59# A tabulation character.
60tab='   '
61# A newline character.
62nl='
63'
64
[4b5348cc]65if test -z "$depmode" || test -z "$source" || test -z "$object"; then
66  echo "depcomp: Variables source, object and depmode must be set" 1>&2
67  exit 1
68fi
69
70# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
71depfile=${depfile-`echo "$object" |
72  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
73tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
74
75rm -f "$tmpdepfile"
76
77# Some modes work just like other modes, but use different flags.  We
78# parameterize here, but still list the modes in the big case below,
79# to make depend.m4 easier to write.  Note that we *cannot* use a case
80# here, because this file can only contain one case statement.
81if test "$depmode" = hp; then
82  # HP compiler uses -M and no extra arg.
83  gccflag=-M
84  depmode=gcc
85fi
86
87if test "$depmode" = dashXmstdout; then
88   # This is just like dashmstdout with a different argument.
89   dashmflag=-xM
90   depmode=dashmstdout
91fi
92
93cygpath_u="cygpath -u -f -"
94if 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
[055e668]98   cygpath_u='sed s,\\\\,/,g'
[4b5348cc]99   depmode=msvisualcpp
100fi
101
[055e668]102if 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
108fi
109
[39aab06a]110if 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
114fi
115
[4b5348cc]116case "$depmode" in
117gcc3)
118## gcc 3 implements dependency tracking that does exactly what
119## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
120## it if -MD -MP comes after the -MF stuff.  Hmm.
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  "$@"
135  stat=$?
136  if test $stat -eq 0; then :
137  else
138    rm -f "$tmpdepfile"
139    exit $stat
140  fi
141  mv "$tmpdepfile" "$depfile"
142  ;;
143
144gcc)
145## There are various ways to get dependency output from gcc.  Here's
146## why we pick this rather obscure method:
147## - Don't want to use -MD because we'd like the dependencies to end
148##   up in a subdir.  Having to rename by hand is ugly.
149##   (We might end up doing this anyway to support other compilers.)
150## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
151##   -MM, not -M (despite what the docs say).
152## - Using -M directly means running the compiler twice (even worse
153##   than renaming).
154  if test -z "$gccflag"; then
155    gccflag=-MD,
156  fi
157  "$@" -Wp,"$gccflag$tmpdepfile"
158  stat=$?
159  if test $stat -eq 0; then :
160  else
161    rm -f "$tmpdepfile"
162    exit $stat
163  fi
164  rm -f "$depfile"
165  echo "$object : \\" > "$depfile"
166  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
167## The second -e expression handles DOS-style file names with drive letters.
168  sed -e 's/^[^:]*: / /' \
169      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
[39aab06a]170## This next piece of magic avoids the "deleted header file" problem.
[4b5348cc]171## The problem is that when a header file which appears in a .P file
172## is deleted, the dependency causes make to die (because there is
173## typically no way to rebuild the header).  We avoid this by adding
174## dummy dependencies for each header file.  Too bad gcc doesn't do
175## this for us directly.
[39aab06a]176  tr ' ' "$nl" < "$tmpdepfile" |
177## Some versions of gcc put a space before the ':'.  On the theory
[4b5348cc]178## that the space means something, we add a space to the output as
[055e668]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.
[4b5348cc]181## Some versions of the HPUX 10.20 sed can't process this invocation
182## correctly.  Breaking it into two sed invocations is a workaround.
[055e668]183    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
184      | sed -e 's/$/ :/' >> "$depfile"
[4b5348cc]185  rm -f "$tmpdepfile"
186  ;;
187
188hp)
189  # This case exists only to let depend.m4 do its work.  It works by
190  # looking at the text of this script.  This case will never be run,
191  # since it is checked for above.
192  exit 1
193  ;;
194
195sgi)
196  if test "$libtool" = yes; then
197    "$@" "-Wp,-MDupdate,$tmpdepfile"
198  else
199    "$@" -MDupdate "$tmpdepfile"
200  fi
201  stat=$?
202  if test $stat -eq 0; then :
203  else
204    rm -f "$tmpdepfile"
205    exit $stat
206  fi
207  rm -f "$depfile"
208
209  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
210    echo "$object : \\" > "$depfile"
211
212    # Clip off the initial element (the dependent).  Don't try to be
213    # clever and replace this with sed code, as IRIX sed won't handle
214    # lines with more than a fixed number of characters (4096 in
215    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
[39aab06a]216    # the IRIX cc adds comments like '#:fec' to the end of the
[4b5348cc]217    # dependency line.
[39aab06a]218    tr ' ' "$nl" < "$tmpdepfile" \
[4b5348cc]219    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
[39aab06a]220    tr "$nl" ' ' >> "$depfile"
[4b5348cc]221    echo >> "$depfile"
222
223    # The second pass generates a dummy entry for each header file.
[39aab06a]224    tr ' ' "$nl" < "$tmpdepfile" \
[4b5348cc]225   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
226   >> "$depfile"
227  else
228    # The sourcefile does not contain any dependencies, so just
229    # store a dummy comment line, to avoid errors with the Makefile
230    # "include basename.Plo" scheme.
231    echo "#dummy" > "$depfile"
232  fi
233  rm -f "$tmpdepfile"
234  ;;
235
[39aab06a]236xlc)
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
[4b5348cc]243aix)
244  # The C for AIX Compiler uses -M and outputs the dependencies
245  # in a .u file.  In older versions, this file always lives in the
[39aab06a]246  # current directory.  Also, the AIX compiler puts '$object:' at the
[4b5348cc]247  # start of each line; $object doesn't have directory information.
248  # Version 6 uses the directory in both cases.
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$//'`
252  if test "$libtool" = yes; then
253    tmpdepfile1=$dir$base.u
254    tmpdepfile2=$base.u
255    tmpdepfile3=$dir.libs/$base.u
256    "$@" -Wc,-M
257  else
258    tmpdepfile1=$dir$base.u
259    tmpdepfile2=$dir$base.u
260    tmpdepfile3=$dir$base.u
261    "$@" -M
262  fi
263  stat=$?
264
265  if test $stat -eq 0; then :
266  else
267    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
268    exit $stat
269  fi
270
271  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
272  do
273    test -f "$tmpdepfile" && break
274  done
275  if test -f "$tmpdepfile"; then
[39aab06a]276    # Each line is of the form 'foo.o: dependent.h'.
[4b5348cc]277    # Do two passes, one to just change these to
[39aab06a]278    # '$object: dependent.h' and one to simply 'dependent.h:'.
[4b5348cc]279    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
[39aab06a]280    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
[4b5348cc]281  else
282    # The sourcefile does not contain any dependencies, so just
283    # store a dummy comment line, to avoid errors with the Makefile
284    # "include basename.Plo" scheme.
285    echo "#dummy" > "$depfile"
286  fi
287  rm -f "$tmpdepfile"
288  ;;
289
290icc)
[39aab06a]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
[4b5348cc]294  # ICC 7.0 will fill foo.d with something like
295  #    foo.o: sub/foo.c
296  #    foo.o: sub/foo.h
[39aab06a]297  # which is wrong.  We want
[4b5348cc]298  #    sub/foo.o: sub/foo.c
299  #    sub/foo.o: sub/foo.h
300  #    sub/foo.c:
301  #    sub/foo.h:
302  # ICC 7.1 will output
303  #    foo.o: sub/foo.c sub/foo.h
[39aab06a]304  # and will wrap long lines using '\':
[4b5348cc]305  #    foo.o: sub/foo.c ... \
306  #     sub/foo.h ... \
307  #     ...
[39aab06a]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.
[4b5348cc]311  "$@" -MD -MF "$tmpdepfile"
312  stat=$?
313  if test $stat -eq 0; then :
314  else
315    rm -f "$tmpdepfile"
316    exit $stat
317  fi
318  rm -f "$depfile"
[39aab06a]319  # Each line is of the form 'foo.o: dependent.h',
320  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
[4b5348cc]321  # Do two passes, one to just change these to
[39aab06a]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"
[4b5348cc]334  rm -f "$tmpdepfile"
335  ;;
336
337hp2)
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"
[39aab06a]369    # Add 'dependent.h:' lines.
[4b5348cc]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
382tru64)
383   # The Tru64 compiler uses -MD to generate dependencies as a side
[39aab06a]384   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
[4b5348cc]385   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
[39aab06a]386   # dependencies in 'foo.d' instead, so we check for that too.
[4b5348cc]387   # Subdirectories are respected.
388   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
389   test "x$dir" = "x$object" && dir=
390   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
391
392   if test "$libtool" = yes; then
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
410      "$@" -Wc,-MD
411   else
412      tmpdepfile1=$dir$base.o.d
413      tmpdepfile2=$dir$base.d
414      tmpdepfile3=$dir$base.d
415      tmpdepfile4=$dir$base.d
416      "$@" -MD
417   fi
418
419   stat=$?
420   if test $stat -eq 0; then :
421   else
422      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
423      exit $stat
424   fi
425
426   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
427   do
428     test -f "$tmpdepfile" && break
429   done
430   if test -f "$tmpdepfile"; then
431      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
[39aab06a]432      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
[4b5348cc]433   else
434      echo "#dummy" > "$depfile"
435   fi
436   rm -f "$tmpdepfile"
437   ;;
438
[055e668]439msvc7)
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 '
466s/ /\\ /g
[39aab06a]467s/\(.*\)/'"$tab"'\1 \\/p
[055e668]468s/.\(.*\) \\/\1:/
469H
470$ {
[39aab06a]471  s/.*/'"$tab"'/
[055e668]472  G
473  p
474}' >> "$depfile"
475  rm -f "$tmpdepfile"
476  ;;
477
478msvc7msys)
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
[4b5348cc]485#nosideeffect)
486  # This comment above is used by automake to tell side-effect
487  # dependency tracking mechanisms from slower ones.
488
489dashmstdout)
490  # Important note: in order to support this mode, a compiler *must*
491  # always write the preprocessed file to stdout, regardless of -o.
492  "$@" || exit $?
493
494  # Remove the call to Libtool.
495  if test "$libtool" = yes; then
496    while test "X$1" != 'X--mode=compile'; do
497      shift
498    done
499    shift
500  fi
501
[39aab06a]502  # Remove '-o $object'.
[4b5348cc]503  IFS=" "
504  for arg
505  do
506    case $arg in
507    -o)
508      shift
509      ;;
510    $object)
511      shift
512      ;;
513    *)
514      set fnord "$@" "$arg"
515      shift # fnord
516      shift # $arg
517      ;;
518    esac
519  done
520
521  test -z "$dashmflag" && dashmflag=-M
[39aab06a]522  # Require at least two characters before searching for ':'
[4b5348cc]523  # in the target name.  This is to cope with DOS-style filenames:
[39aab06a]524  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
[4b5348cc]525  "$@" $dashmflag |
[39aab06a]526    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
[4b5348cc]527  rm -f "$depfile"
528  cat < "$tmpdepfile" > "$depfile"
[39aab06a]529  tr ' ' "$nl" < "$tmpdepfile" | \
[4b5348cc]530## Some versions of the HPUX 10.20 sed can't process this invocation
531## correctly.  Breaking it into two sed invocations is a workaround.
532    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
533  rm -f "$tmpdepfile"
534  ;;
535
536dashXmstdout)
537  # This case only exists to satisfy depend.m4.  It is never actually
538  # run, as this mode is specially recognized in the preamble.
539  exit 1
540  ;;
541
542makedepend)
543  "$@" || exit $?
544  # Remove any Libtool call
545  if test "$libtool" = yes; then
546    while test "X$1" != 'X--mode=compile'; do
547      shift
548    done
549    shift
550  fi
551  # X makedepend
552  shift
553  cleared=no eat=no
554  for arg
555  do
556    case $cleared in
557    no)
558      set ""; shift
559      cleared=yes ;;
560    esac
561    if test $eat = yes; then
562      eat=no
563      continue
564    fi
565    case "$arg" in
566    -D*|-I*)
567      set fnord "$@" "$arg"; shift ;;
568    # Strip any option that makedepend may not understand.  Remove
569    # the object too, otherwise makedepend will parse it as a source file.
570    -arch)
571      eat=yes ;;
572    -*|$object)
573      ;;
574    *)
575      set fnord "$@" "$arg"; shift ;;
576    esac
577  done
578  obj_suffix=`echo "$object" | sed 's/^.*\././'`
579  touch "$tmpdepfile"
580  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
581  rm -f "$depfile"
[055e668]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"
[39aab06a]585  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
[4b5348cc]586## Some versions of the HPUX 10.20 sed can't process this invocation
587## correctly.  Breaking it into two sed invocations is a workaround.
588    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
589  rm -f "$tmpdepfile" "$tmpdepfile".bak
590  ;;
591
592cpp)
593  # Important note: in order to support this mode, a compiler *must*
594  # always write the preprocessed file to stdout.
595  "$@" || exit $?
596
597  # Remove the call to Libtool.
598  if test "$libtool" = yes; then
599    while test "X$1" != 'X--mode=compile'; do
600      shift
601    done
602    shift
603  fi
604
[39aab06a]605  # Remove '-o $object'.
[4b5348cc]606  IFS=" "
607  for arg
608  do
609    case $arg in
610    -o)
611      shift
612      ;;
613    $object)
614      shift
615      ;;
616    *)
617      set fnord "$@" "$arg"
618      shift # fnord
619      shift # $arg
620      ;;
621    esac
622  done
623
624  "$@" -E |
625    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
626       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
627    sed '$ s: \\$::' > "$tmpdepfile"
628  rm -f "$depfile"
629  echo "$object : \\" > "$depfile"
630  cat < "$tmpdepfile" >> "$depfile"
631  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
632  rm -f "$tmpdepfile"
633  ;;
634
635msvisualcpp)
636  # Important note: in order to support this mode, a compiler *must*
637  # always write the preprocessed file to stdout.
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
648  IFS=" "
649  for arg
650  do
651    case "$arg" in
652    -o)
653      shift
654      ;;
655    $object)
656      shift
657      ;;
658    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
659        set fnord "$@"
660        shift
661        shift
662        ;;
663    *)
664        set fnord "$@" "$arg"
665        shift
666        shift
667        ;;
668    esac
669  done
670  "$@" -E 2>/dev/null |
671  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
672  rm -f "$depfile"
673  echo "$object : \\" > "$depfile"
[39aab06a]674  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
675  echo "$tab" >> "$depfile"
[4b5348cc]676  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
677  rm -f "$tmpdepfile"
678  ;;
679
680msvcmsys)
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
687none)
688  exec "$@"
689  ;;
690
691*)
692  echo "Unknown depmode $depmode" 1>&2
693  exit 1
694  ;;
695esac
696
697exit 0
698
699# Local Variables:
700# mode: shell-script
701# sh-indentation: 2
702# eval: (add-hook 'write-file-hooks 'time-stamp)
703# time-stamp-start: "scriptversion="
704# time-stamp-format: "%:y-%02m-%02d.%02H"
705# time-stamp-time-zone: "UTC"
706# time-stamp-end: "; # UTC"
707# End:
Note: See TracBrowser for help on using the repository browser.