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