blob: ca5ea4e1ef9c125b1cb1fc7d51c93d8747637deb [file] [log] [blame]
Dieter Baron9aebb4c2003-10-01 08:08:23 +00001#! /bin/sh
Dieter Baron9aebb4c2003-10-01 08:08:23 +00002# depcomp - compile a program generating dependencies as side-effects
Thomas Klausner38053cd2003-12-27 22:06:47 +00003
Thomas Klausner879dfce2006-12-16 10:16:16 +00004scriptversion=2006-10-15.18
Thomas Klausner38053cd2003-12-27 22:06:47 +00005
Thomas Klausner879dfce2006-12-16 10:16:16 +00006# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
7# Foundation, Inc.
Dieter Baron9aebb4c2003-10-01 08:08:23 +00008
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, write to the Free Software
Thomas Klausner117b31b2005-07-14 16:56:01 +000021# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22# 02110-1301, USA.
Dieter Baron9aebb4c2003-10-01 08:08:23 +000023
24# As a special exception to the GNU General Public License, if you
25# distribute this file as part of a program that contains a
26# configuration script generated by Autoconf, you may include it under
27# the same distribution terms that you use for the rest of that program.
28
29# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
30
Thomas Klausner38053cd2003-12-27 22:06:47 +000031case $1 in
32 '')
33 echo "$0: No command. Try \`$0 --help' for more information." 1>&2
34 exit 1;
35 ;;
36 -h | --h*)
37 cat <<\EOF
38Usage: depcomp [--help] [--version] PROGRAM [ARGS]
39
40Run PROGRAMS ARGS to compile a file, generating dependencies
41as side-effects.
42
43Environment variables:
44 depmode Dependency tracking mode.
45 source Source file read by `PROGRAMS ARGS'.
46 object Object file output by `PROGRAMS ARGS'.
Thomas Klausner24a78982005-01-11 18:38:46 +000047 DEPDIR directory where to store dependencies.
Thomas Klausner38053cd2003-12-27 22:06:47 +000048 depfile Dependency file to output.
49 tmpdepfile Temporary file to use when outputing dependencies.
50 libtool Whether libtool is used (yes/no).
51
52Report bugs to <bug-automake@gnu.org>.
53EOF
Thomas Klausner9883c0b2005-06-09 19:48:03 +000054 exit $?
Thomas Klausner38053cd2003-12-27 22:06:47 +000055 ;;
56 -v | --v*)
57 echo "depcomp $scriptversion"
Thomas Klausner9883c0b2005-06-09 19:48:03 +000058 exit $?
Thomas Klausner38053cd2003-12-27 22:06:47 +000059 ;;
60esac
61
Dieter Baron9aebb4c2003-10-01 08:08:23 +000062if test -z "$depmode" || test -z "$source" || test -z "$object"; then
63 echo "depcomp: Variables source, object and depmode must be set" 1>&2
64 exit 1
65fi
Dieter Baron9aebb4c2003-10-01 08:08:23 +000066
Thomas Klausner24a78982005-01-11 18:38:46 +000067# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
68depfile=${depfile-`echo "$object" |
69 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
Dieter Baron9aebb4c2003-10-01 08:08:23 +000070tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
71
72rm -f "$tmpdepfile"
73
74# Some modes work just like other modes, but use different flags. We
75# parameterize here, but still list the modes in the big case below,
76# to make depend.m4 easier to write. Note that we *cannot* use a case
77# here, because this file can only contain one case statement.
78if test "$depmode" = hp; then
79 # HP compiler uses -M and no extra arg.
80 gccflag=-M
81 depmode=gcc
82fi
83
84if test "$depmode" = dashXmstdout; then
85 # This is just like dashmstdout with a different argument.
86 dashmflag=-xM
87 depmode=dashmstdout
88fi
89
90case "$depmode" in
91gcc3)
92## gcc 3 implements dependency tracking that does exactly what
93## we want. Yay! Note: for some reason libtool 1.4 doesn't like
94## it if -MD -MP comes after the -MF stuff. Hmm.
Thomas Klausner879dfce2006-12-16 10:16:16 +000095## Unfortunately, FreeBSD c89 acceptance of flags depends upon
96## the command line argument order; so add the flags where they
97## appear in depend2.am. Note that the slowdown incurred here
98## affects only configure: in makefiles, %FASTDEP% shortcuts this.
99 for arg
100 do
101 case $arg in
102 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
103 *) set fnord "$@" "$arg" ;;
104 esac
105 shift # fnord
106 shift # $arg
107 done
108 "$@"
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000109 stat=$?
110 if test $stat -eq 0; then :
111 else
112 rm -f "$tmpdepfile"
113 exit $stat
114 fi
115 mv "$tmpdepfile" "$depfile"
116 ;;
117
118gcc)
119## There are various ways to get dependency output from gcc. Here's
120## why we pick this rather obscure method:
121## - Don't want to use -MD because we'd like the dependencies to end
122## up in a subdir. Having to rename by hand is ugly.
123## (We might end up doing this anyway to support other compilers.)
124## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
125## -MM, not -M (despite what the docs say).
126## - Using -M directly means running the compiler twice (even worse
127## than renaming).
128 if test -z "$gccflag"; then
129 gccflag=-MD,
130 fi
131 "$@" -Wp,"$gccflag$tmpdepfile"
132 stat=$?
133 if test $stat -eq 0; then :
134 else
135 rm -f "$tmpdepfile"
136 exit $stat
137 fi
138 rm -f "$depfile"
139 echo "$object : \\" > "$depfile"
140 alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
141## The second -e expression handles DOS-style file names with drive letters.
142 sed -e 's/^[^:]*: / /' \
143 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
144## This next piece of magic avoids the `deleted header file' problem.
145## The problem is that when a header file which appears in a .P file
146## is deleted, the dependency causes make to die (because there is
147## typically no way to rebuild the header). We avoid this by adding
148## dummy dependencies for each header file. Too bad gcc doesn't do
149## this for us directly.
150 tr ' ' '
151' < "$tmpdepfile" |
152## Some versions of gcc put a space before the `:'. On the theory
153## that the space means something, we add a space to the output as
154## well.
155## Some versions of the HPUX 10.20 sed can't process this invocation
156## correctly. Breaking it into two sed invocations is a workaround.
157 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
158 rm -f "$tmpdepfile"
159 ;;
160
161hp)
162 # This case exists only to let depend.m4 do its work. It works by
163 # looking at the text of this script. This case will never be run,
164 # since it is checked for above.
165 exit 1
166 ;;
167
168sgi)
169 if test "$libtool" = yes; then
170 "$@" "-Wp,-MDupdate,$tmpdepfile"
171 else
172 "$@" -MDupdate "$tmpdepfile"
173 fi
174 stat=$?
175 if test $stat -eq 0; then :
176 else
177 rm -f "$tmpdepfile"
178 exit $stat
179 fi
180 rm -f "$depfile"
181
182 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
183 echo "$object : \\" > "$depfile"
184
185 # Clip off the initial element (the dependent). Don't try to be
186 # clever and replace this with sed code, as IRIX sed won't handle
187 # lines with more than a fixed number of characters (4096 in
188 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
189 # the IRIX cc adds comments like `#:fec' to the end of the
190 # dependency line.
191 tr ' ' '
192' < "$tmpdepfile" \
193 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
194 tr '
195' ' ' >> $depfile
196 echo >> $depfile
197
198 # The second pass generates a dummy entry for each header file.
199 tr ' ' '
200' < "$tmpdepfile" \
201 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
202 >> $depfile
203 else
204 # The sourcefile does not contain any dependencies, so just
205 # store a dummy comment line, to avoid errors with the Makefile
206 # "include basename.Plo" scheme.
207 echo "#dummy" > "$depfile"
208 fi
209 rm -f "$tmpdepfile"
210 ;;
211
212aix)
213 # The C for AIX Compiler uses -M and outputs the dependencies
Thomas Klausner38053cd2003-12-27 22:06:47 +0000214 # in a .u file. In older versions, this file always lives in the
215 # current directory. Also, the AIX compiler puts `$object:' at the
216 # start of each line; $object doesn't have directory information.
217 # Version 6 uses the directory in both cases.
218 stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000219 tmpdepfile="$stripped.u"
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000220 if test "$libtool" = yes; then
221 "$@" -Wc,-M
222 else
223 "$@" -M
224 fi
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000225 stat=$?
Thomas Klausner38053cd2003-12-27 22:06:47 +0000226
227 if test -f "$tmpdepfile"; then :
228 else
229 stripped=`echo "$stripped" | sed 's,^.*/,,'`
230 tmpdepfile="$stripped.u"
231 fi
232
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000233 if test $stat -eq 0; then :
234 else
235 rm -f "$tmpdepfile"
236 exit $stat
237 fi
238
239 if test -f "$tmpdepfile"; then
Thomas Klausner38053cd2003-12-27 22:06:47 +0000240 outname="$stripped.o"
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000241 # Each line is of the form `foo.o: dependent.h'.
242 # Do two passes, one to just change these to
243 # `$object: dependent.h' and one to simply `dependent.h:'.
244 sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
245 sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
246 else
247 # The sourcefile does not contain any dependencies, so just
248 # store a dummy comment line, to avoid errors with the Makefile
249 # "include basename.Plo" scheme.
250 echo "#dummy" > "$depfile"
251 fi
252 rm -f "$tmpdepfile"
253 ;;
254
255icc)
256 # Intel's C compiler understands `-MD -MF file'. However on
257 # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
258 # ICC 7.0 will fill foo.d with something like
259 # foo.o: sub/foo.c
260 # foo.o: sub/foo.h
261 # which is wrong. We want:
262 # sub/foo.o: sub/foo.c
263 # sub/foo.o: sub/foo.h
264 # sub/foo.c:
265 # sub/foo.h:
266 # ICC 7.1 will output
267 # foo.o: sub/foo.c sub/foo.h
268 # and will wrap long lines using \ :
269 # foo.o: sub/foo.c ... \
270 # sub/foo.h ... \
271 # ...
272
273 "$@" -MD -MF "$tmpdepfile"
274 stat=$?
275 if test $stat -eq 0; then :
276 else
277 rm -f "$tmpdepfile"
278 exit $stat
279 fi
280 rm -f "$depfile"
281 # Each line is of the form `foo.o: dependent.h',
282 # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
283 # Do two passes, one to just change these to
284 # `$object: dependent.h' and one to simply `dependent.h:'.
285 sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
286 # Some versions of the HPUX 10.20 sed can't process this invocation
287 # correctly. Breaking it into two sed invocations is a workaround.
288 sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
289 sed -e 's/$/ :/' >> "$depfile"
290 rm -f "$tmpdepfile"
291 ;;
292
Thomas Klausner879dfce2006-12-16 10:16:16 +0000293hp2)
294 # The "hp" stanza above does not work with aCC (C++) and HP's ia64
295 # compilers, which have integrated preprocessors. The correct option
296 # to use with these is +Maked; it writes dependencies to a file named
297 # 'foo.d', which lands next to the object file, wherever that
298 # happens to be.
299 # Much of this is similar to the tru64 case; see comments there.
300 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
301 test "x$dir" = "x$object" && dir=
302 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
303 if test "$libtool" = yes; then
304 tmpdepfile1=$dir$base.d
305 tmpdepfile2=$dir.libs/$base.d
306 "$@" -Wc,+Maked
307 else
308 tmpdepfile1=$dir$base.d
309 tmpdepfile2=$dir$base.d
310 "$@" +Maked
311 fi
312 stat=$?
313 if test $stat -eq 0; then :
314 else
315 rm -f "$tmpdepfile1" "$tmpdepfile2"
316 exit $stat
317 fi
318
319 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
320 do
321 test -f "$tmpdepfile" && break
322 done
323 if test -f "$tmpdepfile"; then
324 sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
325 # Add `dependent.h:' lines.
326 sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
327 else
328 echo "#dummy" > "$depfile"
329 fi
330 rm -f "$tmpdepfile" "$tmpdepfile2"
331 ;;
332
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000333tru64)
334 # The Tru64 compiler uses -MD to generate dependencies as a side
335 # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
336 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
337 # dependencies in `foo.d' instead, so we check for that too.
338 # Subdirectories are respected.
339 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
340 test "x$dir" = "x$object" && dir=
341 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
342
343 if test "$libtool" = yes; then
Thomas Klausner9883c0b2005-06-09 19:48:03 +0000344 # With Tru64 cc, shared objects can also be used to make a
Thomas Klausner879dfce2006-12-16 10:16:16 +0000345 # static library. This mechanism is used in libtool 1.4 series to
Thomas Klausner9883c0b2005-06-09 19:48:03 +0000346 # handle both shared and static libraries in a single compilation.
347 # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
348 #
349 # With libtool 1.5 this exception was removed, and libtool now
350 # generates 2 separate objects for the 2 libraries. These two
Thomas Klausner879dfce2006-12-16 10:16:16 +0000351 # compilations output dependencies in $dir.libs/$base.o.d and
Thomas Klausner9883c0b2005-06-09 19:48:03 +0000352 # in $dir$base.o.d. We have to check for both files, because
353 # one of the two compilations can be disabled. We should prefer
354 # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
355 # automatically cleaned when .libs/ is deleted, while ignoring
356 # the former would cause a distcleancheck panic.
357 tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
358 tmpdepfile2=$dir$base.o.d # libtool 1.5
359 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
360 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000361 "$@" -Wc,-MD
362 else
Thomas Klausner9883c0b2005-06-09 19:48:03 +0000363 tmpdepfile1=$dir$base.o.d
364 tmpdepfile2=$dir$base.d
365 tmpdepfile3=$dir$base.d
366 tmpdepfile4=$dir$base.d
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000367 "$@" -MD
368 fi
369
370 stat=$?
371 if test $stat -eq 0; then :
372 else
Thomas Klausner9883c0b2005-06-09 19:48:03 +0000373 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000374 exit $stat
375 fi
376
Thomas Klausner9883c0b2005-06-09 19:48:03 +0000377 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
378 do
379 test -f "$tmpdepfile" && break
380 done
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000381 if test -f "$tmpdepfile"; then
382 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
Thomas Klausner38053cd2003-12-27 22:06:47 +0000383 # That's a tab and a space in the [].
384 sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000385 else
386 echo "#dummy" > "$depfile"
387 fi
388 rm -f "$tmpdepfile"
389 ;;
390
391#nosideeffect)
392 # This comment above is used by automake to tell side-effect
393 # dependency tracking mechanisms from slower ones.
394
395dashmstdout)
396 # Important note: in order to support this mode, a compiler *must*
Thomas Klausner38053cd2003-12-27 22:06:47 +0000397 # always write the preprocessed file to stdout, regardless of -o.
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000398 "$@" || exit $?
399
400 # Remove the call to Libtool.
401 if test "$libtool" = yes; then
402 while test $1 != '--mode=compile'; do
403 shift
404 done
405 shift
406 fi
407
408 # Remove `-o $object'.
409 IFS=" "
410 for arg
411 do
412 case $arg in
413 -o)
414 shift
415 ;;
416 $object)
417 shift
418 ;;
419 *)
420 set fnord "$@" "$arg"
421 shift # fnord
422 shift # $arg
423 ;;
424 esac
425 done
426
427 test -z "$dashmflag" && dashmflag=-M
428 # Require at least two characters before searching for `:'
429 # in the target name. This is to cope with DOS-style filenames:
430 # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
431 "$@" $dashmflag |
432 sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
433 rm -f "$depfile"
434 cat < "$tmpdepfile" > "$depfile"
435 tr ' ' '
436' < "$tmpdepfile" | \
437## Some versions of the HPUX 10.20 sed can't process this invocation
438## correctly. Breaking it into two sed invocations is a workaround.
439 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
440 rm -f "$tmpdepfile"
441 ;;
442
443dashXmstdout)
444 # This case only exists to satisfy depend.m4. It is never actually
445 # run, as this mode is specially recognized in the preamble.
446 exit 1
447 ;;
448
449makedepend)
450 "$@" || exit $?
451 # Remove any Libtool call
452 if test "$libtool" = yes; then
453 while test $1 != '--mode=compile'; do
454 shift
455 done
456 shift
457 fi
458 # X makedepend
459 shift
460 cleared=no
461 for arg in "$@"; do
462 case $cleared in
463 no)
464 set ""; shift
465 cleared=yes ;;
466 esac
467 case "$arg" in
468 -D*|-I*)
469 set fnord "$@" "$arg"; shift ;;
470 # Strip any option that makedepend may not understand. Remove
471 # the object too, otherwise makedepend will parse it as a source file.
472 -*|$object)
473 ;;
474 *)
475 set fnord "$@" "$arg"; shift ;;
476 esac
477 done
478 obj_suffix="`echo $object | sed 's/^.*\././'`"
479 touch "$tmpdepfile"
480 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
481 rm -f "$depfile"
482 cat < "$tmpdepfile" > "$depfile"
483 sed '1,2d' "$tmpdepfile" | tr ' ' '
484' | \
485## Some versions of the HPUX 10.20 sed can't process this invocation
486## correctly. Breaking it into two sed invocations is a workaround.
487 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
488 rm -f "$tmpdepfile" "$tmpdepfile".bak
489 ;;
490
491cpp)
492 # Important note: in order to support this mode, a compiler *must*
Thomas Klausner38053cd2003-12-27 22:06:47 +0000493 # always write the preprocessed file to stdout.
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000494 "$@" || exit $?
495
496 # Remove the call to Libtool.
497 if test "$libtool" = yes; then
498 while test $1 != '--mode=compile'; do
499 shift
500 done
501 shift
502 fi
503
504 # Remove `-o $object'.
505 IFS=" "
506 for arg
507 do
508 case $arg in
509 -o)
510 shift
511 ;;
512 $object)
513 shift
514 ;;
515 *)
516 set fnord "$@" "$arg"
517 shift # fnord
518 shift # $arg
519 ;;
520 esac
521 done
522
523 "$@" -E |
Thomas Klausner117b31b2005-07-14 16:56:01 +0000524 sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
525 -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000526 sed '$ s: \\$::' > "$tmpdepfile"
527 rm -f "$depfile"
528 echo "$object : \\" > "$depfile"
529 cat < "$tmpdepfile" >> "$depfile"
530 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
531 rm -f "$tmpdepfile"
532 ;;
533
534msvisualcpp)
535 # Important note: in order to support this mode, a compiler *must*
Thomas Klausner38053cd2003-12-27 22:06:47 +0000536 # always write the preprocessed file to stdout, regardless of -o,
Dieter Baron9aebb4c2003-10-01 08:08:23 +0000537 # because we must use -o when running libtool.
538 "$@" || exit $?
539 IFS=" "
540 for arg
541 do
542 case "$arg" in
543 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
544 set fnord "$@"
545 shift
546 shift
547 ;;
548 *)
549 set fnord "$@" "$arg"
550 shift
551 shift
552 ;;
553 esac
554 done
555 "$@" -E |
556 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
557 rm -f "$depfile"
558 echo "$object : \\" > "$depfile"
559 . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
560 echo " " >> "$depfile"
561 . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
562 rm -f "$tmpdepfile"
563 ;;
564
565none)
566 exec "$@"
567 ;;
568
569*)
570 echo "Unknown depmode $depmode" 1>&2
571 exit 1
572 ;;
573esac
574
575exit 0
Thomas Klausner38053cd2003-12-27 22:06:47 +0000576
577# Local Variables:
578# mode: shell-script
579# sh-indentation: 2
580# eval: (add-hook 'write-file-hooks 'time-stamp)
581# time-stamp-start: "scriptversion="
582# time-stamp-format: "%:y-%02m-%02d.%02H"
583# time-stamp-end: "$"
584# End: