gtl-parsley-ruby 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (299) hide show
  1. data/CHANGELOG +3 -0
  2. data/README +32 -0
  3. data/Rakefile +57 -0
  4. data/VERSION +1 -0
  5. data/ext/cparsley.c +152 -0
  6. data/ext/extconf.rb +82 -0
  7. data/ext/parsley/.gitignore +32 -0
  8. data/ext/parsley/AUTHORS +1 -0
  9. data/ext/parsley/ChangeLog +0 -0
  10. data/ext/parsley/HACKING +4 -0
  11. data/ext/parsley/INSTALL +73 -0
  12. data/ext/parsley/INTRO +84 -0
  13. data/ext/parsley/Makefile.am +80 -0
  14. data/ext/parsley/Makefile.in +1009 -0
  15. data/ext/parsley/NEWS +0 -0
  16. data/ext/parsley/PAPER +36 -0
  17. data/ext/parsley/Portfile +18 -0
  18. data/ext/parsley/Portfile.in +17 -0
  19. data/ext/parsley/README.C-LANG +92 -0
  20. data/ext/parsley/README.markdown +1 -0
  21. data/ext/parsley/TODO +39 -0
  22. data/ext/parsley/VERSION +1 -0
  23. data/ext/parsley/aclocal.m4 +8918 -0
  24. data/ext/parsley/bootstrap.sh +6 -0
  25. data/ext/parsley/config.guess +1561 -0
  26. data/ext/parsley/config.sub +1686 -0
  27. data/ext/parsley/configure +13437 -0
  28. data/ext/parsley/configure.ac +46 -0
  29. data/ext/parsley/depcomp +630 -0
  30. data/ext/parsley/functions.c +368 -0
  31. data/ext/parsley/functions.h +19 -0
  32. data/ext/parsley/generate_bisect.sh +12 -0
  33. data/ext/parsley/hooks/prepare-commit-msg +16 -0
  34. data/ext/parsley/install-sh +520 -0
  35. data/ext/parsley/json-c-0.9/AUTHORS +2 -0
  36. data/ext/parsley/json-c-0.9/COPYING +19 -0
  37. data/ext/parsley/json-c-0.9/ChangeLog +103 -0
  38. data/ext/parsley/json-c-0.9/INSTALL +302 -0
  39. data/ext/parsley/json-c-0.9/Makefile.am +43 -0
  40. data/ext/parsley/json-c-0.9/Makefile.in +800 -0
  41. data/ext/parsley/json-c-0.9/NEWS +1 -0
  42. data/ext/parsley/json-c-0.9/README +20 -0
  43. data/ext/parsley/json-c-0.9/README-WIN32.html +57 -0
  44. data/ext/parsley/json-c-0.9/README.html +32 -0
  45. data/ext/parsley/json-c-0.9/aclocal.m4 +8909 -0
  46. data/ext/parsley/json-c-0.9/arraylist.c +94 -0
  47. data/ext/parsley/json-c-0.9/arraylist.h +53 -0
  48. data/ext/parsley/json-c-0.9/bits.h +27 -0
  49. data/ext/parsley/json-c-0.9/config.guess +1561 -0
  50. data/ext/parsley/json-c-0.9/config.h +125 -0
  51. data/ext/parsley/json-c-0.9/config.h.in +124 -0
  52. data/ext/parsley/json-c-0.9/config.h.win32 +94 -0
  53. data/ext/parsley/json-c-0.9/config.sub +1686 -0
  54. data/ext/parsley/json-c-0.9/configure +13084 -0
  55. data/ext/parsley/json-c-0.9/configure.in +33 -0
  56. data/ext/parsley/json-c-0.9/debug.c +98 -0
  57. data/ext/parsley/json-c-0.9/debug.h +50 -0
  58. data/ext/parsley/json-c-0.9/depcomp +630 -0
  59. data/ext/parsley/json-c-0.9/doc/html/annotated.html +40 -0
  60. data/ext/parsley/json-c-0.9/doc/html/arraylist_8h.html +240 -0
  61. data/ext/parsley/json-c-0.9/doc/html/bits_8h.html +150 -0
  62. data/ext/parsley/json-c-0.9/doc/html/classes.html +36 -0
  63. data/ext/parsley/json-c-0.9/doc/html/config_8h.html +612 -0
  64. data/ext/parsley/json-c-0.9/doc/html/debug_8h.html +392 -0
  65. data/ext/parsley/json-c-0.9/doc/html/doxygen.css +441 -0
  66. data/ext/parsley/json-c-0.9/doc/html/doxygen.png +0 -0
  67. data/ext/parsley/json-c-0.9/doc/html/files.html +42 -0
  68. data/ext/parsley/json-c-0.9/doc/html/functions.html +206 -0
  69. data/ext/parsley/json-c-0.9/doc/html/functions_vars.html +206 -0
  70. data/ext/parsley/json-c-0.9/doc/html/globals.html +459 -0
  71. data/ext/parsley/json-c-0.9/doc/html/globals_defs.html +202 -0
  72. data/ext/parsley/json-c-0.9/doc/html/globals_enum.html +50 -0
  73. data/ext/parsley/json-c-0.9/doc/html/globals_eval.html +135 -0
  74. data/ext/parsley/json-c-0.9/doc/html/globals_func.html +194 -0
  75. data/ext/parsley/json-c-0.9/doc/html/globals_type.html +70 -0
  76. data/ext/parsley/json-c-0.9/doc/html/globals_vars.html +50 -0
  77. data/ext/parsley/json-c-0.9/doc/html/index.html +25 -0
  78. data/ext/parsley/json-c-0.9/doc/html/json_8h.html +32 -0
  79. data/ext/parsley/json-c-0.9/doc/html/json__object_8h.html +1150 -0
  80. data/ext/parsley/json-c-0.9/doc/html/json__object__private_8h.html +75 -0
  81. data/ext/parsley/json-c-0.9/doc/html/json__tokener_8h.html +366 -0
  82. data/ext/parsley/json-c-0.9/doc/html/json__util_8h.html +106 -0
  83. data/ext/parsley/json-c-0.9/doc/html/linkhash_8h.html +740 -0
  84. data/ext/parsley/json-c-0.9/doc/html/printbuf_8h.html +214 -0
  85. data/ext/parsley/json-c-0.9/doc/html/structarray__list.html +104 -0
  86. data/ext/parsley/json-c-0.9/doc/html/structjson__object.html +141 -0
  87. data/ext/parsley/json-c-0.9/doc/html/structjson__object__iter.html +87 -0
  88. data/ext/parsley/json-c-0.9/doc/html/structjson__tokener.html +206 -0
  89. data/ext/parsley/json-c-0.9/doc/html/structjson__tokener__srec.html +104 -0
  90. data/ext/parsley/json-c-0.9/doc/html/structlh__entry.html +105 -0
  91. data/ext/parsley/json-c-0.9/doc/html/structlh__table.html +275 -0
  92. data/ext/parsley/json-c-0.9/doc/html/structprintbuf.html +87 -0
  93. data/ext/parsley/json-c-0.9/doc/html/tab_b.gif +0 -0
  94. data/ext/parsley/json-c-0.9/doc/html/tab_l.gif +0 -0
  95. data/ext/parsley/json-c-0.9/doc/html/tab_r.gif +0 -0
  96. data/ext/parsley/json-c-0.9/doc/html/tabs.css +105 -0
  97. data/ext/parsley/json-c-0.9/doc/html/unionjson__object_1_1data.html +140 -0
  98. data/ext/parsley/json-c-0.9/install-sh +520 -0
  99. data/ext/parsley/json-c-0.9/json.h +31 -0
  100. data/ext/parsley/json-c-0.9/json.pc +11 -0
  101. data/ext/parsley/json-c-0.9/json.pc.in +11 -0
  102. data/ext/parsley/json-c-0.9/json_object.c +512 -0
  103. data/ext/parsley/json-c-0.9/json_object.h +319 -0
  104. data/ext/parsley/json-c-0.9/json_object_private.h +52 -0
  105. data/ext/parsley/json-c-0.9/json_tokener.c +628 -0
  106. data/ext/parsley/json-c-0.9/json_tokener.h +98 -0
  107. data/ext/parsley/json-c-0.9/json_util.c +122 -0
  108. data/ext/parsley/json-c-0.9/json_util.h +31 -0
  109. data/ext/parsley/json-c-0.9/libjson.la +41 -0
  110. data/ext/parsley/json-c-0.9/libtool +8890 -0
  111. data/ext/parsley/json-c-0.9/linkhash.c +216 -0
  112. data/ext/parsley/json-c-0.9/linkhash.h +272 -0
  113. data/ext/parsley/json-c-0.9/ltmain.sh +8406 -0
  114. data/ext/parsley/json-c-0.9/missing +376 -0
  115. data/ext/parsley/json-c-0.9/printbuf.c +149 -0
  116. data/ext/parsley/json-c-0.9/printbuf.h +64 -0
  117. data/ext/parsley/json-c-0.9/stamp-h1 +1 -0
  118. data/ext/parsley/json-c-0.9/test1 +130 -0
  119. data/ext/parsley/json-c-0.9/test1.c +164 -0
  120. data/ext/parsley/json-c-0.9/test2 +130 -0
  121. data/ext/parsley/json-c-0.9/test2.c +20 -0
  122. data/ext/parsley/json-c-0.9/test3 +130 -0
  123. data/ext/parsley/json-c-0.9/test3.c +23 -0
  124. data/ext/parsley/libtool +8890 -0
  125. data/ext/parsley/ltmain.sh +8406 -0
  126. data/ext/parsley/missing +376 -0
  127. data/ext/parsley/parsed_xpath.c +168 -0
  128. data/ext/parsley/parsed_xpath.h +34 -0
  129. data/ext/parsley/parser.y +631 -0
  130. data/ext/parsley/parsley.c +793 -0
  131. data/ext/parsley/parsley.h +87 -0
  132. data/ext/parsley/parsley_main.c +185 -0
  133. data/ext/parsley/parsleyc_main.c +108 -0
  134. data/ext/parsley/regexp.c +359 -0
  135. data/ext/parsley/regexp.h +36 -0
  136. data/ext/parsley/scanner.l +221 -0
  137. data/ext/parsley/test/ambiguous.html +207 -0
  138. data/ext/parsley/test/ambiguous.json +1 -0
  139. data/ext/parsley/test/ambiguous.let +6 -0
  140. data/ext/parsley/test/array-regression.html +5 -0
  141. data/ext/parsley/test/array-regression.json +1 -0
  142. data/ext/parsley/test/array-regression.let +10 -0
  143. data/ext/parsley/test/backslash.html +5 -0
  144. data/ext/parsley/test/backslash.json +1 -0
  145. data/ext/parsley/test/backslash.let +3 -0
  146. data/ext/parsley/test/bang.html +17 -0
  147. data/ext/parsley/test/bang.json +1 -0
  148. data/ext/parsley/test/bang.let +6 -0
  149. data/ext/parsley/test/collate_regression.html +324 -0
  150. data/ext/parsley/test/collate_regression.json +1 -0
  151. data/ext/parsley/test/collate_regression.let +9 -0
  152. data/ext/parsley/test/contains.html +3 -0
  153. data/ext/parsley/test/contains.json +1 -0
  154. data/ext/parsley/test/contains.let +3 -0
  155. data/ext/parsley/test/content.html +13 -0
  156. data/ext/parsley/test/content.json +1 -0
  157. data/ext/parsley/test/content.let +7 -0
  158. data/ext/parsley/test/cool.html +575 -0
  159. data/ext/parsley/test/cool.json +1 -0
  160. data/ext/parsley/test/cool.let +9 -0
  161. data/ext/parsley/test/craigs-simple.html +207 -0
  162. data/ext/parsley/test/craigs-simple.json +1 -0
  163. data/ext/parsley/test/craigs-simple.let +6 -0
  164. data/ext/parsley/test/craigs.html +207 -0
  165. data/ext/parsley/test/craigs.json +1 -0
  166. data/ext/parsley/test/craigs.let +9 -0
  167. data/ext/parsley/test/crash.html +157 -0
  168. data/ext/parsley/test/crash.json +1 -0
  169. data/ext/parsley/test/crash.let +1 -0
  170. data/ext/parsley/test/css_attr.html +3 -0
  171. data/ext/parsley/test/css_attr.json +1 -0
  172. data/ext/parsley/test/css_attr.let +3 -0
  173. data/ext/parsley/test/default-namespace.json +1 -0
  174. data/ext/parsley/test/default-namespace.let +3 -0
  175. data/ext/parsley/test/default-namespace.xml +1493 -0
  176. data/ext/parsley/test/div.html +8 -0
  177. data/ext/parsley/test/div.json +1 -0
  178. data/ext/parsley/test/div.let +10 -0
  179. data/ext/parsley/test/empty.html +3 -0
  180. data/ext/parsley/test/empty.json +1 -0
  181. data/ext/parsley/test/empty.let +1 -0
  182. data/ext/parsley/test/emptyish.html +207 -0
  183. data/ext/parsley/test/emptyish.let +3 -0
  184. data/ext/parsley/test/fictional-opt.html +43 -0
  185. data/ext/parsley/test/fictional-opt.json +1 -0
  186. data/ext/parsley/test/fictional-opt.let +14 -0
  187. data/ext/parsley/test/fictional.html +43 -0
  188. data/ext/parsley/test/fictional.json +1 -0
  189. data/ext/parsley/test/fictional.let +14 -0
  190. data/ext/parsley/test/function-magic.html +9 -0
  191. data/ext/parsley/test/function-magic.json +1 -0
  192. data/ext/parsley/test/function-magic.let +8 -0
  193. data/ext/parsley/test/hn.html +32 -0
  194. data/ext/parsley/test/hn.json +1 -0
  195. data/ext/parsley/test/hn.let +8 -0
  196. data/ext/parsley/test/malformed-array.html +2329 -0
  197. data/ext/parsley/test/malformed-array.json +1 -0
  198. data/ext/parsley/test/malformed-array.let +22 -0
  199. data/ext/parsley/test/malformed-expr.html +2329 -0
  200. data/ext/parsley/test/malformed-expr.json +1 -0
  201. data/ext/parsley/test/malformed-expr.let +16 -0
  202. data/ext/parsley/test/malformed-function.html +845 -0
  203. data/ext/parsley/test/malformed-function.json +197 -0
  204. data/ext/parsley/test/malformed-function.let +8 -0
  205. data/ext/parsley/test/malformed-json.html +2329 -0
  206. data/ext/parsley/test/malformed-json.json +1 -0
  207. data/ext/parsley/test/malformed-json.let +6 -0
  208. data/ext/parsley/test/malformed-xpath.html +8 -0
  209. data/ext/parsley/test/malformed-xpath.json +1 -0
  210. data/ext/parsley/test/malformed-xpath.let +7 -0
  211. data/ext/parsley/test/match.json +1 -0
  212. data/ext/parsley/test/match.let +9 -0
  213. data/ext/parsley/test/match.xml +11 -0
  214. data/ext/parsley/test/math_ambiguity.html +9 -0
  215. data/ext/parsley/test/math_ambiguity.json +1 -0
  216. data/ext/parsley/test/math_ambiguity.let +5 -0
  217. data/ext/parsley/test/nth-regression.html +13 -0
  218. data/ext/parsley/test/nth-regression.json +1 -0
  219. data/ext/parsley/test/nth-regression.let +3 -0
  220. data/ext/parsley/test/optional.html +2328 -0
  221. data/ext/parsley/test/optional.json +1 -0
  222. data/ext/parsley/test/optional.let +8 -0
  223. data/ext/parsley/test/outer-xml.html +6 -0
  224. data/ext/parsley/test/outer-xml.json +1 -0
  225. data/ext/parsley/test/outer-xml.let +5 -0
  226. data/ext/parsley/test/position.html +8 -0
  227. data/ext/parsley/test/position.json +1 -0
  228. data/ext/parsley/test/position.let +6 -0
  229. data/ext/parsley/test/question_regressions.html +443 -0
  230. data/ext/parsley/test/question_regressions.json +1 -0
  231. data/ext/parsley/test/question_regressions.let +6 -0
  232. data/ext/parsley/test/quote.json +1 -0
  233. data/ext/parsley/test/quote.let +8 -0
  234. data/ext/parsley/test/quote.xml +11 -0
  235. data/ext/parsley/test/reddit.html +1 -0
  236. data/ext/parsley/test/reddit.json +1 -0
  237. data/ext/parsley/test/reddit.let +12 -0
  238. data/ext/parsley/test/remote-fail.json +1 -0
  239. data/ext/parsley/test/remote.html +3 -0
  240. data/ext/parsley/test/remote.json +1 -0
  241. data/ext/parsley/test/remote.let +4 -0
  242. data/ext/parsley/test/replace.json +1 -0
  243. data/ext/parsley/test/replace.let +9 -0
  244. data/ext/parsley/test/replace.xml +11 -0
  245. data/ext/parsley/test/scope.html +10 -0
  246. data/ext/parsley/test/scope.json +1 -0
  247. data/ext/parsley/test/scope.let +6 -0
  248. data/ext/parsley/test/segfault.html +5 -0
  249. data/ext/parsley/test/segfault.json +1 -0
  250. data/ext/parsley/test/segfault.let +9 -0
  251. data/ext/parsley/test/sg-wrap.html +5 -0
  252. data/ext/parsley/test/sg-wrap.json +1 -0
  253. data/ext/parsley/test/sg-wrap.let +3 -0
  254. data/ext/parsley/test/sg_off.html +5 -0
  255. data/ext/parsley/test/sg_off.json +1 -0
  256. data/ext/parsley/test/sg_off.let +3 -0
  257. data/ext/parsley/test/test.json +1 -0
  258. data/ext/parsley/test/test.let +6 -0
  259. data/ext/parsley/test/test.xml +11 -0
  260. data/ext/parsley/test/trivial.html +2329 -0
  261. data/ext/parsley/test/trivial.json +1 -0
  262. data/ext/parsley/test/trivial.let +4 -0
  263. data/ext/parsley/test/trivial2.html +2329 -0
  264. data/ext/parsley/test/trivial2.json +1 -0
  265. data/ext/parsley/test/trivial2.let +7 -0
  266. data/ext/parsley/test/unbang.html +17 -0
  267. data/ext/parsley/test/unbang.json +1 -0
  268. data/ext/parsley/test/unbang.let +6 -0
  269. data/ext/parsley/test/unicode.html +3 -0
  270. data/ext/parsley/test/unicode.json +1 -0
  271. data/ext/parsley/test/unicode.let +1 -0
  272. data/ext/parsley/test/whitespace.html +8 -0
  273. data/ext/parsley/test/whitespace.json +1 -0
  274. data/ext/parsley/test/whitespace.let +3 -0
  275. data/ext/parsley/test/whitespace_regression.html +4 -0
  276. data/ext/parsley/test/whitespace_regression.json +1 -0
  277. data/ext/parsley/test/whitespace_regression.let +3 -0
  278. data/ext/parsley/test/yelp-benchmark.rb +53 -0
  279. data/ext/parsley/test/yelp-home.html +1004 -0
  280. data/ext/parsley/test/yelp-home.json +1 -0
  281. data/ext/parsley/test/yelp-home.let +6 -0
  282. data/ext/parsley/test/yelp.html +2329 -0
  283. data/ext/parsley/test/yelp.json +1 -0
  284. data/ext/parsley/test/yelp.let +12 -0
  285. data/ext/parsley/test/youtube.html +1940 -0
  286. data/ext/parsley/test/youtube.let +11 -0
  287. data/ext/parsley/util.c +237 -0
  288. data/ext/parsley/util.h +34 -0
  289. data/ext/parsley/xml2json.c +47 -0
  290. data/ext/parsley/xml2json.h +14 -0
  291. data/ext/parsley/y.tab.h +222 -0
  292. data/ext/parsley/ylwrap +222 -0
  293. data/lib/parsley.rb +84 -0
  294. data/test/test_parsley.rb +120 -0
  295. data/test/yelp-benchmark.rb +53 -0
  296. data/test/yelp-home.html +1004 -0
  297. data/test/yelp-home.let +6 -0
  298. data/test/yelp.html +2329 -0
  299. metadata +366 -0
@@ -0,0 +1,33 @@
1
+ AC_PREREQ(2.52)
2
+
3
+ # Process this file with autoconf to produce a configure script.
4
+ AC_INIT([json-c], 0.9, [michael@metaparadigm.com])
5
+
6
+ AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
7
+
8
+ # Checks for programs.
9
+
10
+ # Checks for libraries.
11
+
12
+ # Checks for header files.
13
+ AM_CONFIG_HEADER(config.h)
14
+ AC_HEADER_STDC
15
+ AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/param.h] stdarg.h)
16
+
17
+ # Checks for typedefs, structures, and compiler characteristics.
18
+ AC_C_CONST
19
+ AC_TYPE_SIZE_T
20
+
21
+ # Checks for library functions.
22
+ AC_FUNC_VPRINTF
23
+ AC_FUNC_MEMCMP
24
+ AC_FUNC_MALLOC
25
+ AC_FUNC_REALLOC
26
+ AC_CHECK_FUNCS(strndup strerror vsnprintf vasprintf open vsyslog strncasecmp)
27
+
28
+ AM_PROG_LIBTOOL
29
+
30
+ AC_OUTPUT([
31
+ Makefile
32
+ json.pc
33
+ ])
@@ -0,0 +1,98 @@
1
+ /*
2
+ * $Id: debug.c,v 1.5 2006/01/26 02:16:28 mclark Exp $
3
+ *
4
+ * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
5
+ * Michael Clark <michael@metaparadigm.com>
6
+ *
7
+ * This library is free software; you can redistribute it and/or modify
8
+ * it under the terms of the MIT license. See COPYING for details.
9
+ *
10
+ */
11
+
12
+ #include "config.h"
13
+
14
+ #include <stdio.h>
15
+ #include <stdlib.h>
16
+ #include <string.h>
17
+ #include <stdarg.h>
18
+
19
+ #if HAVE_SYSLOG_H
20
+ # include <syslog.h>
21
+ #endif /* HAVE_SYSLOG_H */
22
+
23
+ #if HAVE_UNISTD_H
24
+ # include <unistd.h>
25
+ #endif /* HAVE_UNISTD_H */
26
+
27
+ #if HAVE_SYS_PARAM_H
28
+ #include <sys/param.h>
29
+ #endif /* HAVE_SYS_PARAM_H */
30
+
31
+ #include "debug.h"
32
+
33
+ static int _syslog = 0;
34
+ static int _debug = 0;
35
+
36
+ void mc_set_debug(int debug) { _debug = debug; }
37
+ int mc_get_debug(void) { return _debug; }
38
+
39
+ extern void mc_set_syslog(int syslog)
40
+ {
41
+ _syslog = syslog;
42
+ }
43
+
44
+ void mc_abort(const char *msg, ...)
45
+ {
46
+ va_list ap;
47
+ va_start(ap, msg);
48
+ #if HAVE_VSYSLOG
49
+ if(_syslog) {
50
+ vsyslog(LOG_ERR, msg, ap);
51
+ } else
52
+ #endif
53
+ vprintf(msg, ap);
54
+ va_end(ap);
55
+ exit(1);
56
+ }
57
+
58
+
59
+ void mc_debug(const char *msg, ...)
60
+ {
61
+ va_list ap;
62
+ if(_debug) {
63
+ va_start(ap, msg);
64
+ #if HAVE_VSYSLOG
65
+ if(_syslog) {
66
+ vsyslog(LOG_DEBUG, msg, ap);
67
+ } else
68
+ #endif
69
+ vprintf(msg, ap);
70
+ va_end(ap);
71
+ }
72
+ }
73
+
74
+ void mc_error(const char *msg, ...)
75
+ {
76
+ va_list ap;
77
+ va_start(ap, msg);
78
+ #if HAVE_VSYSLOG
79
+ if(_syslog) {
80
+ vsyslog(LOG_ERR, msg, ap);
81
+ } else
82
+ #endif
83
+ vfprintf(stderr, msg, ap);
84
+ va_end(ap);
85
+ }
86
+
87
+ void mc_info(const char *msg, ...)
88
+ {
89
+ va_list ap;
90
+ va_start(ap, msg);
91
+ #if HAVE_VSYSLOG
92
+ if(_syslog) {
93
+ vsyslog(LOG_INFO, msg, ap);
94
+ } else
95
+ #endif
96
+ vfprintf(stderr, msg, ap);
97
+ va_end(ap);
98
+ }
@@ -0,0 +1,50 @@
1
+ /*
2
+ * $Id: debug.h,v 1.5 2006/01/30 23:07:57 mclark Exp $
3
+ *
4
+ * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
5
+ * Michael Clark <michael@metaparadigm.com>
6
+ *
7
+ * This library is free software; you can redistribute it and/or modify
8
+ * it under the terms of the MIT license. See COPYING for details.
9
+ *
10
+ */
11
+
12
+ #ifndef _DEBUG_H_
13
+ #define _DEBUG_H_
14
+
15
+ #ifdef __cplusplus
16
+ extern "C" {
17
+ #endif
18
+
19
+ extern void mc_set_debug(int debug);
20
+ extern int mc_get_debug(void);
21
+
22
+ extern void mc_set_syslog(int syslog);
23
+ extern void mc_abort(const char *msg, ...);
24
+ extern void mc_debug(const char *msg, ...);
25
+ extern void mc_error(const char *msg, ...);
26
+ extern void mc_info(const char *msg, ...);
27
+
28
+ #ifdef MC_MAINTAINER_MODE
29
+ #define MC_SET_DEBUG(x) mc_set_debug(x)
30
+ #define MC_GET_DEBUG() mc_get_debug()
31
+ #define MC_SET_SYSLOG(x) mc_set_syslog(x)
32
+ #define MC_ABORT(x, ...) mc_abort(x, ##__VA_ARGS__)
33
+ #define MC_DEBUG(x, ...) mc_debug(x, ##__VA_ARGS__)
34
+ #define MC_ERROR(x, ...) mc_error(x, ##__VA_ARGS__)
35
+ #define MC_INFO(x, ...) mc_info(x, ##__VA_ARGS__)
36
+ #else
37
+ #define MC_SET_DEBUG(x) if (0) mc_set_debug(x)
38
+ #define MC_GET_DEBUG() (0)
39
+ #define MC_SET_SYSLOG(x) if (0) mc_set_syslog(x)
40
+ #define MC_ABORT(x, ...) if (0) mc_abort(x, ##__VA_ARGS__)
41
+ #define MC_DEBUG(x, ...) if (0) mc_debug(x, ##__VA_ARGS__)
42
+ #define MC_ERROR(x, ...) if (0) mc_error(x, ##__VA_ARGS__)
43
+ #define MC_INFO(x, ...) if (0) mc_info(x, ##__VA_ARGS__)
44
+ #endif
45
+
46
+ #ifdef __cplusplus
47
+ }
48
+ #endif
49
+
50
+ #endif
@@ -0,0 +1,630 @@
1
+ #! /bin/sh
2
+ # depcomp - compile a program generating dependencies as side-effects
3
+
4
+ scriptversion=2009-04-28.21; # UTC
5
+
6
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
7
+ # Software Foundation, Inc.
8
+
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, see <http://www.gnu.org/licenses/>.
21
+
22
+ # As a special exception to the GNU General Public License, if you
23
+ # distribute this file as part of a program that contains a
24
+ # configuration script generated by Autoconf, you may include it under
25
+ # the same distribution terms that you use for the rest of that program.
26
+
27
+ # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
28
+
29
+ case $1 in
30
+ '')
31
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
32
+ exit 1;
33
+ ;;
34
+ -h | --h*)
35
+ cat <<\EOF
36
+ Usage: depcomp [--help] [--version] PROGRAM [ARGS]
37
+
38
+ Run PROGRAMS ARGS to compile a file, generating dependencies
39
+ as side-effects.
40
+
41
+ Environment variables:
42
+ depmode Dependency tracking mode.
43
+ source Source file read by `PROGRAMS ARGS'.
44
+ object Object file output by `PROGRAMS ARGS'.
45
+ DEPDIR directory where to store dependencies.
46
+ depfile Dependency file to output.
47
+ tmpdepfile Temporary file to use when outputing dependencies.
48
+ libtool Whether libtool is used (yes/no).
49
+
50
+ Report bugs to <bug-automake@gnu.org>.
51
+ EOF
52
+ exit $?
53
+ ;;
54
+ -v | --v*)
55
+ echo "depcomp $scriptversion"
56
+ exit $?
57
+ ;;
58
+ esac
59
+
60
+ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
61
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
62
+ exit 1
63
+ fi
64
+
65
+ # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
66
+ depfile=${depfile-`echo "$object" |
67
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
68
+ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
69
+
70
+ rm -f "$tmpdepfile"
71
+
72
+ # Some modes work just like other modes, but use different flags. We
73
+ # parameterize here, but still list the modes in the big case below,
74
+ # to make depend.m4 easier to write. Note that we *cannot* use a case
75
+ # here, because this file can only contain one case statement.
76
+ if test "$depmode" = hp; then
77
+ # HP compiler uses -M and no extra arg.
78
+ gccflag=-M
79
+ depmode=gcc
80
+ fi
81
+
82
+ if test "$depmode" = dashXmstdout; then
83
+ # This is just like dashmstdout with a different argument.
84
+ dashmflag=-xM
85
+ depmode=dashmstdout
86
+ fi
87
+
88
+ cygpath_u="cygpath -u -f -"
89
+ if test "$depmode" = msvcmsys; then
90
+ # This is just like msvisualcpp but w/o cygpath translation.
91
+ # Just convert the backslash-escaped backslashes to single forward
92
+ # slashes to satisfy depend.m4
93
+ cygpath_u="sed s,\\\\\\\\,/,g"
94
+ depmode=msvisualcpp
95
+ fi
96
+
97
+ case "$depmode" in
98
+ gcc3)
99
+ ## gcc 3 implements dependency tracking that does exactly what
100
+ ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
101
+ ## it if -MD -MP comes after the -MF stuff. Hmm.
102
+ ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
103
+ ## the command line argument order; so add the flags where they
104
+ ## appear in depend2.am. Note that the slowdown incurred here
105
+ ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
106
+ for arg
107
+ do
108
+ case $arg in
109
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
110
+ *) set fnord "$@" "$arg" ;;
111
+ esac
112
+ shift # fnord
113
+ shift # $arg
114
+ done
115
+ "$@"
116
+ stat=$?
117
+ if test $stat -eq 0; then :
118
+ else
119
+ rm -f "$tmpdepfile"
120
+ exit $stat
121
+ fi
122
+ mv "$tmpdepfile" "$depfile"
123
+ ;;
124
+
125
+ gcc)
126
+ ## There are various ways to get dependency output from gcc. Here's
127
+ ## why we pick this rather obscure method:
128
+ ## - Don't want to use -MD because we'd like the dependencies to end
129
+ ## up in a subdir. Having to rename by hand is ugly.
130
+ ## (We might end up doing this anyway to support other compilers.)
131
+ ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
132
+ ## -MM, not -M (despite what the docs say).
133
+ ## - Using -M directly means running the compiler twice (even worse
134
+ ## than renaming).
135
+ if test -z "$gccflag"; then
136
+ gccflag=-MD,
137
+ fi
138
+ "$@" -Wp,"$gccflag$tmpdepfile"
139
+ stat=$?
140
+ if test $stat -eq 0; then :
141
+ else
142
+ rm -f "$tmpdepfile"
143
+ exit $stat
144
+ fi
145
+ rm -f "$depfile"
146
+ echo "$object : \\" > "$depfile"
147
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
148
+ ## The second -e expression handles DOS-style file names with drive letters.
149
+ sed -e 's/^[^:]*: / /' \
150
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
151
+ ## This next piece of magic avoids the `deleted header file' problem.
152
+ ## The problem is that when a header file which appears in a .P file
153
+ ## is deleted, the dependency causes make to die (because there is
154
+ ## typically no way to rebuild the header). We avoid this by adding
155
+ ## dummy dependencies for each header file. Too bad gcc doesn't do
156
+ ## this for us directly.
157
+ tr ' ' '
158
+ ' < "$tmpdepfile" |
159
+ ## Some versions of gcc put a space before the `:'. On the theory
160
+ ## that the space means something, we add a space to the output as
161
+ ## well.
162
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
163
+ ## correctly. Breaking it into two sed invocations is a workaround.
164
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
165
+ rm -f "$tmpdepfile"
166
+ ;;
167
+
168
+ hp)
169
+ # This case exists only to let depend.m4 do its work. It works by
170
+ # looking at the text of this script. This case will never be run,
171
+ # since it is checked for above.
172
+ exit 1
173
+ ;;
174
+
175
+ sgi)
176
+ if test "$libtool" = yes; then
177
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
178
+ else
179
+ "$@" -MDupdate "$tmpdepfile"
180
+ fi
181
+ stat=$?
182
+ if test $stat -eq 0; then :
183
+ else
184
+ rm -f "$tmpdepfile"
185
+ exit $stat
186
+ fi
187
+ rm -f "$depfile"
188
+
189
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
190
+ echo "$object : \\" > "$depfile"
191
+
192
+ # Clip off the initial element (the dependent). Don't try to be
193
+ # clever and replace this with sed code, as IRIX sed won't handle
194
+ # lines with more than a fixed number of characters (4096 in
195
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
196
+ # the IRIX cc adds comments like `#:fec' to the end of the
197
+ # dependency line.
198
+ tr ' ' '
199
+ ' < "$tmpdepfile" \
200
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
201
+ tr '
202
+ ' ' ' >> "$depfile"
203
+ echo >> "$depfile"
204
+
205
+ # The second pass generates a dummy entry for each header file.
206
+ tr ' ' '
207
+ ' < "$tmpdepfile" \
208
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
209
+ >> "$depfile"
210
+ else
211
+ # The sourcefile does not contain any dependencies, so just
212
+ # store a dummy comment line, to avoid errors with the Makefile
213
+ # "include basename.Plo" scheme.
214
+ echo "#dummy" > "$depfile"
215
+ fi
216
+ rm -f "$tmpdepfile"
217
+ ;;
218
+
219
+ aix)
220
+ # The C for AIX Compiler uses -M and outputs the dependencies
221
+ # in a .u file. In older versions, this file always lives in the
222
+ # current directory. Also, the AIX compiler puts `$object:' at the
223
+ # start of each line; $object doesn't have directory information.
224
+ # Version 6 uses the directory in both cases.
225
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
226
+ test "x$dir" = "x$object" && dir=
227
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
228
+ if test "$libtool" = yes; then
229
+ tmpdepfile1=$dir$base.u
230
+ tmpdepfile2=$base.u
231
+ tmpdepfile3=$dir.libs/$base.u
232
+ "$@" -Wc,-M
233
+ else
234
+ tmpdepfile1=$dir$base.u
235
+ tmpdepfile2=$dir$base.u
236
+ tmpdepfile3=$dir$base.u
237
+ "$@" -M
238
+ fi
239
+ stat=$?
240
+
241
+ if test $stat -eq 0; then :
242
+ else
243
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
244
+ exit $stat
245
+ fi
246
+
247
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
248
+ do
249
+ test -f "$tmpdepfile" && break
250
+ done
251
+ if test -f "$tmpdepfile"; then
252
+ # Each line is of the form `foo.o: dependent.h'.
253
+ # Do two passes, one to just change these to
254
+ # `$object: dependent.h' and one to simply `dependent.h:'.
255
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
256
+ # That's a tab and a space in the [].
257
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
258
+ else
259
+ # The sourcefile does not contain any dependencies, so just
260
+ # store a dummy comment line, to avoid errors with the Makefile
261
+ # "include basename.Plo" scheme.
262
+ echo "#dummy" > "$depfile"
263
+ fi
264
+ rm -f "$tmpdepfile"
265
+ ;;
266
+
267
+ icc)
268
+ # Intel's C compiler understands `-MD -MF file'. However on
269
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
270
+ # ICC 7.0 will fill foo.d with something like
271
+ # foo.o: sub/foo.c
272
+ # foo.o: sub/foo.h
273
+ # which is wrong. We want:
274
+ # sub/foo.o: sub/foo.c
275
+ # sub/foo.o: sub/foo.h
276
+ # sub/foo.c:
277
+ # sub/foo.h:
278
+ # ICC 7.1 will output
279
+ # foo.o: sub/foo.c sub/foo.h
280
+ # and will wrap long lines using \ :
281
+ # foo.o: sub/foo.c ... \
282
+ # sub/foo.h ... \
283
+ # ...
284
+
285
+ "$@" -MD -MF "$tmpdepfile"
286
+ stat=$?
287
+ if test $stat -eq 0; then :
288
+ else
289
+ rm -f "$tmpdepfile"
290
+ exit $stat
291
+ fi
292
+ rm -f "$depfile"
293
+ # Each line is of the form `foo.o: dependent.h',
294
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
295
+ # Do two passes, one to just change these to
296
+ # `$object: dependent.h' and one to simply `dependent.h:'.
297
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
298
+ # Some versions of the HPUX 10.20 sed can't process this invocation
299
+ # correctly. Breaking it into two sed invocations is a workaround.
300
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
301
+ sed -e 's/$/ :/' >> "$depfile"
302
+ rm -f "$tmpdepfile"
303
+ ;;
304
+
305
+ hp2)
306
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
307
+ # compilers, which have integrated preprocessors. The correct option
308
+ # to use with these is +Maked; it writes dependencies to a file named
309
+ # 'foo.d', which lands next to the object file, wherever that
310
+ # happens to be.
311
+ # Much of this is similar to the tru64 case; see comments there.
312
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
313
+ test "x$dir" = "x$object" && dir=
314
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
315
+ if test "$libtool" = yes; then
316
+ tmpdepfile1=$dir$base.d
317
+ tmpdepfile2=$dir.libs/$base.d
318
+ "$@" -Wc,+Maked
319
+ else
320
+ tmpdepfile1=$dir$base.d
321
+ tmpdepfile2=$dir$base.d
322
+ "$@" +Maked
323
+ fi
324
+ stat=$?
325
+ if test $stat -eq 0; then :
326
+ else
327
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
328
+ exit $stat
329
+ fi
330
+
331
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
332
+ do
333
+ test -f "$tmpdepfile" && break
334
+ done
335
+ if test -f "$tmpdepfile"; then
336
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
337
+ # Add `dependent.h:' lines.
338
+ sed -ne '2,${
339
+ s/^ *//
340
+ s/ \\*$//
341
+ s/$/:/
342
+ p
343
+ }' "$tmpdepfile" >> "$depfile"
344
+ else
345
+ echo "#dummy" > "$depfile"
346
+ fi
347
+ rm -f "$tmpdepfile" "$tmpdepfile2"
348
+ ;;
349
+
350
+ tru64)
351
+ # The Tru64 compiler uses -MD to generate dependencies as a side
352
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
353
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
354
+ # dependencies in `foo.d' instead, so we check for that too.
355
+ # Subdirectories are respected.
356
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
357
+ test "x$dir" = "x$object" && dir=
358
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
359
+
360
+ if test "$libtool" = yes; then
361
+ # With Tru64 cc, shared objects can also be used to make a
362
+ # static library. This mechanism is used in libtool 1.4 series to
363
+ # handle both shared and static libraries in a single compilation.
364
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
365
+ #
366
+ # With libtool 1.5 this exception was removed, and libtool now
367
+ # generates 2 separate objects for the 2 libraries. These two
368
+ # compilations output dependencies in $dir.libs/$base.o.d and
369
+ # in $dir$base.o.d. We have to check for both files, because
370
+ # one of the two compilations can be disabled. We should prefer
371
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
372
+ # automatically cleaned when .libs/ is deleted, while ignoring
373
+ # the former would cause a distcleancheck panic.
374
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
375
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
376
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
377
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
378
+ "$@" -Wc,-MD
379
+ else
380
+ tmpdepfile1=$dir$base.o.d
381
+ tmpdepfile2=$dir$base.d
382
+ tmpdepfile3=$dir$base.d
383
+ tmpdepfile4=$dir$base.d
384
+ "$@" -MD
385
+ fi
386
+
387
+ stat=$?
388
+ if test $stat -eq 0; then :
389
+ else
390
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
391
+ exit $stat
392
+ fi
393
+
394
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
395
+ do
396
+ test -f "$tmpdepfile" && break
397
+ done
398
+ if test -f "$tmpdepfile"; then
399
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
400
+ # That's a tab and a space in the [].
401
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
402
+ else
403
+ echo "#dummy" > "$depfile"
404
+ fi
405
+ rm -f "$tmpdepfile"
406
+ ;;
407
+
408
+ #nosideeffect)
409
+ # This comment above is used by automake to tell side-effect
410
+ # dependency tracking mechanisms from slower ones.
411
+
412
+ dashmstdout)
413
+ # Important note: in order to support this mode, a compiler *must*
414
+ # always write the preprocessed file to stdout, regardless of -o.
415
+ "$@" || exit $?
416
+
417
+ # Remove the call to Libtool.
418
+ if test "$libtool" = yes; then
419
+ while test "X$1" != 'X--mode=compile'; do
420
+ shift
421
+ done
422
+ shift
423
+ fi
424
+
425
+ # Remove `-o $object'.
426
+ IFS=" "
427
+ for arg
428
+ do
429
+ case $arg in
430
+ -o)
431
+ shift
432
+ ;;
433
+ $object)
434
+ shift
435
+ ;;
436
+ *)
437
+ set fnord "$@" "$arg"
438
+ shift # fnord
439
+ shift # $arg
440
+ ;;
441
+ esac
442
+ done
443
+
444
+ test -z "$dashmflag" && dashmflag=-M
445
+ # Require at least two characters before searching for `:'
446
+ # in the target name. This is to cope with DOS-style filenames:
447
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
448
+ "$@" $dashmflag |
449
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
450
+ rm -f "$depfile"
451
+ cat < "$tmpdepfile" > "$depfile"
452
+ tr ' ' '
453
+ ' < "$tmpdepfile" | \
454
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
455
+ ## correctly. Breaking it into two sed invocations is a workaround.
456
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
457
+ rm -f "$tmpdepfile"
458
+ ;;
459
+
460
+ dashXmstdout)
461
+ # This case only exists to satisfy depend.m4. It is never actually
462
+ # run, as this mode is specially recognized in the preamble.
463
+ exit 1
464
+ ;;
465
+
466
+ makedepend)
467
+ "$@" || exit $?
468
+ # Remove any Libtool call
469
+ if test "$libtool" = yes; then
470
+ while test "X$1" != 'X--mode=compile'; do
471
+ shift
472
+ done
473
+ shift
474
+ fi
475
+ # X makedepend
476
+ shift
477
+ cleared=no eat=no
478
+ for arg
479
+ do
480
+ case $cleared in
481
+ no)
482
+ set ""; shift
483
+ cleared=yes ;;
484
+ esac
485
+ if test $eat = yes; then
486
+ eat=no
487
+ continue
488
+ fi
489
+ case "$arg" in
490
+ -D*|-I*)
491
+ set fnord "$@" "$arg"; shift ;;
492
+ # Strip any option that makedepend may not understand. Remove
493
+ # the object too, otherwise makedepend will parse it as a source file.
494
+ -arch)
495
+ eat=yes ;;
496
+ -*|$object)
497
+ ;;
498
+ *)
499
+ set fnord "$@" "$arg"; shift ;;
500
+ esac
501
+ done
502
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
503
+ touch "$tmpdepfile"
504
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
505
+ rm -f "$depfile"
506
+ cat < "$tmpdepfile" > "$depfile"
507
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
508
+ ' | \
509
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
510
+ ## correctly. Breaking it into two sed invocations is a workaround.
511
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
512
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
513
+ ;;
514
+
515
+ cpp)
516
+ # Important note: in order to support this mode, a compiler *must*
517
+ # always write the preprocessed file to stdout.
518
+ "$@" || exit $?
519
+
520
+ # Remove the call to Libtool.
521
+ if test "$libtool" = yes; then
522
+ while test "X$1" != 'X--mode=compile'; do
523
+ shift
524
+ done
525
+ shift
526
+ fi
527
+
528
+ # Remove `-o $object'.
529
+ IFS=" "
530
+ for arg
531
+ do
532
+ case $arg in
533
+ -o)
534
+ shift
535
+ ;;
536
+ $object)
537
+ shift
538
+ ;;
539
+ *)
540
+ set fnord "$@" "$arg"
541
+ shift # fnord
542
+ shift # $arg
543
+ ;;
544
+ esac
545
+ done
546
+
547
+ "$@" -E |
548
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
549
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
550
+ sed '$ s: \\$::' > "$tmpdepfile"
551
+ rm -f "$depfile"
552
+ echo "$object : \\" > "$depfile"
553
+ cat < "$tmpdepfile" >> "$depfile"
554
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
555
+ rm -f "$tmpdepfile"
556
+ ;;
557
+
558
+ msvisualcpp)
559
+ # Important note: in order to support this mode, a compiler *must*
560
+ # always write the preprocessed file to stdout.
561
+ "$@" || exit $?
562
+
563
+ # Remove the call to Libtool.
564
+ if test "$libtool" = yes; then
565
+ while test "X$1" != 'X--mode=compile'; do
566
+ shift
567
+ done
568
+ shift
569
+ fi
570
+
571
+ IFS=" "
572
+ for arg
573
+ do
574
+ case "$arg" in
575
+ -o)
576
+ shift
577
+ ;;
578
+ $object)
579
+ shift
580
+ ;;
581
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
582
+ set fnord "$@"
583
+ shift
584
+ shift
585
+ ;;
586
+ *)
587
+ set fnord "$@" "$arg"
588
+ shift
589
+ shift
590
+ ;;
591
+ esac
592
+ done
593
+ "$@" -E 2>/dev/null |
594
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
595
+ rm -f "$depfile"
596
+ echo "$object : \\" > "$depfile"
597
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
598
+ echo " " >> "$depfile"
599
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
600
+ rm -f "$tmpdepfile"
601
+ ;;
602
+
603
+ msvcmsys)
604
+ # This case exists only to let depend.m4 do its work. It works by
605
+ # looking at the text of this script. This case will never be run,
606
+ # since it is checked for above.
607
+ exit 1
608
+ ;;
609
+
610
+ none)
611
+ exec "$@"
612
+ ;;
613
+
614
+ *)
615
+ echo "Unknown depmode $depmode" 1>&2
616
+ exit 1
617
+ ;;
618
+ esac
619
+
620
+ exit 0
621
+
622
+ # Local Variables:
623
+ # mode: shell-script
624
+ # sh-indentation: 2
625
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
626
+ # time-stamp-start: "scriptversion="
627
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
628
+ # time-stamp-time-zone: "UTC"
629
+ # time-stamp-end: "; # UTC"
630
+ # End: