File:  [local] / rpl / Attic / depcomp
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Jan 26 15:22:44 2010 UTC (14 years, 3 months ago) by bertrand
Branches: JKB
CVS tags: start, rpl-4_0_14, rpl-4_0_13, rpl-4_0_12, rpl-4_0_11, rpl-4_0_10


Commit initial.

    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:

CVSweb interface <joel.bertrand@systella.fr>