ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/branches/newio/depcomp
Revision: 1662
Committed: Sat Nov 17 20:11:33 2012 UTC (11 years, 4 months ago) by michael
Original Path: ircd-hybrid/trunk/depcomp
File size: 23557 byte(s)
Log Message:
- Fixed inconsistent svn file properties

File Contents

# Content
1 #! /bin/sh
2 # depcomp - compile a program generating dependencies as side-effects
3
4 scriptversion=2012-07-12.20; # UTC
5
6 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
7
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
11 # any later version.
12
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
27
28 case $1 in
29 '')
30 echo "$0: No command. Try '$0 --help' for more information." 1>&2
31 exit 1;
32 ;;
33 -h | --h*)
34 cat <<\EOF
35 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
36
37 Run PROGRAMS ARGS to compile a file, generating dependencies
38 as side-effects.
39
40 Environment variables:
41 depmode Dependency tracking mode.
42 source Source file read by 'PROGRAMS ARGS'.
43 object Object file output by 'PROGRAMS ARGS'.
44 DEPDIR directory where to store dependencies.
45 depfile Dependency file to output.
46 tmpdepfile Temporary file to use when outputting dependencies.
47 libtool Whether libtool is used (yes/no).
48
49 Report bugs to <bug-automake@gnu.org>.
50 EOF
51 exit $?
52 ;;
53 -v | --v*)
54 echo "depcomp $scriptversion"
55 exit $?
56 ;;
57 esac
58
59 # A tabulation character.
60 tab=' '
61 # A newline character.
62 nl='
63 '
64
65 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
66 echo "depcomp: Variables source, object and depmode must be set" 1>&2
67 exit 1
68 fi
69
70 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
71 depfile=${depfile-`echo "$object" |
72 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
73 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
74
75 rm -f "$tmpdepfile"
76
77 # Some modes work just like other modes, but use different flags. We
78 # parameterize here, but still list the modes in the big case below,
79 # to make depend.m4 easier to write. Note that we *cannot* use a case
80 # here, because this file can only contain one case statement.
81 if test "$depmode" = hp; then
82 # HP compiler uses -M and no extra arg.
83 gccflag=-M
84 depmode=gcc
85 fi
86
87 if test "$depmode" = dashXmstdout; then
88 # This is just like dashmstdout with a different argument.
89 dashmflag=-xM
90 depmode=dashmstdout
91 fi
92
93 cygpath_u="cygpath -u -f -"
94 if test "$depmode" = msvcmsys; then
95 # This is just like msvisualcpp but w/o cygpath translation.
96 # Just convert the backslash-escaped backslashes to single forward
97 # slashes to satisfy depend.m4
98 cygpath_u='sed s,\\\\,/,g'
99 depmode=msvisualcpp
100 fi
101
102 if test "$depmode" = msvc7msys; then
103 # This is just like msvc7 but w/o cygpath translation.
104 # Just convert the backslash-escaped backslashes to single forward
105 # slashes to satisfy depend.m4
106 cygpath_u='sed s,\\\\,/,g'
107 depmode=msvc7
108 fi
109
110 if test "$depmode" = xlc; then
111 # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
112 gccflag=-qmakedep=gcc,-MF
113 depmode=gcc
114 fi
115
116 case "$depmode" in
117 gcc3)
118 ## gcc 3 implements dependency tracking that does exactly what
119 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
120 ## it if -MD -MP comes after the -MF stuff. Hmm.
121 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
122 ## the command line argument order; so add the flags where they
123 ## appear in depend2.am. Note that the slowdown incurred here
124 ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
125 for arg
126 do
127 case $arg in
128 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
129 *) set fnord "$@" "$arg" ;;
130 esac
131 shift # fnord
132 shift # $arg
133 done
134 "$@"
135 stat=$?
136 if test $stat -eq 0; then :
137 else
138 rm -f "$tmpdepfile"
139 exit $stat
140 fi
141 mv "$tmpdepfile" "$depfile"
142 ;;
143
144 gcc)
145 ## There are various ways to get dependency output from gcc. Here's
146 ## why we pick this rather obscure method:
147 ## - Don't want to use -MD because we'd like the dependencies to end
148 ## up in a subdir. Having to rename by hand is ugly.
149 ## (We might end up doing this anyway to support other compilers.)
150 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
151 ## -MM, not -M (despite what the docs say).
152 ## - Using -M directly means running the compiler twice (even worse
153 ## than renaming).
154 if test -z "$gccflag"; then
155 gccflag=-MD,
156 fi
157 "$@" -Wp,"$gccflag$tmpdepfile"
158 stat=$?
159 if test $stat -eq 0; then :
160 else
161 rm -f "$tmpdepfile"
162 exit $stat
163 fi
164 rm -f "$depfile"
165 echo "$object : \\" > "$depfile"
166 alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
167 ## The second -e expression handles DOS-style file names with drive letters.
168 sed -e 's/^[^:]*: / /' \
169 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
170 ## This next piece of magic avoids the "deleted header file" problem.
171 ## The problem is that when a header file which appears in a .P file
172 ## is deleted, the dependency causes make to die (because there is
173 ## typically no way to rebuild the header). We avoid this by adding
174 ## dummy dependencies for each header file. Too bad gcc doesn't do
175 ## this for us directly.
176 tr ' ' "$nl" < "$tmpdepfile" |
177 ## Some versions of gcc put a space before the ':'. On the theory
178 ## that the space means something, we add a space to the output as
179 ## well. hp depmode also adds that space, but also prefixes the VPATH
180 ## to the object. Take care to not repeat it in the output.
181 ## Some versions of the HPUX 10.20 sed can't process this invocation
182 ## correctly. Breaking it into two sed invocations is a workaround.
183 sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
184 | sed -e 's/$/ :/' >> "$depfile"
185 rm -f "$tmpdepfile"
186 ;;
187
188 hp)
189 # This case exists only to let depend.m4 do its work. It works by
190 # looking at the text of this script. This case will never be run,
191 # since it is checked for above.
192 exit 1
193 ;;
194
195 sgi)
196 if test "$libtool" = yes; then
197 "$@" "-Wp,-MDupdate,$tmpdepfile"
198 else
199 "$@" -MDupdate "$tmpdepfile"
200 fi
201 stat=$?
202 if test $stat -eq 0; then :
203 else
204 rm -f "$tmpdepfile"
205 exit $stat
206 fi
207 rm -f "$depfile"
208
209 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
210 echo "$object : \\" > "$depfile"
211
212 # Clip off the initial element (the dependent). Don't try to be
213 # clever and replace this with sed code, as IRIX sed won't handle
214 # lines with more than a fixed number of characters (4096 in
215 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
216 # the IRIX cc adds comments like '#:fec' to the end of the
217 # dependency line.
218 tr ' ' "$nl" < "$tmpdepfile" \
219 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
220 tr "$nl" ' ' >> "$depfile"
221 echo >> "$depfile"
222
223 # The second pass generates a dummy entry for each header file.
224 tr ' ' "$nl" < "$tmpdepfile" \
225 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
226 >> "$depfile"
227 else
228 # The sourcefile does not contain any dependencies, so just
229 # store a dummy comment line, to avoid errors with the Makefile
230 # "include basename.Plo" scheme.
231 echo "#dummy" > "$depfile"
232 fi
233 rm -f "$tmpdepfile"
234 ;;
235
236 xlc)
237 # This case exists only to let depend.m4 do its work. It works by
238 # looking at the text of this script. This case will never be run,
239 # since it is checked for above.
240 exit 1
241 ;;
242
243 aix)
244 # The C for AIX Compiler uses -M and outputs the dependencies
245 # in a .u file. In older versions, this file always lives in the
246 # current directory. Also, the AIX compiler puts '$object:' at the
247 # start of each line; $object doesn't have directory information.
248 # Version 6 uses the directory in both cases.
249 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
250 test "x$dir" = "x$object" && dir=
251 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
252 if test "$libtool" = yes; then
253 tmpdepfile1=$dir$base.u
254 tmpdepfile2=$base.u
255 tmpdepfile3=$dir.libs/$base.u
256 "$@" -Wc,-M
257 else
258 tmpdepfile1=$dir$base.u
259 tmpdepfile2=$dir$base.u
260 tmpdepfile3=$dir$base.u
261 "$@" -M
262 fi
263 stat=$?
264
265 if test $stat -eq 0; then :
266 else
267 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
268 exit $stat
269 fi
270
271 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
272 do
273 test -f "$tmpdepfile" && break
274 done
275 if test -f "$tmpdepfile"; then
276 # Each line is of the form 'foo.o: dependent.h'.
277 # Do two passes, one to just change these to
278 # '$object: dependent.h' and one to simply 'dependent.h:'.
279 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
280 sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
281 else
282 # The sourcefile does not contain any dependencies, so just
283 # store a dummy comment line, to avoid errors with the Makefile
284 # "include basename.Plo" scheme.
285 echo "#dummy" > "$depfile"
286 fi
287 rm -f "$tmpdepfile"
288 ;;
289
290 icc)
291 # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
292 # However on
293 # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
294 # ICC 7.0 will fill foo.d with something like
295 # foo.o: sub/foo.c
296 # foo.o: sub/foo.h
297 # which is wrong. We want
298 # sub/foo.o: sub/foo.c
299 # sub/foo.o: sub/foo.h
300 # sub/foo.c:
301 # sub/foo.h:
302 # ICC 7.1 will output
303 # foo.o: sub/foo.c sub/foo.h
304 # and will wrap long lines using '\':
305 # foo.o: sub/foo.c ... \
306 # sub/foo.h ... \
307 # ...
308 # tcc 0.9.26 (FIXME still under development at the moment of writing)
309 # will emit a similar output, but also prepend the continuation lines
310 # with horizontal tabulation characters.
311 "$@" -MD -MF "$tmpdepfile"
312 stat=$?
313 if test $stat -eq 0; then :
314 else
315 rm -f "$tmpdepfile"
316 exit $stat
317 fi
318 rm -f "$depfile"
319 # Each line is of the form 'foo.o: dependent.h',
320 # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
321 # Do two passes, one to just change these to
322 # '$object: dependent.h' and one to simply 'dependent.h:'.
323 sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
324 < "$tmpdepfile" > "$depfile"
325 sed '
326 s/[ '"$tab"'][ '"$tab"']*/ /g
327 s/^ *//
328 s/ *\\*$//
329 s/^[^:]*: *//
330 /^$/d
331 /:$/d
332 s/$/ :/
333 ' < "$tmpdepfile" >> "$depfile"
334 rm -f "$tmpdepfile"
335 ;;
336
337 ## The order of this option in the case statement is important, since the
338 ## shell code in configure will try each of these formats in the order
339 ## listed in this file. A plain '-MD' option would be understood by many
340 ## compilers, so we must ensure this comes after the gcc and icc options.
341 pgcc)
342 # Portland's C compiler understands '-MD'.
343 # Will always output deps to 'file.d' where file is the root name of the
344 # source file under compilation, even if file resides in a subdirectory.
345 # The object file name does not affect the name of the '.d' file.
346 # pgcc 10.2 will output
347 # foo.o: sub/foo.c sub/foo.h
348 # and will wrap long lines using '\' :
349 # foo.o: sub/foo.c ... \
350 # sub/foo.h ... \
351 # ...
352 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
353 test "x$dir" = "x$object" && dir=
354 # Use the source, not the object, to determine the base name, since
355 # that's sadly what pgcc will do too.
356 base=`echo "$source" | sed -e 's|^.*/||' -e 's/\.[-_a-zA-Z0-9]*$//'`
357 tmpdepfile="$base.d"
358
359 # For projects that build the same source file twice into different object
360 # files, the pgcc approach of using the *source* file root name can cause
361 # problems in parallel builds. Use a locking strategy to avoid stomping on
362 # the same $tmpdepfile.
363 lockdir="$base.d-lock"
364 trap "echo '$0: caught signal, cleaning up...' >&2; rm -rf $lockdir" 1 2 13 15
365 numtries=100
366 i=$numtries
367 while test $i -gt 0 ; do
368 # mkdir is a portable test-and-set.
369 if mkdir $lockdir 2>/dev/null; then
370 # This process acquired the lock.
371 "$@" -MD
372 stat=$?
373 # Release the lock.
374 rm -rf $lockdir
375 break
376 else
377 ## the lock is being held by a different process,
378 ## wait until the winning process is done or we timeout
379 while test -d $lockdir && test $i -gt 0; do
380 sleep 1
381 i=`expr $i - 1`
382 done
383 fi
384 i=`expr $i - 1`
385 done
386 trap - 1 2 13 15
387 if test $i -le 0; then
388 echo "$0: failed to acquire lock after $numtries attempts" >&2
389 echo "$0: check lockdir '$lockdir'" >&2
390 exit 1
391 fi
392
393 if test $stat -ne 0; then
394 rm -f "$tmpdepfile"
395 exit $stat
396 fi
397 rm -f "$depfile"
398 # Each line is of the form `foo.o: dependent.h',
399 # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
400 # Do two passes, one to just change these to
401 # `$object: dependent.h' and one to simply `dependent.h:'.
402 sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
403 # Some versions of the HPUX 10.20 sed can't process this invocation
404 # correctly. Breaking it into two sed invocations is a workaround.
405 sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
406 sed -e 's/$/ :/' >> "$depfile"
407 rm -f "$tmpdepfile"
408 ;;
409
410 hp2)
411 # The "hp" stanza above does not work with aCC (C++) and HP's ia64
412 # compilers, which have integrated preprocessors. The correct option
413 # to use with these is +Maked; it writes dependencies to a file named
414 # 'foo.d', which lands next to the object file, wherever that
415 # happens to be.
416 # Much of this is similar to the tru64 case; see comments there.
417 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
418 test "x$dir" = "x$object" && dir=
419 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
420 if test "$libtool" = yes; then
421 tmpdepfile1=$dir$base.d
422 tmpdepfile2=$dir.libs/$base.d
423 "$@" -Wc,+Maked
424 else
425 tmpdepfile1=$dir$base.d
426 tmpdepfile2=$dir$base.d
427 "$@" +Maked
428 fi
429 stat=$?
430 if test $stat -eq 0; then :
431 else
432 rm -f "$tmpdepfile1" "$tmpdepfile2"
433 exit $stat
434 fi
435
436 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
437 do
438 test -f "$tmpdepfile" && break
439 done
440 if test -f "$tmpdepfile"; then
441 sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
442 # Add 'dependent.h:' lines.
443 sed -ne '2,${
444 s/^ *//
445 s/ \\*$//
446 s/$/:/
447 p
448 }' "$tmpdepfile" >> "$depfile"
449 else
450 echo "#dummy" > "$depfile"
451 fi
452 rm -f "$tmpdepfile" "$tmpdepfile2"
453 ;;
454
455 tru64)
456 # The Tru64 compiler uses -MD to generate dependencies as a side
457 # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
458 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
459 # dependencies in 'foo.d' instead, so we check for that too.
460 # Subdirectories are respected.
461 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
462 test "x$dir" = "x$object" && dir=
463 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
464
465 if test "$libtool" = yes; then
466 # With Tru64 cc, shared objects can also be used to make a
467 # static library. This mechanism is used in libtool 1.4 series to
468 # handle both shared and static libraries in a single compilation.
469 # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
470 #
471 # With libtool 1.5 this exception was removed, and libtool now
472 # generates 2 separate objects for the 2 libraries. These two
473 # compilations output dependencies in $dir.libs/$base.o.d and
474 # in $dir$base.o.d. We have to check for both files, because
475 # one of the two compilations can be disabled. We should prefer
476 # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
477 # automatically cleaned when .libs/ is deleted, while ignoring
478 # the former would cause a distcleancheck panic.
479 tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
480 tmpdepfile2=$dir$base.o.d # libtool 1.5
481 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
482 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
483 "$@" -Wc,-MD
484 else
485 tmpdepfile1=$dir$base.o.d
486 tmpdepfile2=$dir$base.d
487 tmpdepfile3=$dir$base.d
488 tmpdepfile4=$dir$base.d
489 "$@" -MD
490 fi
491
492 stat=$?
493 if test $stat -eq 0; then :
494 else
495 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
496 exit $stat
497 fi
498
499 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
500 do
501 test -f "$tmpdepfile" && break
502 done
503 if test -f "$tmpdepfile"; then
504 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
505 sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
506 else
507 echo "#dummy" > "$depfile"
508 fi
509 rm -f "$tmpdepfile"
510 ;;
511
512 msvc7)
513 if test "$libtool" = yes; then
514 showIncludes=-Wc,-showIncludes
515 else
516 showIncludes=-showIncludes
517 fi
518 "$@" $showIncludes > "$tmpdepfile"
519 stat=$?
520 grep -v '^Note: including file: ' "$tmpdepfile"
521 if test "$stat" = 0; then :
522 else
523 rm -f "$tmpdepfile"
524 exit $stat
525 fi
526 rm -f "$depfile"
527 echo "$object : \\" > "$depfile"
528 # The first sed program below extracts the file names and escapes
529 # backslashes for cygpath. The second sed program outputs the file
530 # name when reading, but also accumulates all include files in the
531 # hold buffer in order to output them again at the end. This only
532 # works with sed implementations that can handle large buffers.
533 sed < "$tmpdepfile" -n '
534 /^Note: including file: *\(.*\)/ {
535 s//\1/
536 s/\\/\\\\/g
537 p
538 }' | $cygpath_u | sort -u | sed -n '
539 s/ /\\ /g
540 s/\(.*\)/'"$tab"'\1 \\/p
541 s/.\(.*\) \\/\1:/
542 H
543 $ {
544 s/.*/'"$tab"'/
545 G
546 p
547 }' >> "$depfile"
548 rm -f "$tmpdepfile"
549 ;;
550
551 msvc7msys)
552 # This case exists only to let depend.m4 do its work. It works by
553 # looking at the text of this script. This case will never be run,
554 # since it is checked for above.
555 exit 1
556 ;;
557
558 #nosideeffect)
559 # This comment above is used by automake to tell side-effect
560 # dependency tracking mechanisms from slower ones.
561
562 dashmstdout)
563 # Important note: in order to support this mode, a compiler *must*
564 # always write the preprocessed file to stdout, regardless of -o.
565 "$@" || exit $?
566
567 # Remove the call to Libtool.
568 if test "$libtool" = yes; then
569 while test "X$1" != 'X--mode=compile'; do
570 shift
571 done
572 shift
573 fi
574
575 # Remove '-o $object'.
576 IFS=" "
577 for arg
578 do
579 case $arg in
580 -o)
581 shift
582 ;;
583 $object)
584 shift
585 ;;
586 *)
587 set fnord "$@" "$arg"
588 shift # fnord
589 shift # $arg
590 ;;
591 esac
592 done
593
594 test -z "$dashmflag" && dashmflag=-M
595 # Require at least two characters before searching for ':'
596 # in the target name. This is to cope with DOS-style filenames:
597 # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
598 "$@" $dashmflag |
599 sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
600 rm -f "$depfile"
601 cat < "$tmpdepfile" > "$depfile"
602 tr ' ' "$nl" < "$tmpdepfile" | \
603 ## Some versions of the HPUX 10.20 sed can't process this invocation
604 ## correctly. Breaking it into two sed invocations is a workaround.
605 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
606 rm -f "$tmpdepfile"
607 ;;
608
609 dashXmstdout)
610 # This case only exists to satisfy depend.m4. It is never actually
611 # run, as this mode is specially recognized in the preamble.
612 exit 1
613 ;;
614
615 makedepend)
616 "$@" || exit $?
617 # Remove any Libtool call
618 if test "$libtool" = yes; then
619 while test "X$1" != 'X--mode=compile'; do
620 shift
621 done
622 shift
623 fi
624 # X makedepend
625 shift
626 cleared=no eat=no
627 for arg
628 do
629 case $cleared in
630 no)
631 set ""; shift
632 cleared=yes ;;
633 esac
634 if test $eat = yes; then
635 eat=no
636 continue
637 fi
638 case "$arg" in
639 -D*|-I*)
640 set fnord "$@" "$arg"; shift ;;
641 # Strip any option that makedepend may not understand. Remove
642 # the object too, otherwise makedepend will parse it as a source file.
643 -arch)
644 eat=yes ;;
645 -*|$object)
646 ;;
647 *)
648 set fnord "$@" "$arg"; shift ;;
649 esac
650 done
651 obj_suffix=`echo "$object" | sed 's/^.*\././'`
652 touch "$tmpdepfile"
653 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
654 rm -f "$depfile"
655 # makedepend may prepend the VPATH from the source file name to the object.
656 # No need to regex-escape $object, excess matching of '.' is harmless.
657 sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
658 sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
659 ## Some versions of the HPUX 10.20 sed can't process this invocation
660 ## correctly. Breaking it into two sed invocations is a workaround.
661 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
662 rm -f "$tmpdepfile" "$tmpdepfile".bak
663 ;;
664
665 cpp)
666 # Important note: in order to support this mode, a compiler *must*
667 # always write the preprocessed file to stdout.
668 "$@" || exit $?
669
670 # Remove the call to Libtool.
671 if test "$libtool" = yes; then
672 while test "X$1" != 'X--mode=compile'; do
673 shift
674 done
675 shift
676 fi
677
678 # Remove '-o $object'.
679 IFS=" "
680 for arg
681 do
682 case $arg in
683 -o)
684 shift
685 ;;
686 $object)
687 shift
688 ;;
689 *)
690 set fnord "$@" "$arg"
691 shift # fnord
692 shift # $arg
693 ;;
694 esac
695 done
696
697 "$@" -E |
698 sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
699 -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
700 sed '$ s: \\$::' > "$tmpdepfile"
701 rm -f "$depfile"
702 echo "$object : \\" > "$depfile"
703 cat < "$tmpdepfile" >> "$depfile"
704 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
705 rm -f "$tmpdepfile"
706 ;;
707
708 msvisualcpp)
709 # Important note: in order to support this mode, a compiler *must*
710 # always write the preprocessed file to stdout.
711 "$@" || exit $?
712
713 # Remove the call to Libtool.
714 if test "$libtool" = yes; then
715 while test "X$1" != 'X--mode=compile'; do
716 shift
717 done
718 shift
719 fi
720
721 IFS=" "
722 for arg
723 do
724 case "$arg" in
725 -o)
726 shift
727 ;;
728 $object)
729 shift
730 ;;
731 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
732 set fnord "$@"
733 shift
734 shift
735 ;;
736 *)
737 set fnord "$@" "$arg"
738 shift
739 shift
740 ;;
741 esac
742 done
743 "$@" -E 2>/dev/null |
744 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
745 rm -f "$depfile"
746 echo "$object : \\" > "$depfile"
747 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
748 echo "$tab" >> "$depfile"
749 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
750 rm -f "$tmpdepfile"
751 ;;
752
753 msvcmsys)
754 # This case exists only to let depend.m4 do its work. It works by
755 # looking at the text of this script. This case will never be run,
756 # since it is checked for above.
757 exit 1
758 ;;
759
760 none)
761 exec "$@"
762 ;;
763
764 *)
765 echo "Unknown depmode $depmode" 1>&2
766 exit 1
767 ;;
768 esac
769
770 exit 0
771
772 # Local Variables:
773 # mode: shell-script
774 # sh-indentation: 2
775 # eval: (add-hook 'write-file-hooks 'time-stamp)
776 # time-stamp-start: "scriptversion="
777 # time-stamp-format: "%:y-%02m-%02d.%02H"
778 # time-stamp-time-zone: "UTC"
779 # time-stamp-end: "; # UTC"
780 # End:

Properties

Name Value
svn:eol-style native
svn:executable *