depcomp revision c19de146
1c19de146Smrg#! /bin/sh 2c19de146Smrg 3c19de146Smrg# depcomp - compile a program generating dependencies as side-effects 4c19de146Smrg# Copyright 1999, 2000, 2003 Free Software Foundation, Inc. 5c19de146Smrg 6c19de146Smrg# This program is free software; you can redistribute it and/or modify 7c19de146Smrg# it under the terms of the GNU General Public License as published by 8c19de146Smrg# the Free Software Foundation; either version 2, or (at your option) 9c19de146Smrg# any later version. 10c19de146Smrg 11c19de146Smrg# This program is distributed in the hope that it will be useful, 12c19de146Smrg# but WITHOUT ANY WARRANTY; without even the implied warranty of 13c19de146Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14c19de146Smrg# GNU General Public License for more details. 15c19de146Smrg 16c19de146Smrg# You should have received a copy of the GNU General Public License 17c19de146Smrg# along with this program; if not, write to the Free Software 18c19de146Smrg# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19c19de146Smrg# 02111-1307, USA. 20c19de146Smrg 21c19de146Smrg# As a special exception to the GNU General Public License, if you 22c19de146Smrg# distribute this file as part of a program that contains a 23c19de146Smrg# configuration script generated by Autoconf, you may include it under 24c19de146Smrg# the same distribution terms that you use for the rest of that program. 25c19de146Smrg 26c19de146Smrg# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. 27c19de146Smrg 28c19de146Smrgif test -z "$depmode" || test -z "$source" || test -z "$object"; then 29c19de146Smrg echo "depcomp: Variables source, object and depmode must be set" 1>&2 30c19de146Smrg exit 1 31c19de146Smrgfi 32c19de146Smrg# `libtool' can also be set to `yes' or `no'. 33c19de146Smrg 34c19de146Smrgif test -z "$depfile"; then 35c19de146Smrg base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` 36c19de146Smrg dir=`echo "$object" | sed 's,/.*$,/,'` 37c19de146Smrg if test "$dir" = "$object"; then 38c19de146Smrg dir= 39c19de146Smrg fi 40c19de146Smrg # FIXME: should be _deps on DOS. 41c19de146Smrg depfile="$dir.deps/$base" 42c19de146Smrgfi 43c19de146Smrg 44c19de146Smrgtmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 45c19de146Smrg 46c19de146Smrgrm -f "$tmpdepfile" 47c19de146Smrg 48c19de146Smrg# Some modes work just like other modes, but use different flags. We 49c19de146Smrg# parameterize here, but still list the modes in the big case below, 50c19de146Smrg# to make depend.m4 easier to write. Note that we *cannot* use a case 51c19de146Smrg# here, because this file can only contain one case statement. 52c19de146Smrgif test "$depmode" = hp; then 53c19de146Smrg # HP compiler uses -M and no extra arg. 54c19de146Smrg gccflag=-M 55c19de146Smrg depmode=gcc 56c19de146Smrgfi 57c19de146Smrg 58c19de146Smrgif test "$depmode" = dashXmstdout; then 59c19de146Smrg # This is just like dashmstdout with a different argument. 60c19de146Smrg dashmflag=-xM 61c19de146Smrg depmode=dashmstdout 62c19de146Smrgfi 63c19de146Smrg 64c19de146Smrgcase "$depmode" in 65c19de146Smrggcc3) 66c19de146Smrg## gcc 3 implements dependency tracking that does exactly what 67c19de146Smrg## we want. Yay! Note: for some reason libtool 1.4 doesn't like 68c19de146Smrg## it if -MD -MP comes after the -MF stuff. Hmm. 69c19de146Smrg "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" 70c19de146Smrg stat=$? 71c19de146Smrg if test $stat -eq 0; then : 72c19de146Smrg else 73c19de146Smrg rm -f "$tmpdepfile" 74c19de146Smrg exit $stat 75c19de146Smrg fi 76c19de146Smrg mv "$tmpdepfile" "$depfile" 77c19de146Smrg ;; 78c19de146Smrg 79c19de146Smrggcc) 80c19de146Smrg## There are various ways to get dependency output from gcc. Here's 81c19de146Smrg## why we pick this rather obscure method: 82c19de146Smrg## - Don't want to use -MD because we'd like the dependencies to end 83c19de146Smrg## up in a subdir. Having to rename by hand is ugly. 84c19de146Smrg## (We might end up doing this anyway to support other compilers.) 85c19de146Smrg## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 86c19de146Smrg## -MM, not -M (despite what the docs say). 87c19de146Smrg## - Using -M directly means running the compiler twice (even worse 88c19de146Smrg## than renaming). 89c19de146Smrg if test -z "$gccflag"; then 90c19de146Smrg gccflag=-MD, 91c19de146Smrg fi 92c19de146Smrg "$@" -Wp,"$gccflag$tmpdepfile" 93c19de146Smrg stat=$? 94c19de146Smrg if test $stat -eq 0; then : 95c19de146Smrg else 96c19de146Smrg rm -f "$tmpdepfile" 97c19de146Smrg exit $stat 98c19de146Smrg fi 99c19de146Smrg rm -f "$depfile" 100c19de146Smrg echo "$object : \\" > "$depfile" 101c19de146Smrg alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 102c19de146Smrg## The second -e expression handles DOS-style file names with drive letters. 103c19de146Smrg sed -e 's/^[^:]*: / /' \ 104c19de146Smrg -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 105c19de146Smrg## This next piece of magic avoids the `deleted header file' problem. 106c19de146Smrg## The problem is that when a header file which appears in a .P file 107c19de146Smrg## is deleted, the dependency causes make to die (because there is 108c19de146Smrg## typically no way to rebuild the header). We avoid this by adding 109c19de146Smrg## dummy dependencies for each header file. Too bad gcc doesn't do 110c19de146Smrg## this for us directly. 111c19de146Smrg tr ' ' ' 112c19de146Smrg' < "$tmpdepfile" | 113c19de146Smrg## Some versions of gcc put a space before the `:'. On the theory 114c19de146Smrg## that the space means something, we add a space to the output as 115c19de146Smrg## well. 116c19de146Smrg## Some versions of the HPUX 10.20 sed can't process this invocation 117c19de146Smrg## correctly. Breaking it into two sed invocations is a workaround. 118c19de146Smrg sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 119c19de146Smrg rm -f "$tmpdepfile" 120c19de146Smrg ;; 121c19de146Smrg 122c19de146Smrghp) 123c19de146Smrg # This case exists only to let depend.m4 do its work. It works by 124c19de146Smrg # looking at the text of this script. This case will never be run, 125c19de146Smrg # since it is checked for above. 126c19de146Smrg exit 1 127c19de146Smrg ;; 128c19de146Smrg 129c19de146Smrgsgi) 130c19de146Smrg if test "$libtool" = yes; then 131c19de146Smrg "$@" "-Wp,-MDupdate,$tmpdepfile" 132c19de146Smrg else 133c19de146Smrg "$@" -MDupdate "$tmpdepfile" 134c19de146Smrg fi 135c19de146Smrg stat=$? 136c19de146Smrg if test $stat -eq 0; then : 137c19de146Smrg else 138c19de146Smrg rm -f "$tmpdepfile" 139c19de146Smrg exit $stat 140c19de146Smrg fi 141c19de146Smrg rm -f "$depfile" 142c19de146Smrg 143c19de146Smrg if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 144c19de146Smrg echo "$object : \\" > "$depfile" 145c19de146Smrg 146c19de146Smrg # Clip off the initial element (the dependent). Don't try to be 147c19de146Smrg # clever and replace this with sed code, as IRIX sed won't handle 148c19de146Smrg # lines with more than a fixed number of characters (4096 in 149c19de146Smrg # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 150c19de146Smrg # the IRIX cc adds comments like `#:fec' to the end of the 151c19de146Smrg # dependency line. 152c19de146Smrg tr ' ' ' 153c19de146Smrg' < "$tmpdepfile" \ 154c19de146Smrg | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 155c19de146Smrg tr ' 156c19de146Smrg' ' ' >> $depfile 157c19de146Smrg echo >> $depfile 158c19de146Smrg 159c19de146Smrg # The second pass generates a dummy entry for each header file. 160c19de146Smrg tr ' ' ' 161c19de146Smrg' < "$tmpdepfile" \ 162c19de146Smrg | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 163c19de146Smrg >> $depfile 164c19de146Smrg else 165c19de146Smrg # The sourcefile does not contain any dependencies, so just 166c19de146Smrg # store a dummy comment line, to avoid errors with the Makefile 167c19de146Smrg # "include basename.Plo" scheme. 168c19de146Smrg echo "#dummy" > "$depfile" 169c19de146Smrg fi 170c19de146Smrg rm -f "$tmpdepfile" 171c19de146Smrg ;; 172c19de146Smrg 173c19de146Smrgaix) 174c19de146Smrg # The C for AIX Compiler uses -M and outputs the dependencies 175c19de146Smrg # in a .u file. In older versions, this file always lives in the 176c19de146Smrg # current directory. Also, the AIX compiler puts `$object:' at the 177c19de146Smrg # start of each line; $object doesn't have directory information. 178c19de146Smrg # Version 6 uses the directory in both cases. 179c19de146Smrg stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` 180c19de146Smrg tmpdepfile="$stripped.u" 181c19de146Smrg if test "$libtool" = yes; then 182c19de146Smrg "$@" -Wc,-M 183c19de146Smrg else 184c19de146Smrg "$@" -M 185c19de146Smrg fi 186c19de146Smrg stat=$? 187c19de146Smrg 188c19de146Smrg if test -f "$tmpdepfile"; then : 189c19de146Smrg else 190c19de146Smrg stripped=`echo "$stripped" | sed 's,^.*/,,'` 191c19de146Smrg tmpdepfile="$stripped.u" 192c19de146Smrg fi 193c19de146Smrg 194c19de146Smrg if test $stat -eq 0; then : 195c19de146Smrg else 196c19de146Smrg rm -f "$tmpdepfile" 197c19de146Smrg exit $stat 198c19de146Smrg fi 199c19de146Smrg 200c19de146Smrg if test -f "$tmpdepfile"; then 201c19de146Smrg outname="$stripped.o" 202c19de146Smrg # Each line is of the form `foo.o: dependent.h'. 203c19de146Smrg # Do two passes, one to just change these to 204c19de146Smrg # `$object: dependent.h' and one to simply `dependent.h:'. 205c19de146Smrg sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" 206c19de146Smrg sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" 207c19de146Smrg else 208c19de146Smrg # The sourcefile does not contain any dependencies, so just 209c19de146Smrg # store a dummy comment line, to avoid errors with the Makefile 210c19de146Smrg # "include basename.Plo" scheme. 211c19de146Smrg echo "#dummy" > "$depfile" 212c19de146Smrg fi 213c19de146Smrg rm -f "$tmpdepfile" 214c19de146Smrg ;; 215c19de146Smrg 216c19de146Smrgicc) 217c19de146Smrg # Intel's C compiler understands `-MD -MF file'. However on 218c19de146Smrg # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 219c19de146Smrg # ICC 7.0 will fill foo.d with something like 220c19de146Smrg # foo.o: sub/foo.c 221c19de146Smrg # foo.o: sub/foo.h 222c19de146Smrg # which is wrong. We want: 223c19de146Smrg # sub/foo.o: sub/foo.c 224c19de146Smrg # sub/foo.o: sub/foo.h 225c19de146Smrg # sub/foo.c: 226c19de146Smrg # sub/foo.h: 227c19de146Smrg # ICC 7.1 will output 228c19de146Smrg # foo.o: sub/foo.c sub/foo.h 229c19de146Smrg # and will wrap long lines using \ : 230c19de146Smrg # foo.o: sub/foo.c ... \ 231c19de146Smrg # sub/foo.h ... \ 232c19de146Smrg # ... 233c19de146Smrg 234c19de146Smrg "$@" -MD -MF "$tmpdepfile" 235c19de146Smrg stat=$? 236c19de146Smrg if test $stat -eq 0; then : 237c19de146Smrg else 238c19de146Smrg rm -f "$tmpdepfile" 239c19de146Smrg exit $stat 240c19de146Smrg fi 241c19de146Smrg rm -f "$depfile" 242c19de146Smrg # Each line is of the form `foo.o: dependent.h', 243c19de146Smrg # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 244c19de146Smrg # Do two passes, one to just change these to 245c19de146Smrg # `$object: dependent.h' and one to simply `dependent.h:'. 246c19de146Smrg sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 247c19de146Smrg # Some versions of the HPUX 10.20 sed can't process this invocation 248c19de146Smrg # correctly. Breaking it into two sed invocations is a workaround. 249c19de146Smrg sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 250c19de146Smrg sed -e 's/$/ :/' >> "$depfile" 251c19de146Smrg rm -f "$tmpdepfile" 252c19de146Smrg ;; 253c19de146Smrg 254c19de146Smrgtru64) 255c19de146Smrg # The Tru64 compiler uses -MD to generate dependencies as a side 256c19de146Smrg # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 257c19de146Smrg # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 258c19de146Smrg # dependencies in `foo.d' instead, so we check for that too. 259c19de146Smrg # Subdirectories are respected. 260c19de146Smrg dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 261c19de146Smrg test "x$dir" = "x$object" && dir= 262c19de146Smrg base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 263c19de146Smrg 264c19de146Smrg if test "$libtool" = yes; then 265c19de146Smrg tmpdepfile1="$dir.libs/$base.lo.d" 266c19de146Smrg tmpdepfile2="$dir.libs/$base.d" 267c19de146Smrg "$@" -Wc,-MD 268c19de146Smrg else 269c19de146Smrg tmpdepfile1="$dir$base.o.d" 270c19de146Smrg tmpdepfile2="$dir$base.d" 271c19de146Smrg "$@" -MD 272c19de146Smrg fi 273c19de146Smrg 274c19de146Smrg stat=$? 275c19de146Smrg if test $stat -eq 0; then : 276c19de146Smrg else 277c19de146Smrg rm -f "$tmpdepfile1" "$tmpdepfile2" 278c19de146Smrg exit $stat 279c19de146Smrg fi 280c19de146Smrg 281c19de146Smrg if test -f "$tmpdepfile1"; then 282c19de146Smrg tmpdepfile="$tmpdepfile1" 283c19de146Smrg else 284c19de146Smrg tmpdepfile="$tmpdepfile2" 285c19de146Smrg fi 286c19de146Smrg if test -f "$tmpdepfile"; then 287c19de146Smrg sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 288c19de146Smrg # That's a tab and a space in the []. 289c19de146Smrg sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 290c19de146Smrg else 291c19de146Smrg echo "#dummy" > "$depfile" 292c19de146Smrg fi 293c19de146Smrg rm -f "$tmpdepfile" 294c19de146Smrg ;; 295c19de146Smrg 296c19de146Smrg#nosideeffect) 297c19de146Smrg # This comment above is used by automake to tell side-effect 298c19de146Smrg # dependency tracking mechanisms from slower ones. 299c19de146Smrg 300c19de146Smrgdashmstdout) 301c19de146Smrg # Important note: in order to support this mode, a compiler *must* 302c19de146Smrg # always write the preprocessed file to stdout, regardless of -o. 303c19de146Smrg "$@" || exit $? 304c19de146Smrg 305c19de146Smrg # Remove the call to Libtool. 306c19de146Smrg if test "$libtool" = yes; then 307c19de146Smrg while test $1 != '--mode=compile'; do 308c19de146Smrg shift 309c19de146Smrg done 310c19de146Smrg shift 311c19de146Smrg fi 312c19de146Smrg 313c19de146Smrg # Remove `-o $object'. 314c19de146Smrg IFS=" " 315c19de146Smrg for arg 316c19de146Smrg do 317c19de146Smrg case $arg in 318c19de146Smrg -o) 319c19de146Smrg shift 320c19de146Smrg ;; 321c19de146Smrg $object) 322c19de146Smrg shift 323c19de146Smrg ;; 324c19de146Smrg *) 325c19de146Smrg set fnord "$@" "$arg" 326c19de146Smrg shift # fnord 327c19de146Smrg shift # $arg 328c19de146Smrg ;; 329c19de146Smrg esac 330c19de146Smrg done 331c19de146Smrg 332c19de146Smrg test -z "$dashmflag" && dashmflag=-M 333c19de146Smrg # Require at least two characters before searching for `:' 334c19de146Smrg # in the target name. This is to cope with DOS-style filenames: 335c19de146Smrg # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 336c19de146Smrg "$@" $dashmflag | 337c19de146Smrg sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 338c19de146Smrg rm -f "$depfile" 339c19de146Smrg cat < "$tmpdepfile" > "$depfile" 340c19de146Smrg tr ' ' ' 341c19de146Smrg' < "$tmpdepfile" | \ 342c19de146Smrg## Some versions of the HPUX 10.20 sed can't process this invocation 343c19de146Smrg## correctly. Breaking it into two sed invocations is a workaround. 344c19de146Smrg sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 345c19de146Smrg rm -f "$tmpdepfile" 346c19de146Smrg ;; 347c19de146Smrg 348c19de146SmrgdashXmstdout) 349c19de146Smrg # This case only exists to satisfy depend.m4. It is never actually 350c19de146Smrg # run, as this mode is specially recognized in the preamble. 351c19de146Smrg exit 1 352c19de146Smrg ;; 353c19de146Smrg 354c19de146Smrgmakedepend) 355c19de146Smrg "$@" || exit $? 356c19de146Smrg # Remove any Libtool call 357c19de146Smrg if test "$libtool" = yes; then 358c19de146Smrg while test $1 != '--mode=compile'; do 359c19de146Smrg shift 360c19de146Smrg done 361c19de146Smrg shift 362c19de146Smrg fi 363c19de146Smrg # X makedepend 364c19de146Smrg shift 365c19de146Smrg cleared=no 366c19de146Smrg for arg in "$@"; do 367c19de146Smrg case $cleared in 368c19de146Smrg no) 369c19de146Smrg set ""; shift 370c19de146Smrg cleared=yes ;; 371c19de146Smrg esac 372c19de146Smrg case "$arg" in 373c19de146Smrg -D*|-I*) 374c19de146Smrg set fnord "$@" "$arg"; shift ;; 375c19de146Smrg # Strip any option that makedepend may not understand. Remove 376c19de146Smrg # the object too, otherwise makedepend will parse it as a source file. 377c19de146Smrg -*|$object) 378c19de146Smrg ;; 379c19de146Smrg *) 380c19de146Smrg set fnord "$@" "$arg"; shift ;; 381c19de146Smrg esac 382c19de146Smrg done 383c19de146Smrg obj_suffix="`echo $object | sed 's/^.*\././'`" 384c19de146Smrg touch "$tmpdepfile" 385c19de146Smrg ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 386c19de146Smrg rm -f "$depfile" 387c19de146Smrg cat < "$tmpdepfile" > "$depfile" 388c19de146Smrg sed '1,2d' "$tmpdepfile" | tr ' ' ' 389c19de146Smrg' | \ 390c19de146Smrg## Some versions of the HPUX 10.20 sed can't process this invocation 391c19de146Smrg## correctly. Breaking it into two sed invocations is a workaround. 392c19de146Smrg sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 393c19de146Smrg rm -f "$tmpdepfile" "$tmpdepfile".bak 394c19de146Smrg ;; 395c19de146Smrg 396c19de146Smrgcpp) 397c19de146Smrg # Important note: in order to support this mode, a compiler *must* 398c19de146Smrg # always write the preprocessed file to stdout. 399c19de146Smrg "$@" || exit $? 400c19de146Smrg 401c19de146Smrg # Remove the call to Libtool. 402c19de146Smrg if test "$libtool" = yes; then 403c19de146Smrg while test $1 != '--mode=compile'; do 404c19de146Smrg shift 405c19de146Smrg done 406c19de146Smrg shift 407c19de146Smrg fi 408c19de146Smrg 409c19de146Smrg # Remove `-o $object'. 410c19de146Smrg IFS=" " 411c19de146Smrg for arg 412c19de146Smrg do 413c19de146Smrg case $arg in 414c19de146Smrg -o) 415c19de146Smrg shift 416c19de146Smrg ;; 417c19de146Smrg $object) 418c19de146Smrg shift 419c19de146Smrg ;; 420c19de146Smrg *) 421c19de146Smrg set fnord "$@" "$arg" 422c19de146Smrg shift # fnord 423c19de146Smrg shift # $arg 424c19de146Smrg ;; 425c19de146Smrg esac 426c19de146Smrg done 427c19de146Smrg 428c19de146Smrg "$@" -E | 429c19de146Smrg sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 430c19de146Smrg sed '$ s: \\$::' > "$tmpdepfile" 431c19de146Smrg rm -f "$depfile" 432c19de146Smrg echo "$object : \\" > "$depfile" 433c19de146Smrg cat < "$tmpdepfile" >> "$depfile" 434c19de146Smrg sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 435c19de146Smrg rm -f "$tmpdepfile" 436c19de146Smrg ;; 437c19de146Smrg 438c19de146Smrgmsvisualcpp) 439c19de146Smrg # Important note: in order to support this mode, a compiler *must* 440c19de146Smrg # always write the preprocessed file to stdout, regardless of -o, 441c19de146Smrg # because we must use -o when running libtool. 442c19de146Smrg "$@" || exit $? 443c19de146Smrg IFS=" " 444c19de146Smrg for arg 445c19de146Smrg do 446c19de146Smrg case "$arg" in 447c19de146Smrg "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 448c19de146Smrg set fnord "$@" 449c19de146Smrg shift 450c19de146Smrg shift 451c19de146Smrg ;; 452c19de146Smrg *) 453c19de146Smrg set fnord "$@" "$arg" 454c19de146Smrg shift 455c19de146Smrg shift 456c19de146Smrg ;; 457c19de146Smrg esac 458c19de146Smrg done 459c19de146Smrg "$@" -E | 460c19de146Smrg sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" 461c19de146Smrg rm -f "$depfile" 462c19de146Smrg echo "$object : \\" > "$depfile" 463c19de146Smrg . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" 464c19de146Smrg echo " " >> "$depfile" 465c19de146Smrg . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" 466c19de146Smrg rm -f "$tmpdepfile" 467c19de146Smrg ;; 468c19de146Smrg 469c19de146Smrgnone) 470c19de146Smrg exec "$@" 471c19de146Smrg ;; 472c19de146Smrg 473c19de146Smrg*) 474c19de146Smrg echo "Unknown depmode $depmode" 1>&2 475c19de146Smrg exit 1 476c19de146Smrg ;; 477c19de146Smrgesac 478c19de146Smrg 479c19de146Smrgexit 0 480