depcomp 18 KB

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