mkrf 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/CHANGELOG +2 -0
  2. data/MIT-LICENSE +7 -0
  3. data/README +54 -0
  4. data/Rakefile +107 -0
  5. data/lib/mkrf.rb +4 -0
  6. data/lib/mkrf/availability.rb +219 -0
  7. data/lib/mkrf/generator.rb +146 -0
  8. data/test/abstract_unit.rb +4 -0
  9. data/test/fixtures/down_a_directory/header_down_a_directory.h +1 -0
  10. data/test/fixtures/stdmkrf.h +1 -0
  11. data/test/sample_files/libtrivial/Rakefile +31 -0
  12. data/test/sample_files/libtrivial/extconf.rb +3 -0
  13. data/test/sample_files/libtrivial/lib/libtrivial.c +5 -0
  14. data/test/sample_files/libtrivial/lib/libtrivial.o +0 -0
  15. data/test/sample_files/libtrivial/libtrivial_so.bundle +0 -0
  16. data/test/sample_files/libtrivial/mkrf.log +1 -0
  17. data/test/sample_files/libxml-ruby-0.3.8/CHANGELOG +74 -0
  18. data/test/sample_files/libxml-ruby-0.3.8/LICENSE +22 -0
  19. data/test/sample_files/libxml-ruby-0.3.8/README +144 -0
  20. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/cbg.c +76 -0
  21. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/extconf.rb +49 -0
  22. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.c +86 -0
  23. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.h +82 -0
  24. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.rb +107 -0
  25. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/mkrf.log +1 -0
  26. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/old_extconf.rb +95 -0
  27. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attr.c +372 -0
  28. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attr.h +21 -0
  29. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attribute.c +224 -0
  30. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attribute.h +21 -0
  31. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_document.c +1159 -0
  32. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_document.h +27 -0
  33. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_dtd.c +168 -0
  34. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_dtd.h +17 -0
  35. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_input_cbg.c +167 -0
  36. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_input_cbg.h +21 -0
  37. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node.c +2139 -0
  38. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node.h +28 -0
  39. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node_set.c +248 -0
  40. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node_set.h +26 -0
  41. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_ns.c +153 -0
  42. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_ns.h +21 -0
  43. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser.c +1417 -0
  44. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser.h +31 -0
  45. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser_context.c +715 -0
  46. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser_context.h +22 -0
  47. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_sax_parser.c +426 -0
  48. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_sax_parser.h +52 -0
  49. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_schema.c +142 -0
  50. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_schema.h +16 -0
  51. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_tree.c +43 -0
  52. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_tree.h +12 -0
  53. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xinclude.c +20 -0
  54. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xinclude.h +13 -0
  55. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath.c +363 -0
  56. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath.h +24 -0
  57. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath_context.c +125 -0
  58. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath_context.h +24 -0
  59. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer.c +100 -0
  60. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer.h +27 -0
  61. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer_context.c +21 -0
  62. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer_context.h +18 -0
  63. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/sax_parser_callbacks.inc +202 -0
  64. data/test/sample_files/syck-0.55/CHANGELOG +186 -0
  65. data/test/sample_files/syck-0.55/COPYING +54 -0
  66. data/test/sample_files/syck-0.55/Makefile +582 -0
  67. data/test/sample_files/syck-0.55/Makefile.am +5 -0
  68. data/test/sample_files/syck-0.55/Makefile.in +582 -0
  69. data/test/sample_files/syck-0.55/README +105 -0
  70. data/test/sample_files/syck-0.55/README.BYTECODE +484 -0
  71. data/test/sample_files/syck-0.55/README.EXT +444 -0
  72. data/test/sample_files/syck-0.55/RELEASE +123 -0
  73. data/test/sample_files/syck-0.55/TODO +25 -0
  74. data/test/sample_files/syck-0.55/aclocal.m4 +883 -0
  75. data/test/sample_files/syck-0.55/bootstrap +7 -0
  76. data/test/sample_files/syck-0.55/config.h +79 -0
  77. data/test/sample_files/syck-0.55/config.h.in +78 -0
  78. data/test/sample_files/syck-0.55/config.status +1197 -0
  79. data/test/sample_files/syck-0.55/config/README +14 -0
  80. data/test/sample_files/syck-0.55/config/depcomp +529 -0
  81. data/test/sample_files/syck-0.55/config/install-sh +323 -0
  82. data/test/sample_files/syck-0.55/config/missing +357 -0
  83. data/test/sample_files/syck-0.55/configure +6728 -0
  84. data/test/sample_files/syck-0.55/configure.in +36 -0
  85. data/test/sample_files/syck-0.55/ext/ruby/CHANGELOG +303 -0
  86. data/test/sample_files/syck-0.55/ext/ruby/README +400 -0
  87. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/MANIFEST +1 -0
  88. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/bytecode.c +1170 -0
  89. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/emitter.c +1224 -0
  90. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/extconf.rb +10 -0
  91. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/gram.c +1894 -0
  92. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/gram.h +79 -0
  93. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/handler.c +174 -0
  94. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/implicit.c +2989 -0
  95. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/mkrf.log +1 -0
  96. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/node.c +407 -0
  97. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/rubyext.c +2385 -0
  98. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/syck.c +504 -0
  99. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/syck.h +458 -0
  100. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/token.c +2707 -0
  101. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/yaml2byte.c +250 -0
  102. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/yamlbyte.h +170 -0
  103. data/test/sample_files/syck-0.55/ext/ruby/install.rb +1022 -0
  104. data/test/sample_files/syck-0.55/ext/ruby/lib/okay.rb +161 -0
  105. data/test/sample_files/syck-0.55/ext/ruby/lib/okay/news.rb +69 -0
  106. data/test/sample_files/syck-0.55/ext/ruby/lib/okay/rpc.rb +434 -0
  107. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml.rb +436 -0
  108. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/baseemitter.rb +247 -0
  109. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/basenode.rb +216 -0
  110. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/compat.rb +26 -0
  111. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/constants.rb +45 -0
  112. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/dbm.rb +111 -0
  113. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/emitter.rb +107 -0
  114. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/encoding.rb +33 -0
  115. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/error.rb +34 -0
  116. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/rubytypes.rb +438 -0
  117. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/store.rb +29 -0
  118. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/stream.rb +40 -0
  119. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/stringio.rb +83 -0
  120. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/syck.rb +19 -0
  121. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/tag.rb +86 -0
  122. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/types.rb +188 -0
  123. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/yamlnode.rb +54 -0
  124. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/ypath.rb +52 -0
  125. data/test/sample_files/syck-0.55/ext/ruby/lib/yod.rb +1168 -0
  126. data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-modules.rb +27 -0
  127. data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-sample.rb +336 -0
  128. data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-validate.rb +341 -0
  129. data/test/sample_files/syck-0.55/ext/ruby/samples/okayRpc-client.rb +51 -0
  130. data/test/sample_files/syck-0.55/ext/ruby/samples/okayRpc-server.rb +85 -0
  131. data/test/sample_files/syck-0.55/ext/ruby/samples/yaml-sortHashKeys.rb +128 -0
  132. data/test/sample_files/syck-0.55/ext/ruby/tests/basic.rb +1653 -0
  133. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsAnchorAlias.yml +51 -0
  134. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBasicTests.yml +282 -0
  135. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBlockMapping.yml +78 -0
  136. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBlockSequence.yml +0 -0
  137. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsDocumentSeparator.yml +102 -0
  138. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsErrorTests.yml +23 -0
  139. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsFlowCollections.yml +73 -0
  140. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsFoldedScalars.yml +215 -0
  141. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsMapInSeq.yml +0 -0
  142. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsNullsAndEmpties.yml +66 -0
  143. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsRubyTests.yml +182 -0
  144. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsSpecificationExamples.yml +2699 -0
  145. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsTypeTransfers.yml +265 -0
  146. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsYpath.yml +221 -0
  147. data/test/sample_files/syck-0.55/ext/ruby/yts/cookbook.rb +159 -0
  148. data/test/sample_files/syck-0.55/ext/ruby/yts/index.yml +10 -0
  149. data/test/sample_files/syck-0.55/ext/ruby/yts/yts.rb +193 -0
  150. data/test/sample_files/syck-0.55/lib/Makefile +497 -0
  151. data/test/sample_files/syck-0.55/lib/Makefile.am +27 -0
  152. data/test/sample_files/syck-0.55/lib/Makefile.in +497 -0
  153. data/test/sample_files/syck-0.55/lib/bytecode.c +1170 -0
  154. data/test/sample_files/syck-0.55/lib/bytecode.re +525 -0
  155. data/test/sample_files/syck-0.55/lib/emitter.c +1224 -0
  156. data/test/sample_files/syck-0.55/lib/gram.c +1894 -0
  157. data/test/sample_files/syck-0.55/lib/gram.h +79 -0
  158. data/test/sample_files/syck-0.55/lib/gram.output +2005 -0
  159. data/test/sample_files/syck-0.55/lib/gram.y +481 -0
  160. data/test/sample_files/syck-0.55/lib/handler.c +174 -0
  161. data/test/sample_files/syck-0.55/lib/implicit.c +2989 -0
  162. data/test/sample_files/syck-0.55/lib/implicit.re +206 -0
  163. data/test/sample_files/syck-0.55/lib/node.c +407 -0
  164. data/test/sample_files/syck-0.55/lib/syck.c +504 -0
  165. data/test/sample_files/syck-0.55/lib/syck.h +458 -0
  166. data/test/sample_files/syck-0.55/lib/syck_st.c +577 -0
  167. data/test/sample_files/syck-0.55/lib/syck_st.h +46 -0
  168. data/test/sample_files/syck-0.55/lib/token.c +2707 -0
  169. data/test/sample_files/syck-0.55/lib/token.re +1139 -0
  170. data/test/sample_files/syck-0.55/lib/yaml2byte.c +250 -0
  171. data/test/sample_files/syck-0.55/lib/yamlbyte.h +170 -0
  172. data/test/sample_files/syck-0.55/stamp-h1 +1 -0
  173. data/test/sample_files/syck-0.55/tests/Basic.c +141 -0
  174. data/test/sample_files/syck-0.55/tests/CuTest.c +294 -0
  175. data/test/sample_files/syck-0.55/tests/CuTest.h +84 -0
  176. data/test/sample_files/syck-0.55/tests/Emit.c +87 -0
  177. data/test/sample_files/syck-0.55/tests/Makefile +480 -0
  178. data/test/sample_files/syck-0.55/tests/Makefile.am +13 -0
  179. data/test/sample_files/syck-0.55/tests/Makefile.in +480 -0
  180. data/test/sample_files/syck-0.55/tests/Parse.c +208 -0
  181. data/test/sample_files/syck-0.55/tests/YTS.c +2310 -0
  182. data/test/sample_files/syck-0.55/tests/YTS.c.erb +326 -0
  183. data/test/sample_files/syck-0.55/tests/YTS.c.rb +44 -0
  184. data/test/test_availability.rb +68 -0
  185. data/test/test_generator.rb +74 -0
  186. metadata +252 -0
@@ -0,0 +1,529 @@
1
+ #! /bin/sh
2
+ # depcomp - compile a program generating dependencies as side-effects
3
+
4
+ scriptversion=2005-02-09.22
5
+
6
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005 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, write to the Free Software
20
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21
+ # 02111-1307, USA.
22
+
23
+ # As a special exception to the GNU General Public License, if you
24
+ # distribute this file as part of a program that contains a
25
+ # configuration script generated by Autoconf, you may include it under
26
+ # the same distribution terms that you use for the rest of that program.
27
+
28
+ # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
29
+
30
+ case $1 in
31
+ '')
32
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
33
+ exit 1;
34
+ ;;
35
+ -h | --h*)
36
+ cat <<\EOF
37
+ Usage: depcomp [--help] [--version] PROGRAM [ARGS]
38
+
39
+ Run PROGRAMS ARGS to compile a file, generating dependencies
40
+ as side-effects.
41
+
42
+ Environment variables:
43
+ depmode Dependency tracking mode.
44
+ source Source file read by `PROGRAMS ARGS'.
45
+ object Object file output by `PROGRAMS ARGS'.
46
+ DEPDIR directory where to store dependencies.
47
+ depfile Dependency file to output.
48
+ tmpdepfile Temporary file to use when outputing dependencies.
49
+ libtool Whether libtool is used (yes/no).
50
+
51
+ Report bugs to <bug-automake@gnu.org>.
52
+ EOF
53
+ exit $?
54
+ ;;
55
+ -v | --v*)
56
+ echo "depcomp $scriptversion"
57
+ exit $?
58
+ ;;
59
+ esac
60
+
61
+ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
62
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
63
+ exit 1
64
+ fi
65
+
66
+ # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
67
+ depfile=${depfile-`echo "$object" |
68
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
69
+ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
70
+
71
+ rm -f "$tmpdepfile"
72
+
73
+ # Some modes work just like other modes, but use different flags. We
74
+ # parameterize here, but still list the modes in the big case below,
75
+ # to make depend.m4 easier to write. Note that we *cannot* use a case
76
+ # here, because this file can only contain one case statement.
77
+ if test "$depmode" = hp; then
78
+ # HP compiler uses -M and no extra arg.
79
+ gccflag=-M
80
+ depmode=gcc
81
+ fi
82
+
83
+ if test "$depmode" = dashXmstdout; then
84
+ # This is just like dashmstdout with a different argument.
85
+ dashmflag=-xM
86
+ depmode=dashmstdout
87
+ fi
88
+
89
+ case "$depmode" in
90
+ gcc3)
91
+ ## gcc 3 implements dependency tracking that does exactly what
92
+ ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
93
+ ## it if -MD -MP comes after the -MF stuff. Hmm.
94
+ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
95
+ stat=$?
96
+ if test $stat -eq 0; then :
97
+ else
98
+ rm -f "$tmpdepfile"
99
+ exit $stat
100
+ fi
101
+ mv "$tmpdepfile" "$depfile"
102
+ ;;
103
+
104
+ gcc)
105
+ ## There are various ways to get dependency output from gcc. Here's
106
+ ## why we pick this rather obscure method:
107
+ ## - Don't want to use -MD because we'd like the dependencies to end
108
+ ## up in a subdir. Having to rename by hand is ugly.
109
+ ## (We might end up doing this anyway to support other compilers.)
110
+ ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
111
+ ## -MM, not -M (despite what the docs say).
112
+ ## - Using -M directly means running the compiler twice (even worse
113
+ ## than renaming).
114
+ if test -z "$gccflag"; then
115
+ gccflag=-MD,
116
+ fi
117
+ "$@" -Wp,"$gccflag$tmpdepfile"
118
+ stat=$?
119
+ if test $stat -eq 0; then :
120
+ else
121
+ rm -f "$tmpdepfile"
122
+ exit $stat
123
+ fi
124
+ rm -f "$depfile"
125
+ echo "$object : \\" > "$depfile"
126
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
127
+ ## The second -e expression handles DOS-style file names with drive letters.
128
+ sed -e 's/^[^:]*: / /' \
129
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
130
+ ## This next piece of magic avoids the `deleted header file' problem.
131
+ ## The problem is that when a header file which appears in a .P file
132
+ ## is deleted, the dependency causes make to die (because there is
133
+ ## typically no way to rebuild the header). We avoid this by adding
134
+ ## dummy dependencies for each header file. Too bad gcc doesn't do
135
+ ## this for us directly.
136
+ tr ' ' '
137
+ ' < "$tmpdepfile" |
138
+ ## Some versions of gcc put a space before the `:'. On the theory
139
+ ## that the space means something, we add a space to the output as
140
+ ## well.
141
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
142
+ ## correctly. Breaking it into two sed invocations is a workaround.
143
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
144
+ rm -f "$tmpdepfile"
145
+ ;;
146
+
147
+ hp)
148
+ # This case exists only to let depend.m4 do its work. It works by
149
+ # looking at the text of this script. This case will never be run,
150
+ # since it is checked for above.
151
+ exit 1
152
+ ;;
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
+
168
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
169
+ echo "$object : \\" > "$depfile"
170
+
171
+ # Clip off the initial element (the dependent). Don't try to be
172
+ # clever and replace this with sed code, as IRIX sed won't handle
173
+ # lines with more than a fixed number of characters (4096 in
174
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
175
+ # the IRIX cc adds comments like `#:fec' to the end of the
176
+ # dependency line.
177
+ tr ' ' '
178
+ ' < "$tmpdepfile" \
179
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
180
+ tr '
181
+ ' ' ' >> $depfile
182
+ echo >> $depfile
183
+
184
+ # The second pass generates a dummy entry for each header file.
185
+ tr ' ' '
186
+ ' < "$tmpdepfile" \
187
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
188
+ >> $depfile
189
+ else
190
+ # The sourcefile does not contain any dependencies, so just
191
+ # store a dummy comment line, to avoid errors with the Makefile
192
+ # "include basename.Plo" scheme.
193
+ echo "#dummy" > "$depfile"
194
+ fi
195
+ rm -f "$tmpdepfile"
196
+ ;;
197
+
198
+ aix)
199
+ # The C for AIX Compiler uses -M and outputs the dependencies
200
+ # in a .u file. In older versions, this file always lives in the
201
+ # current directory. Also, the AIX compiler puts `$object:' at the
202
+ # start of each line; $object doesn't have directory information.
203
+ # Version 6 uses the directory in both cases.
204
+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
205
+ tmpdepfile="$stripped.u"
206
+ if test "$libtool" = yes; then
207
+ "$@" -Wc,-M
208
+ else
209
+ "$@" -M
210
+ fi
211
+ stat=$?
212
+
213
+ if test -f "$tmpdepfile"; then :
214
+ else
215
+ stripped=`echo "$stripped" | sed 's,^.*/,,'`
216
+ tmpdepfile="$stripped.u"
217
+ fi
218
+
219
+ if test $stat -eq 0; then :
220
+ else
221
+ rm -f "$tmpdepfile"
222
+ exit $stat
223
+ fi
224
+
225
+ if test -f "$tmpdepfile"; then
226
+ outname="$stripped.o"
227
+ # Each line is of the form `foo.o: dependent.h'.
228
+ # Do two passes, one to just change these to
229
+ # `$object: dependent.h' and one to simply `dependent.h:'.
230
+ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
231
+ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
232
+ else
233
+ # The sourcefile does not contain any dependencies, so just
234
+ # store a dummy comment line, to avoid errors with the Makefile
235
+ # "include basename.Plo" scheme.
236
+ echo "#dummy" > "$depfile"
237
+ fi
238
+ rm -f "$tmpdepfile"
239
+ ;;
240
+
241
+ icc)
242
+ # Intel's C compiler understands `-MD -MF file'. However on
243
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
244
+ # ICC 7.0 will fill foo.d with something like
245
+ # foo.o: sub/foo.c
246
+ # foo.o: sub/foo.h
247
+ # which is wrong. We want:
248
+ # sub/foo.o: sub/foo.c
249
+ # sub/foo.o: sub/foo.h
250
+ # sub/foo.c:
251
+ # sub/foo.h:
252
+ # ICC 7.1 will output
253
+ # foo.o: sub/foo.c sub/foo.h
254
+ # and will wrap long lines using \ :
255
+ # foo.o: sub/foo.c ... \
256
+ # sub/foo.h ... \
257
+ # ...
258
+
259
+ "$@" -MD -MF "$tmpdepfile"
260
+ stat=$?
261
+ if test $stat -eq 0; then :
262
+ else
263
+ rm -f "$tmpdepfile"
264
+ exit $stat
265
+ fi
266
+ rm -f "$depfile"
267
+ # Each line is of the form `foo.o: dependent.h',
268
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
269
+ # Do two passes, one to just change these to
270
+ # `$object: dependent.h' and one to simply `dependent.h:'.
271
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
272
+ # Some versions of the HPUX 10.20 sed can't process this invocation
273
+ # correctly. Breaking it into two sed invocations is a workaround.
274
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
275
+ sed -e 's/$/ :/' >> "$depfile"
276
+ rm -f "$tmpdepfile"
277
+ ;;
278
+
279
+ tru64)
280
+ # The Tru64 compiler uses -MD to generate dependencies as a side
281
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
282
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
283
+ # dependencies in `foo.d' instead, so we check for that too.
284
+ # Subdirectories are respected.
285
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
286
+ test "x$dir" = "x$object" && dir=
287
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
288
+
289
+ if test "$libtool" = yes; then
290
+ # With Tru64 cc, shared objects can also be used to make a
291
+ # static library. This mecanism is used in libtool 1.4 series to
292
+ # handle both shared and static libraries in a single compilation.
293
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
294
+ #
295
+ # With libtool 1.5 this exception was removed, and libtool now
296
+ # generates 2 separate objects for the 2 libraries. These two
297
+ # compilations output dependencies in in $dir.libs/$base.o.d and
298
+ # in $dir$base.o.d. We have to check for both files, because
299
+ # one of the two compilations can be disabled. We should prefer
300
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
301
+ # automatically cleaned when .libs/ is deleted, while ignoring
302
+ # the former would cause a distcleancheck panic.
303
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
304
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
305
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
306
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
307
+ "$@" -Wc,-MD
308
+ else
309
+ tmpdepfile1=$dir$base.o.d
310
+ tmpdepfile2=$dir$base.d
311
+ tmpdepfile3=$dir$base.d
312
+ tmpdepfile4=$dir$base.d
313
+ "$@" -MD
314
+ fi
315
+
316
+ stat=$?
317
+ if test $stat -eq 0; then :
318
+ else
319
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
320
+ exit $stat
321
+ fi
322
+
323
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
324
+ do
325
+ test -f "$tmpdepfile" && break
326
+ done
327
+ if test -f "$tmpdepfile"; then
328
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
329
+ # That's a tab and a space in the [].
330
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
331
+ else
332
+ echo "#dummy" > "$depfile"
333
+ fi
334
+ rm -f "$tmpdepfile"
335
+ ;;
336
+
337
+ #nosideeffect)
338
+ # This comment above is used by automake to tell side-effect
339
+ # dependency tracking mechanisms from slower ones.
340
+
341
+ dashmstdout)
342
+ # Important note: in order to support this mode, a compiler *must*
343
+ # always write the preprocessed file to stdout, regardless of -o.
344
+ "$@" || exit $?
345
+
346
+ # Remove the call to Libtool.
347
+ if test "$libtool" = yes; then
348
+ while test $1 != '--mode=compile'; do
349
+ shift
350
+ done
351
+ shift
352
+ fi
353
+
354
+ # Remove `-o $object'.
355
+ IFS=" "
356
+ for arg
357
+ do
358
+ case $arg in
359
+ -o)
360
+ shift
361
+ ;;
362
+ $object)
363
+ shift
364
+ ;;
365
+ *)
366
+ set fnord "$@" "$arg"
367
+ shift # fnord
368
+ shift # $arg
369
+ ;;
370
+ esac
371
+ done
372
+
373
+ test -z "$dashmflag" && dashmflag=-M
374
+ # Require at least two characters before searching for `:'
375
+ # in the target name. This is to cope with DOS-style filenames:
376
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
377
+ "$@" $dashmflag |
378
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
379
+ rm -f "$depfile"
380
+ cat < "$tmpdepfile" > "$depfile"
381
+ tr ' ' '
382
+ ' < "$tmpdepfile" | \
383
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
384
+ ## correctly. Breaking it into two sed invocations is a workaround.
385
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
386
+ rm -f "$tmpdepfile"
387
+ ;;
388
+
389
+ dashXmstdout)
390
+ # This case only exists to satisfy depend.m4. It is never actually
391
+ # run, as this mode is specially recognized in the preamble.
392
+ exit 1
393
+ ;;
394
+
395
+ makedepend)
396
+ "$@" || exit $?
397
+ # Remove any Libtool call
398
+ if test "$libtool" = yes; then
399
+ while test $1 != '--mode=compile'; do
400
+ shift
401
+ done
402
+ shift
403
+ fi
404
+ # X makedepend
405
+ shift
406
+ cleared=no
407
+ for arg in "$@"; do
408
+ case $cleared in
409
+ no)
410
+ set ""; shift
411
+ cleared=yes ;;
412
+ esac
413
+ case "$arg" in
414
+ -D*|-I*)
415
+ set fnord "$@" "$arg"; shift ;;
416
+ # Strip any option that makedepend may not understand. Remove
417
+ # the object too, otherwise makedepend will parse it as a source file.
418
+ -*|$object)
419
+ ;;
420
+ *)
421
+ set fnord "$@" "$arg"; shift ;;
422
+ esac
423
+ done
424
+ obj_suffix="`echo $object | sed 's/^.*\././'`"
425
+ touch "$tmpdepfile"
426
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
427
+ rm -f "$depfile"
428
+ cat < "$tmpdepfile" > "$depfile"
429
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
430
+ ' | \
431
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
432
+ ## correctly. Breaking it into two sed invocations is a workaround.
433
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
434
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
435
+ ;;
436
+
437
+ cpp)
438
+ # Important note: in order to support this mode, a compiler *must*
439
+ # always write the preprocessed file to stdout.
440
+ "$@" || exit $?
441
+
442
+ # Remove the call to Libtool.
443
+ if test "$libtool" = yes; then
444
+ while test $1 != '--mode=compile'; do
445
+ shift
446
+ done
447
+ shift
448
+ fi
449
+
450
+ # Remove `-o $object'.
451
+ IFS=" "
452
+ for arg
453
+ do
454
+ case $arg in
455
+ -o)
456
+ shift
457
+ ;;
458
+ $object)
459
+ shift
460
+ ;;
461
+ *)
462
+ set fnord "$@" "$arg"
463
+ shift # fnord
464
+ shift # $arg
465
+ ;;
466
+ esac
467
+ done
468
+
469
+ "$@" -E |
470
+ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
471
+ sed '$ s: \\$::' > "$tmpdepfile"
472
+ rm -f "$depfile"
473
+ echo "$object : \\" > "$depfile"
474
+ cat < "$tmpdepfile" >> "$depfile"
475
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
476
+ rm -f "$tmpdepfile"
477
+ ;;
478
+
479
+ msvisualcpp)
480
+ # Important note: in order to support this mode, a compiler *must*
481
+ # always write the preprocessed file to stdout, regardless of -o,
482
+ # because we must use -o when running libtool.
483
+ "$@" || exit $?
484
+ IFS=" "
485
+ for arg
486
+ do
487
+ case "$arg" in
488
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
489
+ set fnord "$@"
490
+ shift
491
+ shift
492
+ ;;
493
+ *)
494
+ set fnord "$@" "$arg"
495
+ shift
496
+ shift
497
+ ;;
498
+ esac
499
+ done
500
+ "$@" -E |
501
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
502
+ rm -f "$depfile"
503
+ echo "$object : \\" > "$depfile"
504
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
505
+ echo " " >> "$depfile"
506
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
507
+ rm -f "$tmpdepfile"
508
+ ;;
509
+
510
+ none)
511
+ exec "$@"
512
+ ;;
513
+
514
+ *)
515
+ echo "Unknown depmode $depmode" 1>&2
516
+ exit 1
517
+ ;;
518
+ esac
519
+
520
+ exit 0
521
+
522
+ # Local Variables:
523
+ # mode: shell-script
524
+ # sh-indentation: 2
525
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
526
+ # time-stamp-start: "scriptversion="
527
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
528
+ # time-stamp-end: "$"
529
+ # End: