Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  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:
  631.