johnson 1.2.0 → 2.0.0.pre0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (782) hide show
  1. data/CHANGELOG.rdoc +8 -0
  2. data/Manifest.txt +762 -48
  3. data/README.rdoc +2 -1
  4. data/Rakefile +90 -18
  5. data/ext/spidermonkey/conversions.c +9 -2
  6. data/ext/spidermonkey/ruby_land_proxy.c +1 -1
  7. data/ext/spidermonkey/runtime.h +1 -1
  8. data/ext/tracemonkey/context.cc +125 -0
  9. data/ext/tracemonkey/context.h +19 -0
  10. data/ext/tracemonkey/conversions.cc +365 -0
  11. data/ext/tracemonkey/conversions.h +32 -0
  12. data/ext/tracemonkey/debugger.cc +234 -0
  13. data/ext/tracemonkey/debugger.h +10 -0
  14. data/ext/tracemonkey/extconf.rb +37 -0
  15. data/ext/tracemonkey/extensions.cc +37 -0
  16. data/ext/tracemonkey/extensions.h +12 -0
  17. data/ext/tracemonkey/global.cc +40 -0
  18. data/ext/tracemonkey/global.h +11 -0
  19. data/ext/tracemonkey/idhash.cc +16 -0
  20. data/ext/tracemonkey/idhash.h +8 -0
  21. data/ext/tracemonkey/immutable_node.cc +1199 -0
  22. data/ext/tracemonkey/immutable_node.cc.erb +559 -0
  23. data/ext/tracemonkey/immutable_node.h +22 -0
  24. data/ext/tracemonkey/jroot.h +215 -0
  25. data/ext/tracemonkey/js_land_proxy.cc +620 -0
  26. data/ext/tracemonkey/js_land_proxy.h +20 -0
  27. data/ext/tracemonkey/ruby_land_proxy.cc +618 -0
  28. data/ext/tracemonkey/ruby_land_proxy.h +38 -0
  29. data/ext/tracemonkey/runtime.cc +454 -0
  30. data/ext/tracemonkey/runtime.h +27 -0
  31. data/ext/tracemonkey/split_global.cc +392 -0
  32. data/ext/tracemonkey/split_global.h +11 -0
  33. data/ext/tracemonkey/tracemonkey.cc +23 -0
  34. data/ext/tracemonkey/tracemonkey.h +32 -0
  35. data/lib/johnson.rb +12 -4
  36. data/lib/johnson/error.rb +5 -0
  37. data/lib/johnson/js/prelude.js +16 -1
  38. data/lib/johnson/parser.rb +2 -1
  39. data/lib/johnson/runtime.rb +87 -26
  40. data/lib/johnson/spidermonkey/runtime.rb +7 -16
  41. data/lib/johnson/tracemonkey.rb +13 -0
  42. data/lib/johnson/tracemonkey/context.rb +10 -0
  43. data/lib/johnson/tracemonkey/debugger.rb +67 -0
  44. data/lib/johnson/tracemonkey/immutable_node.rb +282 -0
  45. data/lib/johnson/tracemonkey/js_land_proxy.rb +64 -0
  46. data/lib/johnson/tracemonkey/mutable_tree_visitor.rb +242 -0
  47. data/lib/johnson/tracemonkey/ruby_land_proxy.rb +17 -0
  48. data/lib/johnson/tracemonkey/runtime.rb +80 -0
  49. data/test/{johnson_test.rb → generic/johnson_test.rb} +1 -1
  50. data/test/{parser_test.rb → generic/parser_test.rb} +1 -1
  51. data/test/helper.rb +23 -4
  52. data/test/johnson/{browser_test.rb → generic/browser_test.rb} +1 -1
  53. data/test/johnson/{conversions → generic/conversions}/array_test.rb +1 -1
  54. data/test/johnson/{conversions → generic/conversions}/boolean_test.rb +1 -1
  55. data/test/johnson/{conversions → generic/conversions}/callable_test.rb +1 -1
  56. data/test/johnson/{conversions → generic/conversions}/file_test.rb +1 -1
  57. data/test/johnson/generic/conversions/helper.rb +1 -0
  58. data/test/johnson/{conversions → generic/conversions}/nil_test.rb +1 -1
  59. data/test/johnson/{conversions → generic/conversions}/number_test.rb +1 -1
  60. data/test/johnson/{conversions → generic/conversions}/regexp_test.rb +1 -1
  61. data/test/johnson/{conversions → generic/conversions}/string_test.rb +1 -1
  62. data/test/johnson/{conversions → generic/conversions}/struct_test.rb +1 -1
  63. data/test/johnson/{conversions → generic/conversions}/symbol_test.rb +1 -1
  64. data/test/johnson/{conversions → generic/conversions}/thread_test.rb +1 -1
  65. data/test/johnson/{custom_conversions_test.rb → generic/custom_conversions_test.rb} +1 -1
  66. data/test/johnson/generic/default_test.rb +12 -0
  67. data/test/johnson/{error_test.rb → generic/error_test.rb} +1 -1
  68. data/test/johnson/{extensions_test.rb → generic/extensions_test.rb} +1 -1
  69. data/test/johnson/generic/helper.rb +1 -0
  70. data/test/johnson/{nodes → generic/nodes}/array_literal_test.rb +1 -1
  71. data/test/johnson/{nodes → generic/nodes}/array_node_test.rb +1 -1
  72. data/test/johnson/{nodes → generic/nodes}/binary_node_test.rb +1 -1
  73. data/test/johnson/{nodes → generic/nodes}/bracket_access_test.rb +1 -1
  74. data/test/johnson/{nodes → generic/nodes}/delete_test.rb +1 -1
  75. data/test/johnson/{nodes → generic/nodes}/do_while_test.rb +1 -1
  76. data/test/johnson/{nodes → generic/nodes}/dot_accessor_test.rb +1 -1
  77. data/test/johnson/generic/nodes/export_test.rb +11 -0
  78. data/test/johnson/{nodes → generic/nodes}/for_test.rb +1 -1
  79. data/test/johnson/{nodes → generic/nodes}/function_test.rb +1 -1
  80. data/test/johnson/generic/nodes/helper.rb +1 -0
  81. data/test/johnson/{nodes → generic/nodes}/if_test.rb +16 -6
  82. data/test/johnson/generic/nodes/import_test.rb +15 -0
  83. data/test/johnson/{nodes → generic/nodes}/label_test.rb +1 -1
  84. data/test/johnson/{nodes → generic/nodes}/let_test.rb +1 -1
  85. data/test/johnson/{nodes → generic/nodes}/object_literal_test.rb +1 -1
  86. data/test/johnson/{nodes → generic/nodes}/return_test.rb +1 -1
  87. data/test/johnson/{nodes → generic/nodes}/semi_test.rb +1 -1
  88. data/test/johnson/{nodes → generic/nodes}/switch_test.rb +1 -1
  89. data/test/johnson/{nodes → generic/nodes}/ternary_test.rb +1 -1
  90. data/test/johnson/{nodes → generic/nodes}/throw_test.rb +1 -1
  91. data/test/johnson/{nodes → generic/nodes}/try_node_test.rb +36 -6
  92. data/test/johnson/{nodes → generic/nodes}/typeof_test.rb +1 -1
  93. data/test/johnson/{nodes → generic/nodes}/unary_node_test.rb +1 -1
  94. data/test/johnson/{nodes → generic/nodes}/void_test.rb +1 -1
  95. data/test/johnson/{nodes → generic/nodes}/while_test.rb +1 -1
  96. data/test/johnson/{nodes → generic/nodes}/with_test.rb +1 -1
  97. data/test/johnson/{prelude_test.rb → generic/prelude_test.rb} +1 -1
  98. data/test/johnson/{runtime_test.rb → generic/runtime_test.rb} +3 -6
  99. data/test/johnson/generic/version_test.rb +13 -0
  100. data/test/johnson/{visitors → generic/visitors}/dot_visitor_test.rb +1 -1
  101. data/test/johnson/{visitors → generic/visitors}/enumerating_visitor_test.rb +1 -1
  102. data/test/johnson/generic/visitors/helper.rb +1 -0
  103. data/test/johnson/spidermonkey/js_land_proxy_test.rb +1 -5
  104. data/test/johnson/spidermonkey/ruby_land_proxy_test.rb +11 -7
  105. data/test/johnson/tracemonkey/context_test.rb +21 -0
  106. data/test/johnson/tracemonkey/immutable_node_test.rb +34 -0
  107. data/test/johnson/tracemonkey/js_land_proxy_test.rb +273 -0
  108. data/test/johnson/tracemonkey/ruby_land_proxy_test.rb +274 -0
  109. data/test/johnson/tracemonkey/runtime_test.rb +41 -0
  110. data/test/johnson/tracemonkey/split_global_test.rb +32 -0
  111. data/vendor/spidermonkey/js.pkg +2 -0
  112. data/vendor/tracemonkey/Makefile.in +668 -0
  113. data/vendor/tracemonkey/Makefile.ref +483 -0
  114. data/vendor/tracemonkey/README.html +54 -0
  115. data/vendor/tracemonkey/SpiderMonkey.rsp +11 -0
  116. data/vendor/tracemonkey/Y.js +19 -0
  117. data/vendor/tracemonkey/aclocal.m4 +9 -0
  118. data/vendor/tracemonkey/bench.sh +5 -0
  119. data/vendor/tracemonkey/build/autoconf/acoutput-fast.pl +202 -0
  120. data/vendor/tracemonkey/build/autoconf/altoptions.m4 +154 -0
  121. data/vendor/tracemonkey/build/autoconf/config.guess +1537 -0
  122. data/vendor/tracemonkey/build/autoconf/config.sub +1595 -0
  123. data/vendor/tracemonkey/build/autoconf/install-sh +119 -0
  124. data/vendor/tracemonkey/build/autoconf/make-makefile +315 -0
  125. data/vendor/tracemonkey/build/autoconf/match-dir.sh +101 -0
  126. data/vendor/tracemonkey/build/autoconf/moznbytetype.m4 +136 -0
  127. data/vendor/tracemonkey/build/autoconf/nspr.m4 +82 -0
  128. data/vendor/tracemonkey/build/autoconf/pkg.m4 +59 -0
  129. data/vendor/tracemonkey/build/autoconf/update-makefile.sh +118 -0
  130. data/vendor/tracemonkey/build/cygwin-wrapper +75 -0
  131. data/vendor/tracemonkey/build/hcc +111 -0
  132. data/vendor/tracemonkey/build/hcpp +155 -0
  133. data/vendor/tracemonkey/build/unix/mddepend.pl +165 -0
  134. data/vendor/tracemonkey/build/unix/uniq.pl +63 -0
  135. data/vendor/tracemonkey/build/win32/pgomerge.py +40 -0
  136. data/vendor/tracemonkey/builtins.tbl +91 -0
  137. data/vendor/tracemonkey/call.js +13 -0
  138. data/vendor/tracemonkey/config.mk +206 -0
  139. data/vendor/tracemonkey/config/Makefile.in +106 -0
  140. data/vendor/tracemonkey/config/Moz/Milestone.pm +232 -0
  141. data/vendor/tracemonkey/config/autoconf.mk.in +362 -0
  142. data/vendor/tracemonkey/config/check-sync-dirs.py +103 -0
  143. data/vendor/tracemonkey/config/check-sync-exceptions +7 -0
  144. data/vendor/tracemonkey/config/config.mk +881 -0
  145. data/vendor/tracemonkey/config/fastcwd.pl +66 -0
  146. data/vendor/tracemonkey/config/gcc_hidden.h +2 -0
  147. data/vendor/tracemonkey/config/insure.mk +53 -0
  148. data/vendor/tracemonkey/config/make-system-wrappers.pl +59 -0
  149. data/vendor/tracemonkey/config/milestone.pl +112 -0
  150. data/vendor/tracemonkey/config/milestone.txt +13 -0
  151. data/vendor/tracemonkey/config/mkdepend/Makefile.in +84 -0
  152. data/vendor/tracemonkey/config/mkdepend/cppsetup.c +233 -0
  153. data/vendor/tracemonkey/config/mkdepend/def.h +184 -0
  154. data/vendor/tracemonkey/config/mkdepend/ifparser.c +551 -0
  155. data/vendor/tracemonkey/config/mkdepend/ifparser.h +83 -0
  156. data/vendor/tracemonkey/config/mkdepend/imakemdep.h +733 -0
  157. data/vendor/tracemonkey/config/mkdepend/include.c +337 -0
  158. data/vendor/tracemonkey/config/mkdepend/main.c +860 -0
  159. data/vendor/tracemonkey/config/mkdepend/mkdepend.man +382 -0
  160. data/vendor/tracemonkey/config/mkdepend/parse.c +686 -0
  161. data/vendor/tracemonkey/config/mkdepend/pr.c +124 -0
  162. data/vendor/tracemonkey/config/nfspwd.pl +50 -0
  163. data/vendor/tracemonkey/config/nsinstall.c +481 -0
  164. data/vendor/tracemonkey/config/nsinstall.py +155 -0
  165. data/vendor/tracemonkey/config/pathsub.c +247 -0
  166. data/vendor/tracemonkey/config/pathsub.h +74 -0
  167. data/vendor/tracemonkey/config/preprocessor.pl +671 -0
  168. data/vendor/tracemonkey/config/revdepth-nt.pl +48 -0
  169. data/vendor/tracemonkey/config/revdepth.pl +51 -0
  170. data/vendor/tracemonkey/config/rules.mk +2310 -0
  171. data/vendor/tracemonkey/config/static-checking-config.mk +21 -0
  172. data/vendor/tracemonkey/config/static-checking.js +92 -0
  173. data/vendor/tracemonkey/config/string-format.js +61 -0
  174. data/vendor/tracemonkey/config/system-headers +1035 -0
  175. data/vendor/tracemonkey/config/version.mk +85 -0
  176. data/vendor/tracemonkey/config/version_win.pl +442 -0
  177. data/vendor/tracemonkey/configure +14183 -0
  178. data/vendor/tracemonkey/configure.in +5363 -0
  179. data/vendor/tracemonkey/correct.sh +23 -0
  180. data/vendor/tracemonkey/correct/check-3d-morph.js +55 -0
  181. data/vendor/tracemonkey/correct/check-3d-raytrace.js +445 -0
  182. data/vendor/tracemonkey/correct/check-access-binary-trees.js +52 -0
  183. data/vendor/tracemonkey/correct/check-access-fannkuch.js +66 -0
  184. data/vendor/tracemonkey/correct/check-access-nbody.js +171 -0
  185. data/vendor/tracemonkey/correct/check-access-nsieve.js +40 -0
  186. data/vendor/tracemonkey/correct/check-bitops-3bit-bits-in-byte.js +35 -0
  187. data/vendor/tracemonkey/correct/check-bitops-bits-in-byte.js +24 -0
  188. data/vendor/tracemonkey/correct/check-bitops-bitwise-and.js +29 -0
  189. data/vendor/tracemonkey/correct/check-bitops-nsieve-bits.js +40 -0
  190. data/vendor/tracemonkey/correct/check-controlflow-recursive.js +27 -0
  191. data/vendor/tracemonkey/correct/check-date-format-tofte.js +302 -0
  192. data/vendor/tracemonkey/correct/check-date-format-xparb.js +421 -0
  193. data/vendor/tracemonkey/correct/check-mont.js +119 -0
  194. data/vendor/tracemonkey/dtoa.c +3335 -0
  195. data/vendor/tracemonkey/editline/Makefile.in +55 -0
  196. data/vendor/tracemonkey/editline/Makefile.ref +143 -0
  197. data/vendor/tracemonkey/editline/README +83 -0
  198. data/vendor/tracemonkey/editline/editline.3 +175 -0
  199. data/vendor/tracemonkey/editline/editline.c +1371 -0
  200. data/vendor/tracemonkey/editline/editline.h +135 -0
  201. data/vendor/tracemonkey/editline/sysunix.c +182 -0
  202. data/vendor/tracemonkey/editline/unix.h +82 -0
  203. data/vendor/tracemonkey/if.js +13 -0
  204. data/vendor/tracemonkey/imacro_asm.js.in +396 -0
  205. data/vendor/tracemonkey/imacros.c.out +1034 -0
  206. data/vendor/tracemonkey/imacros.jsasm +770 -0
  207. data/vendor/tracemonkey/javascript-trace.d +73 -0
  208. data/vendor/tracemonkey/jitstats.tbl +55 -0
  209. data/vendor/tracemonkey/js-config.h.in +82 -0
  210. data/vendor/tracemonkey/js-config.in +111 -0
  211. data/vendor/tracemonkey/js.mdp +0 -0
  212. data/vendor/tracemonkey/js.msg +312 -0
  213. data/vendor/tracemonkey/js3240.rc +79 -0
  214. data/vendor/tracemonkey/jsOS240.def +654 -0
  215. data/vendor/tracemonkey/jsapi.cpp +6005 -0
  216. data/vendor/tracemonkey/jsapi.h +2727 -0
  217. data/vendor/tracemonkey/jsarena.cpp +450 -0
  218. data/vendor/tracemonkey/jsarena.h +318 -0
  219. data/vendor/tracemonkey/jsarray.cpp +3664 -0
  220. data/vendor/tracemonkey/jsarray.h +238 -0
  221. data/vendor/tracemonkey/jsatom.cpp +1244 -0
  222. data/vendor/tracemonkey/jsatom.h +493 -0
  223. data/vendor/tracemonkey/jsbit.h +249 -0
  224. data/vendor/tracemonkey/jsbool.cpp +184 -0
  225. data/vendor/tracemonkey/jsbool.h +88 -0
  226. data/vendor/tracemonkey/jsbuiltins.cpp +415 -0
  227. data/vendor/tracemonkey/jsbuiltins.h +456 -0
  228. data/vendor/tracemonkey/jsclist.h +139 -0
  229. data/vendor/tracemonkey/jscntxt.cpp +1816 -0
  230. data/vendor/tracemonkey/jscntxt.h +1541 -0
  231. data/vendor/tracemonkey/jscompat.h +57 -0
  232. data/vendor/tracemonkey/jsconfig.mk +181 -0
  233. data/vendor/tracemonkey/jscpucfg.cpp +194 -0
  234. data/vendor/tracemonkey/jscpucfg.h +91 -0
  235. data/vendor/tracemonkey/jsdate.cpp +2465 -0
  236. data/vendor/tracemonkey/jsdate.h +129 -0
  237. data/vendor/tracemonkey/jsdbgapi.cpp +2017 -0
  238. data/vendor/tracemonkey/jsdbgapi.h +500 -0
  239. data/vendor/tracemonkey/jsdhash.cpp +876 -0
  240. data/vendor/tracemonkey/jsdhash.h +588 -0
  241. data/vendor/tracemonkey/jsdtoa.cpp +572 -0
  242. data/vendor/tracemonkey/jsdtoa.h +131 -0
  243. data/vendor/tracemonkey/jsdtracef.c +318 -0
  244. data/vendor/tracemonkey/jsdtracef.h +81 -0
  245. data/vendor/tracemonkey/jsemit.cpp +7292 -0
  246. data/vendor/tracemonkey/jsemit.h +802 -0
  247. data/vendor/tracemonkey/jsexn.cpp +1337 -0
  248. data/vendor/tracemonkey/jsexn.h +96 -0
  249. data/vendor/tracemonkey/jsfile.cpp +2747 -0
  250. data/vendor/tracemonkey/jsfile.h +56 -0
  251. data/vendor/tracemonkey/jsfile.msg +90 -0
  252. data/vendor/tracemonkey/jsfun.cpp +3089 -0
  253. data/vendor/tracemonkey/jsfun.h +366 -0
  254. data/vendor/tracemonkey/jsgc.cpp +3816 -0
  255. data/vendor/tracemonkey/jsgc.h +429 -0
  256. data/vendor/tracemonkey/jshash.cpp +477 -0
  257. data/vendor/tracemonkey/jshash.h +151 -0
  258. data/vendor/tracemonkey/jsify.pl +483 -0
  259. data/vendor/tracemonkey/jsinterp.cpp +7441 -0
  260. data/vendor/tracemonkey/jsinterp.h +666 -0
  261. data/vendor/tracemonkey/jsinvoke.cpp +42 -0
  262. data/vendor/tracemonkey/jsiter.cpp +1040 -0
  263. data/vendor/tracemonkey/jsiter.h +140 -0
  264. data/vendor/tracemonkey/jskeyword.tbl +124 -0
  265. data/vendor/tracemonkey/jskwgen.cpp +460 -0
  266. data/vendor/tracemonkey/jslibmath.h +69 -0
  267. data/vendor/tracemonkey/jslock.cpp +1512 -0
  268. data/vendor/tracemonkey/jslock.h +325 -0
  269. data/vendor/tracemonkey/jslocko.asm +60 -0
  270. data/vendor/tracemonkey/jslog2.cpp +111 -0
  271. data/vendor/tracemonkey/jslong.h +167 -0
  272. data/vendor/tracemonkey/jsmath.cpp +806 -0
  273. data/vendor/tracemonkey/jsmath.h +63 -0
  274. data/vendor/tracemonkey/jsnum.cpp +1374 -0
  275. data/vendor/tracemonkey/jsnum.h +280 -0
  276. data/vendor/tracemonkey/jsobj.cpp +6165 -0
  277. data/vendor/tracemonkey/jsobj.h +870 -0
  278. data/vendor/tracemonkey/json.cpp +1338 -0
  279. data/vendor/tracemonkey/json.h +108 -0
  280. data/vendor/tracemonkey/jsopcode.cpp +5484 -0
  281. data/vendor/tracemonkey/jsopcode.h +434 -0
  282. data/vendor/tracemonkey/jsopcode.tbl +591 -0
  283. data/vendor/tracemonkey/jsoplengen.cpp +121 -0
  284. data/vendor/tracemonkey/jsotypes.h +202 -0
  285. data/vendor/tracemonkey/jsparse.cpp +9257 -0
  286. data/vendor/tracemonkey/jsparse.h +900 -0
  287. data/vendor/tracemonkey/jsprf.cpp +1262 -0
  288. data/vendor/tracemonkey/jsprf.h +150 -0
  289. data/vendor/tracemonkey/jsproto.tbl +117 -0
  290. data/vendor/tracemonkey/jsprvtd.h +366 -0
  291. data/vendor/tracemonkey/jspubtd.h +585 -0
  292. data/vendor/tracemonkey/jsregexp.cpp +5051 -0
  293. data/vendor/tracemonkey/jsregexp.h +199 -0
  294. data/vendor/tracemonkey/jsreops.tbl +145 -0
  295. data/vendor/tracemonkey/jsscan.cpp +2040 -0
  296. data/vendor/tracemonkey/jsscan.h +467 -0
  297. data/vendor/tracemonkey/jsscope.cpp +1966 -0
  298. data/vendor/tracemonkey/jsscope.h +487 -0
  299. data/vendor/tracemonkey/jsscript.cpp +1932 -0
  300. data/vendor/tracemonkey/jsscript.h +345 -0
  301. data/vendor/tracemonkey/jsshell.msg +54 -0
  302. data/vendor/tracemonkey/jsstack.js +167 -0
  303. data/vendor/tracemonkey/jsstaticcheck.h +69 -0
  304. data/vendor/tracemonkey/jsstddef.h +87 -0
  305. data/vendor/tracemonkey/jsstdint.h +96 -0
  306. data/vendor/tracemonkey/jsstr.cpp +5277 -0
  307. data/vendor/tracemonkey/jsstr.h +702 -0
  308. data/vendor/tracemonkey/jstracer.cpp +10991 -0
  309. data/vendor/tracemonkey/jstracer.h +794 -0
  310. data/vendor/tracemonkey/jstypes.h +481 -0
  311. data/vendor/tracemonkey/jsutil.cpp +361 -0
  312. data/vendor/tracemonkey/jsutil.h +178 -0
  313. data/vendor/tracemonkey/jsversion.h +243 -0
  314. data/vendor/tracemonkey/jswince.asm +44 -0
  315. data/vendor/tracemonkey/jsxdrapi.cpp +800 -0
  316. data/vendor/tracemonkey/jsxdrapi.h +220 -0
  317. data/vendor/tracemonkey/jsxml.cpp +8327 -0
  318. data/vendor/tracemonkey/jsxml.h +305 -0
  319. data/vendor/tracemonkey/liveconnect/LiveConnect.dsp +157 -0
  320. data/vendor/tracemonkey/liveconnect/LiveConnectShell.dsp +120 -0
  321. data/vendor/tracemonkey/liveconnect/LiveConnectShell.dsw +44 -0
  322. data/vendor/tracemonkey/liveconnect/Makefile.in +105 -0
  323. data/vendor/tracemonkey/liveconnect/Makefile.ref +169 -0
  324. data/vendor/tracemonkey/liveconnect/README.html +712 -0
  325. data/vendor/tracemonkey/liveconnect/_jni/netscape_javascript_JSException.h +14 -0
  326. data/vendor/tracemonkey/liveconnect/_jni/netscape_javascript_JSObject.h +155 -0
  327. data/vendor/tracemonkey/liveconnect/classes/Makefile.in +89 -0
  328. data/vendor/tracemonkey/liveconnect/classes/Makefile.ref +57 -0
  329. data/vendor/tracemonkey/liveconnect/classes/netscape/Makefile.ref +47 -0
  330. data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSException.java +140 -0
  331. data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSObject.java +183 -0
  332. data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSProxy.java +58 -0
  333. data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSRunnable.java +70 -0
  334. data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/JSUtil.java +59 -0
  335. data/vendor/tracemonkey/liveconnect/classes/netscape/javascript/Makefile.ref +53 -0
  336. data/vendor/tracemonkey/liveconnect/config/AIX4.1.mk +45 -0
  337. data/vendor/tracemonkey/liveconnect/config/AIX4.2.mk +45 -0
  338. data/vendor/tracemonkey/liveconnect/config/AIX4.3.mk +50 -0
  339. data/vendor/tracemonkey/liveconnect/config/HP-UXB.10.10.mk +43 -0
  340. data/vendor/tracemonkey/liveconnect/config/HP-UXB.10.20.mk +43 -0
  341. data/vendor/tracemonkey/liveconnect/config/HP-UXB.11.00.mk +43 -0
  342. data/vendor/tracemonkey/liveconnect/config/IRIX6.2.mk +43 -0
  343. data/vendor/tracemonkey/liveconnect/config/IRIX6.3.mk +43 -0
  344. data/vendor/tracemonkey/liveconnect/config/IRIX6.5.mk +43 -0
  345. data/vendor/tracemonkey/liveconnect/config/Linux_All.mk +73 -0
  346. data/vendor/tracemonkey/liveconnect/config/OSF1V4.0.mk +65 -0
  347. data/vendor/tracemonkey/liveconnect/config/OSF1V5.0.mk +62 -0
  348. data/vendor/tracemonkey/liveconnect/config/SunOS5.5.1.mk +55 -0
  349. data/vendor/tracemonkey/liveconnect/config/SunOS5.6.mk +39 -0
  350. data/vendor/tracemonkey/liveconnect/config/SunOS5.7.mk +39 -0
  351. data/vendor/tracemonkey/liveconnect/config/SunOS5.8.mk +39 -0
  352. data/vendor/tracemonkey/liveconnect/config/WINNT4.0.mk +53 -0
  353. data/vendor/tracemonkey/liveconnect/jsj.c +886 -0
  354. data/vendor/tracemonkey/liveconnect/jsj.msg +98 -0
  355. data/vendor/tracemonkey/liveconnect/jsj_JSObject.c +1377 -0
  356. data/vendor/tracemonkey/liveconnect/jsj_JavaArray.c +474 -0
  357. data/vendor/tracemonkey/liveconnect/jsj_JavaClass.c +737 -0
  358. data/vendor/tracemonkey/liveconnect/jsj_JavaMember.c +191 -0
  359. data/vendor/tracemonkey/liveconnect/jsj_JavaObject.c +1079 -0
  360. data/vendor/tracemonkey/liveconnect/jsj_JavaPackage.c +569 -0
  361. data/vendor/tracemonkey/liveconnect/jsj_array.c +207 -0
  362. data/vendor/tracemonkey/liveconnect/jsj_class.c +770 -0
  363. data/vendor/tracemonkey/liveconnect/jsj_convert.c +902 -0
  364. data/vendor/tracemonkey/liveconnect/jsj_field.c +421 -0
  365. data/vendor/tracemonkey/liveconnect/jsj_hash.c +488 -0
  366. data/vendor/tracemonkey/liveconnect/jsj_hash.h +161 -0
  367. data/vendor/tracemonkey/liveconnect/jsj_method.c +1825 -0
  368. data/vendor/tracemonkey/liveconnect/jsj_nodl.c +1 -0
  369. data/vendor/tracemonkey/liveconnect/jsj_private.h +677 -0
  370. data/vendor/tracemonkey/liveconnect/jsj_simpleapi.c +219 -0
  371. data/vendor/tracemonkey/liveconnect/jsj_utils.c +513 -0
  372. data/vendor/tracemonkey/liveconnect/jsjava.h +316 -0
  373. data/vendor/tracemonkey/liveconnect/netscape_javascript_JSObject.h +155 -0
  374. data/vendor/tracemonkey/liveconnect/nsCLiveconnect.cpp +785 -0
  375. data/vendor/tracemonkey/liveconnect/nsCLiveconnect.h +197 -0
  376. data/vendor/tracemonkey/liveconnect/nsCLiveconnectFactory.cpp +118 -0
  377. data/vendor/tracemonkey/liveconnect/nsCLiveconnectFactory.h +76 -0
  378. data/vendor/tracemonkey/liveconnect/nsILiveconnect.h +197 -0
  379. data/vendor/tracemonkey/liveconnect/nsISecureLiveconnect.h +94 -0
  380. data/vendor/tracemonkey/liveconnect/nsISecurityContext.h +136 -0
  381. data/vendor/tracemonkey/lock_SunOS.s +119 -0
  382. data/vendor/tracemonkey/mandelbrot-results.js +3 -0
  383. data/vendor/tracemonkey/math-partial-sums.js +32 -0
  384. data/vendor/tracemonkey/math-trace-tests.js +507 -0
  385. data/vendor/tracemonkey/md5.js +289 -0
  386. data/vendor/tracemonkey/nanojit/Assembler.cpp +1984 -0
  387. data/vendor/tracemonkey/nanojit/Assembler.h +375 -0
  388. data/vendor/tracemonkey/nanojit/Fragmento.cpp +651 -0
  389. data/vendor/tracemonkey/nanojit/Fragmento.h +237 -0
  390. data/vendor/tracemonkey/nanojit/LIR.cpp +2314 -0
  391. data/vendor/tracemonkey/nanojit/LIR.h +879 -0
  392. data/vendor/tracemonkey/nanojit/LIRopcode.tbl +252 -0
  393. data/vendor/tracemonkey/nanojit/Native.h +127 -0
  394. data/vendor/tracemonkey/nanojit/NativeARM.cpp +1742 -0
  395. data/vendor/tracemonkey/nanojit/NativeARM.h +844 -0
  396. data/vendor/tracemonkey/nanojit/NativeSparc.cpp +1130 -0
  397. data/vendor/tracemonkey/nanojit/NativeSparc.h +948 -0
  398. data/vendor/tracemonkey/nanojit/NativeThumb.cpp +1322 -0
  399. data/vendor/tracemonkey/nanojit/NativeThumb.h +525 -0
  400. data/vendor/tracemonkey/nanojit/Nativei386.cpp +1748 -0
  401. data/vendor/tracemonkey/nanojit/Nativei386.h +857 -0
  402. data/vendor/tracemonkey/nanojit/RegAlloc.cpp +183 -0
  403. data/vendor/tracemonkey/nanojit/RegAlloc.h +95 -0
  404. data/vendor/tracemonkey/nanojit/TraceTreeDrawer.cpp +306 -0
  405. data/vendor/tracemonkey/nanojit/TraceTreeDrawer.h +88 -0
  406. data/vendor/tracemonkey/nanojit/avmplus.cpp +56 -0
  407. data/vendor/tracemonkey/nanojit/avmplus.h +1016 -0
  408. data/vendor/tracemonkey/nanojit/nanojit.h +253 -0
  409. data/vendor/tracemonkey/perfect.js +39 -0
  410. data/vendor/tracemonkey/plify_jsdhash.sed +35 -0
  411. data/vendor/tracemonkey/prmjtime.cpp +869 -0
  412. data/vendor/tracemonkey/prmjtime.h +103 -0
  413. data/vendor/tracemonkey/ref-config/AIX4.1.mk +65 -0
  414. data/vendor/tracemonkey/ref-config/AIX4.2.mk +64 -0
  415. data/vendor/tracemonkey/ref-config/AIX4.3.mk +65 -0
  416. data/vendor/tracemonkey/ref-config/Darwin.mk +85 -0
  417. data/vendor/tracemonkey/ref-config/Darwin1.3.mk +81 -0
  418. data/vendor/tracemonkey/ref-config/Darwin1.4.mk +41 -0
  419. data/vendor/tracemonkey/ref-config/Darwin5.2.mk +81 -0
  420. data/vendor/tracemonkey/ref-config/Darwin5.3.mk +81 -0
  421. data/vendor/tracemonkey/ref-config/Darwin64.mk +72 -0
  422. data/vendor/tracemonkey/ref-config/HP-UXB.10.10.mk +77 -0
  423. data/vendor/tracemonkey/ref-config/HP-UXB.10.20.mk +77 -0
  424. data/vendor/tracemonkey/ref-config/HP-UXB.11.00.mk +80 -0
  425. data/vendor/tracemonkey/ref-config/IRIX.mk +87 -0
  426. data/vendor/tracemonkey/ref-config/IRIX5.3.mk +44 -0
  427. data/vendor/tracemonkey/ref-config/IRIX6.1.mk +44 -0
  428. data/vendor/tracemonkey/ref-config/IRIX6.2.mk +44 -0
  429. data/vendor/tracemonkey/ref-config/IRIX6.3.mk +44 -0
  430. data/vendor/tracemonkey/ref-config/IRIX6.5.mk +44 -0
  431. data/vendor/tracemonkey/ref-config/Linux_All.mk +105 -0
  432. data/vendor/tracemonkey/ref-config/Mac_OS10.0.mk +82 -0
  433. data/vendor/tracemonkey/ref-config/OSF1V4.0.mk +72 -0
  434. data/vendor/tracemonkey/ref-config/OSF1V5.0.mk +69 -0
  435. data/vendor/tracemonkey/ref-config/SunOS4.1.4.mk +101 -0
  436. data/vendor/tracemonkey/ref-config/SunOS5.10.mk +50 -0
  437. data/vendor/tracemonkey/ref-config/SunOS5.3.mk +91 -0
  438. data/vendor/tracemonkey/ref-config/SunOS5.4.mk +92 -0
  439. data/vendor/tracemonkey/ref-config/SunOS5.5.1.mk +44 -0
  440. data/vendor/tracemonkey/ref-config/SunOS5.5.mk +87 -0
  441. data/vendor/tracemonkey/ref-config/SunOS5.6.mk +89 -0
  442. data/vendor/tracemonkey/ref-config/SunOS5.7.mk +44 -0
  443. data/vendor/tracemonkey/ref-config/SunOS5.8.mk +44 -0
  444. data/vendor/tracemonkey/ref-config/SunOS5.9.mk +44 -0
  445. data/vendor/tracemonkey/ref-config/WINNT4.0.mk +118 -0
  446. data/vendor/tracemonkey/ref-config/WINNT5.0.mk +118 -0
  447. data/vendor/tracemonkey/ref-config/WINNT5.1.mk +118 -0
  448. data/vendor/tracemonkey/ref-config/WINNT5.2.mk +118 -0
  449. data/vendor/tracemonkey/ref-config/WINNT6.0.mk +118 -0
  450. data/vendor/tracemonkey/ref-config/dgux.mk +64 -0
  451. data/vendor/tracemonkey/resource.h +15 -0
  452. data/vendor/tracemonkey/rules.mk +206 -0
  453. data/vendor/tracemonkey/shell/Makefile.in +72 -0
  454. data/vendor/tracemonkey/shell/js.cpp +4719 -0
  455. data/vendor/tracemonkey/t/3d-cube.js +337 -0
  456. data/vendor/tracemonkey/t/3d-morph.js +54 -0
  457. data/vendor/tracemonkey/t/3d-raytrace.js +441 -0
  458. data/vendor/tracemonkey/t/access-binary-trees.js +50 -0
  459. data/vendor/tracemonkey/t/access-fannkuch.js +66 -0
  460. data/vendor/tracemonkey/t/access-nbody.js +169 -0
  461. data/vendor/tracemonkey/t/access-nsieve.js +38 -0
  462. data/vendor/tracemonkey/t/bitops-3bit-bits-in-byte.js +32 -0
  463. data/vendor/tracemonkey/t/bitops-bits-in-byte.js +21 -0
  464. data/vendor/tracemonkey/t/bitops-bitwise-and.js +28 -0
  465. data/vendor/tracemonkey/t/bitops-nsieve-bits.js +32 -0
  466. data/vendor/tracemonkey/t/controlflow-recursive.js +25 -0
  467. data/vendor/tracemonkey/t/crypto-aes.js +422 -0
  468. data/vendor/tracemonkey/t/crypto-md5.js +286 -0
  469. data/vendor/tracemonkey/t/crypto-sha1.js +224 -0
  470. data/vendor/tracemonkey/t/date-format-tofte.js +299 -0
  471. data/vendor/tracemonkey/t/date-format-xparb.js +417 -0
  472. data/vendor/tracemonkey/t/math-cordic.js +95 -0
  473. data/vendor/tracemonkey/t/math-partial-sums.js +33 -0
  474. data/vendor/tracemonkey/t/math-spectral-norm.js +51 -0
  475. data/vendor/tracemonkey/t/regexp-dna.js +1712 -0
  476. data/vendor/tracemonkey/t/string-base64.js +135 -0
  477. data/vendor/tracemonkey/t/string-fasta.js +85 -0
  478. data/vendor/tracemonkey/t/string-tagcloud.js +265 -0
  479. data/vendor/tracemonkey/t/string-unpack-code.js +68 -0
  480. data/vendor/tracemonkey/t/string-validate-input.js +89 -0
  481. data/vendor/tracemonkey/time.sh +13 -0
  482. data/vendor/tracemonkey/trace-test.js +5564 -0
  483. data/vendor/tracemonkey/v8/base.js +187 -0
  484. data/vendor/tracemonkey/v8/crypto.js +1689 -0
  485. data/vendor/tracemonkey/v8/deltablue.js +880 -0
  486. data/vendor/tracemonkey/v8/earley-boyer.js +4682 -0
  487. data/vendor/tracemonkey/v8/raytrace.js +3418 -0
  488. data/vendor/tracemonkey/v8/richards.js +539 -0
  489. data/vendor/tracemonkey/v8/run-crypto.js +44 -0
  490. data/vendor/tracemonkey/v8/run-deltablue.js +44 -0
  491. data/vendor/tracemonkey/v8/run-earley-boyer.js +44 -0
  492. data/vendor/tracemonkey/v8/run-raytrace.js +44 -0
  493. data/vendor/tracemonkey/v8/run-richards.js +44 -0
  494. data/vendor/tracemonkey/v8/run.js +49 -0
  495. data/vendor/tracemonkey/vprof/readme.txt +93 -0
  496. data/vendor/tracemonkey/vprof/vprof.cpp +360 -0
  497. data/vendor/tracemonkey/vprof/vprof.h +245 -0
  498. data/vendor/tracemonkey/xpconnect/Makefile.in +67 -0
  499. data/vendor/tracemonkey/xpconnect/crashtests/117307-1.html +20 -0
  500. data/vendor/tracemonkey/xpconnect/crashtests/193710.html +11 -0
  501. data/vendor/tracemonkey/xpconnect/crashtests/290162-1.html +5 -0
  502. data/vendor/tracemonkey/xpconnect/crashtests/326615-1.html +16 -0
  503. data/vendor/tracemonkey/xpconnect/crashtests/328553-1.html +13 -0
  504. data/vendor/tracemonkey/xpconnect/crashtests/346258-1.html +12 -0
  505. data/vendor/tracemonkey/xpconnect/crashtests/346512-1-frame1.xhtml +16 -0
  506. data/vendor/tracemonkey/xpconnect/crashtests/346512-1-frame2.xhtml +15 -0
  507. data/vendor/tracemonkey/xpconnect/crashtests/346512-1.xhtml +30 -0
  508. data/vendor/tracemonkey/xpconnect/crashtests/382133-1.html +3 -0
  509. data/vendor/tracemonkey/xpconnect/crashtests/386680-1.html +22 -0
  510. data/vendor/tracemonkey/xpconnect/crashtests/394810-1.html +4 -0
  511. data/vendor/tracemonkey/xpconnect/crashtests/400349-1.html +20 -0
  512. data/vendor/tracemonkey/xpconnect/crashtests/403356-1.html +13 -0
  513. data/vendor/tracemonkey/xpconnect/crashtests/418139-1.svg +22 -0
  514. data/vendor/tracemonkey/xpconnect/crashtests/420513-1.html +11 -0
  515. data/vendor/tracemonkey/xpconnect/crashtests/453935-1.html +37 -0
  516. data/vendor/tracemonkey/xpconnect/crashtests/462926.html +12 -0
  517. data/vendor/tracemonkey/xpconnect/crashtests/468552-1.html +18 -0
  518. data/vendor/tracemonkey/xpconnect/crashtests/471366-1.html +12 -0
  519. data/vendor/tracemonkey/xpconnect/crashtests/475185-1.html +13 -0
  520. data/vendor/tracemonkey/xpconnect/crashtests/475291-1.html +14 -0
  521. data/vendor/tracemonkey/xpconnect/crashtests/503286-1.html +23 -0
  522. data/vendor/tracemonkey/xpconnect/crashtests/crashtests.list +21 -0
  523. data/vendor/tracemonkey/xpconnect/idl/Makefile.in +78 -0
  524. data/vendor/tracemonkey/xpconnect/idl/XPCIDispatch.idl +51 -0
  525. data/vendor/tracemonkey/xpconnect/idl/mozIJSSubScriptLoader.idl +64 -0
  526. data/vendor/tracemonkey/xpconnect/idl/nsIActiveXSecurityPolicy.idl +67 -0
  527. data/vendor/tracemonkey/xpconnect/idl/nsIDispatchSupport.idl +119 -0
  528. data/vendor/tracemonkey/xpconnect/idl/nsIJSContextStack.idl +85 -0
  529. data/vendor/tracemonkey/xpconnect/idl/nsIJSRuntimeService.idl +51 -0
  530. data/vendor/tracemonkey/xpconnect/idl/nsIScriptError.idl +102 -0
  531. data/vendor/tracemonkey/xpconnect/idl/nsIScriptableInterfaces.idl +67 -0
  532. data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptNotify.idl +66 -0
  533. data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptable.idl +183 -0
  534. data/vendor/tracemonkey/xpconnect/idl/nsIXPCSecurityManager.idl +114 -0
  535. data/vendor/tracemonkey/xpconnect/idl/nsIXPConnect.idl +819 -0
  536. data/vendor/tracemonkey/xpconnect/idl/xpcIJSModuleLoader.idl +95 -0
  537. data/vendor/tracemonkey/xpconnect/idl/xpcIJSWeakReference.idl +49 -0
  538. data/vendor/tracemonkey/xpconnect/idl/xpccomponents.idl +254 -0
  539. data/vendor/tracemonkey/xpconnect/idl/xpcexception.idl +66 -0
  540. data/vendor/tracemonkey/xpconnect/idl/xpcjsid.idl +83 -0
  541. data/vendor/tracemonkey/xpconnect/loader/ISO8601DateUtils.jsm +176 -0
  542. data/vendor/tracemonkey/xpconnect/loader/Makefile.in +63 -0
  543. data/vendor/tracemonkey/xpconnect/loader/XPCOMUtils.jsm +267 -0
  544. data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.cpp +1717 -0
  545. data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.h +172 -0
  546. data/vendor/tracemonkey/xpconnect/loader/mozJSLoaderConstructors.h +101 -0
  547. data/vendor/tracemonkey/xpconnect/loader/mozJSSubScriptLoader.cpp +360 -0
  548. data/vendor/tracemonkey/xpconnect/loader/mozJSSubScriptLoader.h +66 -0
  549. data/vendor/tracemonkey/xpconnect/public/Makefile.in +54 -0
  550. data/vendor/tracemonkey/xpconnect/public/nsAXPCNativeCallContext.h +89 -0
  551. data/vendor/tracemonkey/xpconnect/public/nsAutoJSValHolder.h +168 -0
  552. data/vendor/tracemonkey/xpconnect/public/xpc_map_end.h +327 -0
  553. data/vendor/tracemonkey/xpconnect/sample/Makefile.in +71 -0
  554. data/vendor/tracemonkey/xpconnect/sample/README +39 -0
  555. data/vendor/tracemonkey/xpconnect/sample/xpcsample1.cpp +337 -0
  556. data/vendor/tracemonkey/xpconnect/sample/xpcsample1.idl +82 -0
  557. data/vendor/tracemonkey/xpconnect/sample/xpcsample1.js +21 -0
  558. data/vendor/tracemonkey/xpconnect/shell/Makefile.in +106 -0
  559. data/vendor/tracemonkey/xpconnect/shell/jsshell.msg +50 -0
  560. data/vendor/tracemonkey/xpconnect/shell/xpcshell.cpp +1817 -0
  561. data/vendor/tracemonkey/xpconnect/shell/xpcshellMacUtils.h +43 -0
  562. data/vendor/tracemonkey/xpconnect/shell/xpcshellMacUtils.mm +54 -0
  563. data/vendor/tracemonkey/xpconnect/src/Makefile.in +228 -0
  564. data/vendor/tracemonkey/xpconnect/src/README +3 -0
  565. data/vendor/tracemonkey/xpconnect/src/XPCCrossOriginWrapper.cpp +1186 -0
  566. data/vendor/tracemonkey/xpconnect/src/XPCDispConvert.cpp +593 -0
  567. data/vendor/tracemonkey/xpconnect/src/XPCDispInlines.h +667 -0
  568. data/vendor/tracemonkey/xpconnect/src/XPCDispInterface.cpp +383 -0
  569. data/vendor/tracemonkey/xpconnect/src/XPCDispObject.cpp +516 -0
  570. data/vendor/tracemonkey/xpconnect/src/XPCDispParamPropJSClass.cpp +223 -0
  571. data/vendor/tracemonkey/xpconnect/src/XPCDispParams.cpp +103 -0
  572. data/vendor/tracemonkey/xpconnect/src/XPCDispPrivate.h +1401 -0
  573. data/vendor/tracemonkey/xpconnect/src/XPCDispTearOff.cpp +547 -0
  574. data/vendor/tracemonkey/xpconnect/src/XPCDispTypeInfo.cpp +471 -0
  575. data/vendor/tracemonkey/xpconnect/src/XPCIDispatchClassInfo.cpp +139 -0
  576. data/vendor/tracemonkey/xpconnect/src/XPCIDispatchExtension.cpp +362 -0
  577. data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.cpp +1350 -0
  578. data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.h +88 -0
  579. data/vendor/tracemonkey/xpconnect/src/XPCSafeJSObjectWrapper.cpp +1148 -0
  580. data/vendor/tracemonkey/xpconnect/src/XPCSystemOnlyWrapper.cpp +718 -0
  581. data/vendor/tracemonkey/xpconnect/src/XPCWrapper.cpp +850 -0
  582. data/vendor/tracemonkey/xpconnect/src/XPCWrapper.h +394 -0
  583. data/vendor/tracemonkey/xpconnect/src/dom_quickstubs.qsconf +568 -0
  584. data/vendor/tracemonkey/xpconnect/src/nsDispatchSupport.cpp +348 -0
  585. data/vendor/tracemonkey/xpconnect/src/nsScriptError.cpp +201 -0
  586. data/vendor/tracemonkey/xpconnect/src/nsXPConnect.cpp +2609 -0
  587. data/vendor/tracemonkey/xpconnect/src/qsgen.py +1487 -0
  588. data/vendor/tracemonkey/xpconnect/src/xpc.msg +217 -0
  589. data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.cpp +148 -0
  590. data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.h +56 -0
  591. data/vendor/tracemonkey/xpconnect/src/xpccallcontext.cpp +579 -0
  592. data/vendor/tracemonkey/xpconnect/src/xpccomponents.cpp +4144 -0
  593. data/vendor/tracemonkey/xpconnect/src/xpccontext.cpp +115 -0
  594. data/vendor/tracemonkey/xpconnect/src/xpcconvert.cpp +2298 -0
  595. data/vendor/tracemonkey/xpconnect/src/xpcdebug.cpp +481 -0
  596. data/vendor/tracemonkey/xpconnect/src/xpcexception.cpp +502 -0
  597. data/vendor/tracemonkey/xpconnect/src/xpcforwards.h +114 -0
  598. data/vendor/tracemonkey/xpconnect/src/xpcinlines.h +772 -0
  599. data/vendor/tracemonkey/xpconnect/src/xpcjsid.cpp +1025 -0
  600. data/vendor/tracemonkey/xpconnect/src/xpcjsruntime.cpp +1342 -0
  601. data/vendor/tracemonkey/xpconnect/src/xpclog.cpp +128 -0
  602. data/vendor/tracemonkey/xpconnect/src/xpclog.h +101 -0
  603. data/vendor/tracemonkey/xpconnect/src/xpcmaps.cpp +761 -0
  604. data/vendor/tracemonkey/xpconnect/src/xpcmaps.h +713 -0
  605. data/vendor/tracemonkey/xpconnect/src/xpcmodule.cpp +136 -0
  606. data/vendor/tracemonkey/xpconnect/src/xpcprivate.h +4138 -0
  607. data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.cpp +1128 -0
  608. data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.h +480 -0
  609. data/vendor/tracemonkey/xpconnect/src/xpcruntimesvc.cpp +179 -0
  610. data/vendor/tracemonkey/xpconnect/src/xpcstack.cpp +342 -0
  611. data/vendor/tracemonkey/xpconnect/src/xpcstring.cpp +139 -0
  612. data/vendor/tracemonkey/xpconnect/src/xpcthreadcontext.cpp +599 -0
  613. data/vendor/tracemonkey/xpconnect/src/xpcthrower.cpp +399 -0
  614. data/vendor/tracemonkey/xpconnect/src/xpcvariant.cpp +850 -0
  615. data/vendor/tracemonkey/xpconnect/src/xpcwrappedjs.cpp +670 -0
  616. data/vendor/tracemonkey/xpconnect/src/xpcwrappedjsclass.cpp +2015 -0
  617. data/vendor/tracemonkey/xpconnect/src/xpcwrappednative.cpp +3482 -0
  618. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeinfo.cpp +945 -0
  619. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativejsops.cpp +2003 -0
  620. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeproto.cpp +302 -0
  621. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativescope.cpp +991 -0
  622. data/vendor/tracemonkey/xpconnect/tests/Makefile.in +75 -0
  623. data/vendor/tracemonkey/xpconnect/tests/TestXPC.cpp +785 -0
  624. data/vendor/tracemonkey/xpconnect/tests/chrome/Makefile.in +51 -0
  625. data/vendor/tracemonkey/xpconnect/tests/chrome/test_bug500931.xul +43 -0
  626. data/vendor/tracemonkey/xpconnect/tests/components/Makefile.in +85 -0
  627. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_array.cpp +388 -0
  628. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_attributes.cpp +305 -0
  629. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_calljs.cpp +135 -0
  630. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_child.cpp +225 -0
  631. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_const.cpp +76 -0
  632. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_domstring.cpp +118 -0
  633. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_echo.cpp +616 -0
  634. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_in.cpp +204 -0
  635. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_inout.cpp +171 -0
  636. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_module.cpp +77 -0
  637. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_multiple.cpp +554 -0
  638. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_noisy.cpp +154 -0
  639. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_out.cpp +335 -0
  640. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_overloaded.cpp +250 -0
  641. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_private.h +192 -0
  642. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_string.cpp +185 -0
  643. data/vendor/tracemonkey/xpconnect/tests/components/xpctest_variant.cpp +355 -0
  644. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/StdAfx.cpp +12 -0
  645. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/StdAfx.h +28 -0
  646. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCDispUtilities.h +28 -0
  647. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.cpp +86 -0
  648. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.def +9 -0
  649. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.dsp +318 -0
  650. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.dsw +29 -0
  651. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.idl +454 -0
  652. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/XPCIDispatchTest.rc +145 -0
  653. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.cpp +44 -0
  654. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.h +56 -0
  655. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispSimple.rgs +23 -0
  656. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.cpp +221 -0
  657. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.h +53 -0
  658. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestArrays.rgs +23 -0
  659. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.cpp +699 -0
  660. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.h +138 -0
  661. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestMethods.rgs +23 -0
  662. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.cpp +23 -0
  663. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.h +41 -0
  664. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestNoIDispatch.rgs +23 -0
  665. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.cpp +256 -0
  666. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.h +88 -0
  667. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestProperties.rgs +23 -0
  668. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.cpp +23 -0
  669. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.h +43 -0
  670. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOff.rgs +23 -0
  671. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.cpp +29 -0
  672. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.h +45 -0
  673. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestScriptOn.rgs +23 -0
  674. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.cpp +177 -0
  675. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.h +50 -0
  676. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/nsXPCDispTestWrappedJS.rgs +23 -0
  677. data/vendor/tracemonkey/xpconnect/tests/idispatch/COM/resource.h +36 -0
  678. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Arrays/XPCIDispatchArrayTests.js +54 -0
  679. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Attributes/XPCIDispatchAttributeTests.js +150 -0
  680. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/General/XPCIDispatchInstantiations.js +122 -0
  681. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/General/XPCStress.js +58 -0
  682. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/Methods/XPCIDispatchMethodTests.js +376 -0
  683. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedCOM/shell.js +377 -0
  684. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedJS/General/XPCIDispatchTestWrappedJS.js +76 -0
  685. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/WrappedJS/shell.js +377 -0
  686. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/exectests.cmd +1 -0
  687. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/jsDriver.pl +1288 -0
  688. data/vendor/tracemonkey/xpconnect/tests/idl/Makefile.in +61 -0
  689. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest.idl +312 -0
  690. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest2.idl +51 -0
  691. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_attributes.idl +67 -0
  692. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_calljs.idl +59 -0
  693. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_const.idl +61 -0
  694. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_domstring.idl +59 -0
  695. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_in.idl +88 -0
  696. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_inout.idl +86 -0
  697. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_multiple.idl +77 -0
  698. data/vendor/tracemonkey/xpconnect/tests/idl/xpctest_out.idl +142 -0
  699. data/vendor/tracemonkey/xpconnect/tests/js/checkid.js +82 -0
  700. data/vendor/tracemonkey/xpconnect/tests/js/evaluate.js +311 -0
  701. data/vendor/tracemonkey/xpconnect/tests/js/exceptions-2.js +153 -0
  702. data/vendor/tracemonkey/xpconnect/tests/js/exceptions-3.js +194 -0
  703. data/vendor/tracemonkey/xpconnect/tests/js/exceptions-4.js +297 -0
  704. data/vendor/tracemonkey/xpconnect/tests/js/exceptions-5.js +343 -0
  705. data/vendor/tracemonkey/xpconnect/tests/js/exceptions.js +230 -0
  706. data/vendor/tracemonkey/xpconnect/tests/js/javascript.js +96 -0
  707. data/vendor/tracemonkey/xpconnect/tests/js/multiple-2.js +151 -0
  708. data/vendor/tracemonkey/xpconnect/tests/js/multiple-3.js +148 -0
  709. data/vendor/tracemonkey/xpconnect/tests/js/multiple-4.js +152 -0
  710. data/vendor/tracemonkey/xpconnect/tests/js/multiple.js +137 -0
  711. data/vendor/tracemonkey/xpconnect/tests/js/notscriptable.js +104 -0
  712. data/vendor/tracemonkey/xpconnect/tests/js/old/simpletest.js +36 -0
  713. data/vendor/tracemonkey/xpconnect/tests/js/old/speed.js +60 -0
  714. data/vendor/tracemonkey/xpconnect/tests/js/old/testxpc.js +464 -0
  715. data/vendor/tracemonkey/xpconnect/tests/js/old/threads.js +74 -0
  716. data/vendor/tracemonkey/xpconnect/tests/js/old/try.js +27 -0
  717. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_array.js +308 -0
  718. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_callcontext.js +68 -0
  719. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_echo.js +636 -0
  720. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_and_sort.js +28 -0
  721. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_constants.js +15 -0
  722. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_enum_create.js +200 -0
  723. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_exceptions.js +167 -0
  724. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_ids.js +135 -0
  725. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_observer.js +36 -0
  726. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_overloaded.js +14 -0
  727. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_primitives.js +141 -0
  728. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_propertybag.js +36 -0
  729. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_variant.js +339 -0
  730. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_variant_array.js +30 -0
  731. data/vendor/tracemonkey/xpconnect/tests/js/readonlyattributes.js +74 -0
  732. data/vendor/tracemonkey/xpconnect/tests/js/readwriteattributes.js +101 -0
  733. data/vendor/tracemonkey/xpconnect/tests/js/scriptable.js +120 -0
  734. data/vendor/tracemonkey/xpconnect/tests/js/testin.js +203 -0
  735. data/vendor/tracemonkey/xpconnect/tests/js/xpcfun.js +234 -0
  736. data/vendor/tracemonkey/xpconnect/tests/js/xpctest_primitives.js +200 -0
  737. data/vendor/tracemonkey/xpconnect/tests/mochitest/Makefile.in +66 -0
  738. data/vendor/tracemonkey/xpconnect/tests/mochitest/bug500931_helper.html +7 -0
  739. data/vendor/tracemonkey/xpconnect/tests/mochitest/inner.html +7 -0
  740. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug361111.xul +29 -0
  741. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug384632.html +32 -0
  742. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug390488.html +65 -0
  743. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug393269.html +46 -0
  744. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug396851.html +43 -0
  745. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug428021.html +41 -0
  746. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug446584.html +49 -0
  747. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug448587.html +31 -0
  748. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug462428.html +42 -0
  749. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug478438.html +66 -0
  750. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484107.html +100 -0
  751. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484459.html +36 -0
  752. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug500691.html +28 -0
  753. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_wrappers.html +116 -0
  754. data/vendor/tracemonkey/xpconnect/tests/unit/bogus_element_type.jsm +1 -0
  755. data/vendor/tracemonkey/xpconnect/tests/unit/bogus_exports_type.jsm +1 -0
  756. data/vendor/tracemonkey/xpconnect/tests/unit/bug451678_subscript.js +2 -0
  757. data/vendor/tracemonkey/xpconnect/tests/unit/component_import.js +144 -0
  758. data/vendor/tracemonkey/xpconnect/tests/unit/recursive_importA.jsm +44 -0
  759. data/vendor/tracemonkey/xpconnect/tests/unit/recursive_importB.jsm +45 -0
  760. data/vendor/tracemonkey/xpconnect/tests/unit/syntax_error.jsm +1 -0
  761. data/vendor/tracemonkey/xpconnect/tests/unit/test_bogus_files.js +88 -0
  762. data/vendor/tracemonkey/xpconnect/tests/unit/test_bug408412.js +51 -0
  763. data/vendor/tracemonkey/xpconnect/tests/unit/test_bug451678.js +52 -0
  764. data/vendor/tracemonkey/xpconnect/tests/unit/test_bug_442086.js +68 -0
  765. data/vendor/tracemonkey/xpconnect/tests/unit/test_import.js +127 -0
  766. data/vendor/tracemonkey/xpconnect/tests/unit/test_js_weak_references.js +63 -0
  767. data/vendor/tracemonkey/xpconnect/tests/unit/test_recursive_import.js +62 -0
  768. data/vendor/tracemonkey/xpconnect/tools/Makefile.in +49 -0
  769. data/vendor/tracemonkey/xpconnect/tools/idl/Makefile.in +53 -0
  770. data/vendor/tracemonkey/xpconnect/tools/idl/nsIXPCToolsCompiler.idl +60 -0
  771. data/vendor/tracemonkey/xpconnect/tools/idl/nsIXPCToolsProfiler.idl +57 -0
  772. data/vendor/tracemonkey/xpconnect/tools/js/CompileJSFiles.js +28 -0
  773. data/vendor/tracemonkey/xpconnect/tools/js/ListJSFiles.js +18 -0
  774. data/vendor/tracemonkey/xpconnect/tools/src/Makefile.in +76 -0
  775. data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsCompiler.cpp +161 -0
  776. data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsModule.cpp +65 -0
  777. data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsProfiler.cpp +370 -0
  778. data/vendor/tracemonkey/xpconnect/tools/src/xpctools_private.h +236 -0
  779. metadata +782 -107
  780. data/test/johnson/nodes/export_test.rb +0 -9
  781. data/test/johnson/nodes/import_test.rb +0 -13
  782. data/test/johnson/version_test.rb +0 -13
@@ -0,0 +1,48 @@
1
+ #! perl
2
+ #
3
+ # ***** BEGIN LICENSE BLOCK *****
4
+ # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
+ #
6
+ # The contents of this file are subject to the Mozilla Public License Version
7
+ # 1.1 (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ # http://www.mozilla.org/MPL/
10
+ #
11
+ # Software distributed under the License is distributed on an "AS IS" basis,
12
+ # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
+ # for the specific language governing rights and limitations under the
14
+ # License.
15
+ #
16
+ # The Original Code is mozilla.org code.
17
+ #
18
+ # The Initial Developer of the Original Code is
19
+ # Netscape Communications Corporation.
20
+ # Portions created by the Initial Developer are Copyright (C) 1998
21
+ # the Initial Developer. All Rights Reserved.
22
+ #
23
+ # Contributor(s):
24
+ #
25
+ # Alternatively, the contents of this file may be used under the terms of
26
+ # either of the GNU General Public License Version 2 or later (the "GPL"),
27
+ # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28
+ # in which case the provisions of the GPL or the LGPL are applicable instead
29
+ # of those above. If you wish to allow use of your version of this file only
30
+ # under the terms of either the GPL or the LGPL, and not to allow others to
31
+ # use your version of this file under the terms of the MPL, indicate your
32
+ # decision by deleting the provisions above and replace them with the notice
33
+ # and other provisions required by the GPL or the LGPL. If you do not delete
34
+ # the provisions above, a recipient may use your version of this file under
35
+ # the terms of any one of the MPL, the GPL or the LGPL.
36
+ #
37
+ # ***** END LICENSE BLOCK *****
38
+
39
+ require "/ns/config/fastcwd.pl";
40
+
41
+ $cur = &fastcwd;
42
+ chdir($ARGV[0]);
43
+ $newcur = &fastcwd;
44
+ $newcurlen = length($newcur);
45
+
46
+ # Skip common separating / unless $newcur is "/"
47
+ $cur = substr($cur, $newcurlen + ($newcurlen > 1));
48
+ print $cur;
@@ -0,0 +1,51 @@
1
+ #! perl
2
+ #
3
+ # ***** BEGIN LICENSE BLOCK *****
4
+ # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
+ #
6
+ # The contents of this file are subject to the Mozilla Public License Version
7
+ # 1.1 (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ # http://www.mozilla.org/MPL/
10
+ #
11
+ # Software distributed under the License is distributed on an "AS IS" basis,
12
+ # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
+ # for the specific language governing rights and limitations under the
14
+ # License.
15
+ #
16
+ # The Original Code is mozilla.org code.
17
+ #
18
+ # The Initial Developer of the Original Code is
19
+ # Netscape Communications Corporation.
20
+ # Portions created by the Initial Developer are Copyright (C) 1998
21
+ # the Initial Developer. All Rights Reserved.
22
+ #
23
+ # Contributor(s):
24
+ #
25
+ # Alternatively, the contents of this file may be used under the terms of
26
+ # either of the GNU General Public License Version 2 or later (the "GPL"),
27
+ # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28
+ # in which case the provisions of the GPL or the LGPL are applicable instead
29
+ # of those above. If you wish to allow use of your version of this file only
30
+ # under the terms of either the GPL or the LGPL, and not to allow others to
31
+ # use your version of this file under the terms of the MPL, indicate your
32
+ # decision by deleting the provisions above and replace them with the notice
33
+ # and other provisions required by the GPL or the LGPL. If you do not delete
34
+ # the provisions above, a recipient may use your version of this file under
35
+ # the terms of any one of the MPL, the GPL or the LGPL.
36
+ #
37
+ # ***** END LICENSE BLOCK *****
38
+
39
+ unshift(@INC, '/usr/lib/perl');
40
+ unshift(@INC, '/usr/local/lib/perl');
41
+
42
+ require "fastcwd.pl";
43
+
44
+ $cur = &fastcwd;
45
+ chdir($ARGV[0]);
46
+ $newcur = &fastcwd;
47
+ $newcurlen = length($newcur);
48
+
49
+ # Skip common separating / unless $newcur is "/"
50
+ $cur = substr($cur, $newcurlen + ($newcurlen > 1));
51
+ print $cur;
@@ -0,0 +1,2310 @@
1
+ # vim:set ts=8 sw=8 sts=8 noet:
2
+ #
3
+ # ***** BEGIN LICENSE BLOCK *****
4
+ # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
+ #
6
+ # The contents of this file are subject to the Mozilla Public License Version
7
+ # 1.1 (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ # http://www.mozilla.org/MPL/
10
+ #
11
+ # Software distributed under the License is distributed on an "AS IS" basis,
12
+ # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
+ # for the specific language governing rights and limitations under the
14
+ # License.
15
+ #
16
+ # The Original Code is mozilla.org code.
17
+ #
18
+ # The Initial Developer of the Original Code is
19
+ # Netscape Communications Corporation.
20
+ # Portions created by the Initial Developer are Copyright (C) 1998
21
+ # the Initial Developer. All Rights Reserved.
22
+ #
23
+ # Contributor(s):
24
+ # Chase Phillips <chase@mozilla.org>
25
+ # Benjamin Smedberg <benjamin@smedbergs.us>
26
+ # Jeff Walden <jwalden+code@mit.edu>
27
+ #
28
+ # Alternatively, the contents of this file may be used under the terms of
29
+ # either of the GNU General Public License Version 2 or later (the "GPL"),
30
+ # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
31
+ # in which case the provisions of the GPL or the LGPL are applicable instead
32
+ # of those above. If you wish to allow use of your version of this file only
33
+ # under the terms of either the GPL or the LGPL, and not to allow others to
34
+ # use your version of this file under the terms of the MPL, indicate your
35
+ # decision by deleting the provisions above and replace them with the notice
36
+ # and other provisions required by the GPL or the LGPL. If you do not delete
37
+ # the provisions above, a recipient may use your version of this file under
38
+ # the terms of any one of the MPL, the GPL or the LGPL.
39
+ #
40
+ # ***** END LICENSE BLOCK *****
41
+ ifndef topsrcdir
42
+ topsrcdir = $(DEPTH)
43
+ endif
44
+
45
+ ifndef MOZILLA_DIR
46
+ MOZILLA_DIR = $(topsrcdir)
47
+ endif
48
+
49
+ ifndef INCLUDED_CONFIG_MK
50
+ include $(topsrcdir)/config/config.mk
51
+ endif
52
+
53
+ ifndef INCLUDED_VERSION_MK
54
+ include $(topsrcdir)/config/version.mk
55
+ endif
56
+
57
+ REPORT_BUILD = @echo $(notdir $<)
58
+
59
+ ifeq ($(OS_ARCH),OS2)
60
+ EXEC =
61
+ else
62
+ EXEC = exec
63
+ endif
64
+
65
+ # Don't copy xulrunner files at install time, when using system xulrunner
66
+ ifdef SYSTEM_LIBXUL
67
+ SKIP_COPY_XULRUNNER=1
68
+ endif
69
+
70
+ # ELOG prints out failed command when building silently (gmake -s).
71
+ ifneq (,$(findstring -s,$(MAKEFLAGS)))
72
+ ELOG := $(EXEC) sh $(BUILD_TOOLS)/print-failed-commands.sh
73
+ else
74
+ ELOG :=
75
+ endif
76
+
77
+ ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
78
+ ifndef GNU_CC
79
+ _LIBNAME_RELATIVE_PATHS=1
80
+ endif
81
+ endif
82
+
83
+ ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
84
+ PWD := $(shell pwd)
85
+ _VPATH_SRCS = $(if $(filter /%,$<),$<,$(PWD)/$<)
86
+ else
87
+ _VPATH_SRCS = $<
88
+ endif
89
+
90
+ # Add $(DIST)/lib to VPATH so that -lfoo dependencies are followed
91
+ VPATH += $(DIST)/lib
92
+ ifdef LIBXUL_SDK
93
+ VPATH += $(LIBXUL_SDK)/lib
94
+ endif
95
+
96
+ # EXPAND_LIBNAME - $(call EXPAND_LIBNAME,foo)
97
+ # expands to foo.lib on platforms with import libs and -lfoo otherwise
98
+
99
+ # EXPAND_LIBNAME_PATH - $(call EXPAND_LIBNAME_PATH,foo,dir)
100
+ # expands to dir/foo.lib on platforms with import libs and
101
+ # -Ldir -lfoo otherwise
102
+
103
+ # EXPAND_MOZLIBNAME - $(call EXPAND_MOZLIBNAME,foo)
104
+ # expands to $(DIST)/lib/foo.lib on platforms with import libs and
105
+ # -lfoo otherwise
106
+
107
+ ifdef _LIBNAME_RELATIVE_PATHS
108
+ EXPAND_LIBNAME = $(foreach lib,$(1),$(LIB_PREFIX)$(lib).$(LIB_SUFFIX))
109
+ EXPAND_LIBNAME_PATH = $(foreach lib,$(1),$(2)/$(LIB_PREFIX)$(lib).$(LIB_SUFFIX))
110
+ EXPAND_MOZLIBNAME = $(foreach lib,$(1),$(DIST)/lib/$(LIB_PREFIX)$(lib).$(LIB_SUFFIX))
111
+ else
112
+ EXPAND_LIBNAME = $(addprefix -l,$(1))
113
+ EXPAND_LIBNAME_PATH = -L$(2) $(addprefix -l,$(1))
114
+ EXPAND_MOZLIBNAME = $(addprefix -l,$(1))
115
+ endif
116
+
117
+ ifdef EXTRA_DSO_LIBS
118
+ EXTRA_DSO_LIBS := $(call EXPAND_MOZLIBNAME,$(EXTRA_DSO_LIBS))
119
+ endif
120
+
121
+ ################################################################################
122
+ # Testing frameworks support
123
+ ################################################################################
124
+
125
+ ifdef ENABLE_TESTS
126
+
127
+ ifdef XPCSHELL_TESTS
128
+ ifndef MODULE
129
+ $(error Must define MODULE when defining XPCSHELL_TESTS.)
130
+ endif
131
+
132
+ testxpcobjdir = $(DEPTH)/_tests/xpcshell
133
+
134
+ # Test file installation
135
+ ifdef NSINSTALL_BIN
136
+ # nsinstall in moztools can't recursively copy directories, so use nsinstall.py
137
+ TEST_INSTALLER = $(PYTHON) $(topsrcdir)/config/nsinstall.py
138
+ else
139
+ TEST_INSTALLER = $(INSTALL)
140
+ endif
141
+
142
+ define _INSTALL_TESTS
143
+ $(TEST_INSTALLER) $(wildcard $(srcdir)/$(dir)/*) $(testxpcobjdir)/$(MODULE)/$(dir)
144
+
145
+ endef # do not remove the blank line!
146
+
147
+ SOLO_FILE ?= $(error Specify a test filename in SOLO_FILE when using check-interactive or check-one)
148
+
149
+ libs::
150
+ $(foreach dir,$(XPCSHELL_TESTS),$(_INSTALL_TESTS))
151
+ $(PERL) -I$(MOZILLA_DIR)/config $(MOZILLA_DIR)/config/build-list.pl \
152
+ $(testxpcobjdir)/all-test-dirs.list \
153
+ $(addprefix $(MODULE)/,$(XPCSHELL_TESTS))
154
+
155
+ testxpcsrcdir = $(topsrcdir)/testing/xpcshell
156
+
157
+ # Execute all tests in the $(XPCSHELL_TESTS) directories.
158
+ # See also testsuite-targets.mk 'xpcshell-tests' target for global execution.
159
+ xpcshell-tests:
160
+ $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
161
+ -I$(topsrcdir)/build \
162
+ $(testxpcsrcdir)/runxpcshelltests.py \
163
+ --symbols-path=$(DIST)/crashreporter-symbols \
164
+ $(DIST)/bin/xpcshell \
165
+ $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(MODULE)/$(dir))
166
+
167
+ # Execute a single test, specified in $(SOLO_FILE), but don't automatically
168
+ # start the test. Instead, present the xpcshell prompt so the user can
169
+ # attach a debugger and then start the test.
170
+ check-interactive:
171
+ $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
172
+ -I$(topsrcdir)/build \
173
+ $(testxpcsrcdir)/runxpcshelltests.py \
174
+ --symbols-path=$(DIST)/crashreporter-symbols \
175
+ --test-path=$(SOLO_FILE) \
176
+ --interactive \
177
+ $(DIST)/bin/xpcshell \
178
+ $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(MODULE)/$(dir))
179
+
180
+ # Execute a single test, specified in $(SOLO_FILE)
181
+ check-one:
182
+ $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
183
+ -I$(topsrcdir)/build \
184
+ $(testxpcsrcdir)/runxpcshelltests.py \
185
+ --symbols-path=$(DIST)/crashreporter-symbols \
186
+ --test-path=$(SOLO_FILE) \
187
+ $(DIST)/bin/xpcshell \
188
+ $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(MODULE)/$(dir))
189
+
190
+ endif # XPCSHELL_TESTS
191
+
192
+ ifdef CPP_UNIT_TESTS
193
+
194
+ # Compile the tests to $(DIST)/bin. Make lots of niceties available by default
195
+ # through TestHarness.h, by modifying the list of includes and the libs against
196
+ # which stuff links.
197
+ CPPSRCS += $(CPP_UNIT_TESTS)
198
+ SIMPLE_PROGRAMS += $(CPP_UNIT_TESTS:.cpp=$(BIN_SUFFIX))
199
+ REQUIRES += testing xpcom
200
+ LIBS += $(XPCOM_GLUE_LDOPTS) $(NSPR_LIBS)
201
+
202
+ # ...and run them the usual way
203
+ check::
204
+ @$(EXIT_ON_ERROR) \
205
+ for f in $(subst .cpp,,$(CPP_UNIT_TESTS)); do \
206
+ XPCOM_DEBUG_BREAK=stack-and-abort $(RUN_TEST_PROGRAM) $(DIST)/bin/$$f; \
207
+ done
208
+
209
+ endif # CPP_UNIT_TESTS
210
+
211
+ .PHONY: check xpcshell-tests check-interactive check-one
212
+
213
+ endif # ENABLE_TESTS
214
+
215
+
216
+ #
217
+ # Library rules
218
+ #
219
+ # If BUILD_STATIC_LIBS or FORCE_STATIC_LIB is set, build a static library.
220
+ # Otherwise, build a shared library.
221
+ #
222
+
223
+ ifndef LIBRARY
224
+ ifdef STATIC_LIBRARY_NAME
225
+ ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH)))
226
+ ifdef SHORT_LIBNAME
227
+ STATIC_LIBRARY_NAME := $(SHORT_LIBNAME)
228
+ SHARED_LIBRARY_NAME := $(SHORT_LIBNAME)
229
+ endif
230
+ endif
231
+ LIBRARY := $(LIB_PREFIX)$(STATIC_LIBRARY_NAME).$(LIB_SUFFIX)
232
+ endif # STATIC_LIBRARY_NAME
233
+ endif # LIBRARY
234
+
235
+ ifndef HOST_LIBRARY
236
+ ifdef HOST_LIBRARY_NAME
237
+ HOST_LIBRARY := $(LIB_PREFIX)$(HOST_LIBRARY_NAME).$(LIB_SUFFIX)
238
+ endif
239
+ endif
240
+
241
+ ifdef LIBRARY
242
+ ifneq (_1,$(FORCE_SHARED_LIB)_$(BUILD_STATIC_LIBS))
243
+ ifdef MKSHLIB
244
+
245
+ ifdef LIB_IS_C_ONLY
246
+ MKSHLIB = $(MKCSHLIB)
247
+ endif
248
+
249
+ ifdef MAKE_FRAMEWORK
250
+ SHARED_LIBRARY := $(LIBRARY_NAME)
251
+ else
252
+ SHARED_LIBRARY := $(DLL_PREFIX)$(LIBRARY_NAME)$(DLL_SUFFIX)
253
+ endif
254
+
255
+ ifeq ($(OS_ARCH),OS2)
256
+ DEF_FILE := $(SHARED_LIBRARY:.dll=.def)
257
+ endif
258
+
259
+ ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH)))
260
+ IMPORT_LIBRARY := $(LIB_PREFIX)$(LIBRARY_NAME).$(IMPORT_LIB_SUFFIX)
261
+ endif
262
+
263
+ ifdef MOZ_ENABLE_LIBXUL
264
+ EMBED_MANIFEST_AT=2
265
+ endif
266
+
267
+ endif # MKSHLIB
268
+ endif # FORCE_SHARED_LIB && !BUILD_STATIC_LIBS
269
+ endif # LIBRARY
270
+
271
+ ifeq (,$(BUILD_STATIC_LIBS)$(FORCE_STATIC_LIB))
272
+ LIBRARY := $(NULL)
273
+ endif
274
+
275
+ ifeq (_1,$(FORCE_SHARED_LIB)_$(BUILD_STATIC_LIBS))
276
+ SHARED_LIBRARY := $(NULL)
277
+ DEF_FILE := $(NULL)
278
+ IMPORT_LIBRARY := $(NULL)
279
+ endif
280
+
281
+ ifdef FORCE_STATIC_LIB
282
+ ifndef FORCE_SHARED_LIB
283
+ SHARED_LIBRARY := $(NULL)
284
+ DEF_FILE := $(NULL)
285
+ IMPORT_LIBRARY := $(NULL)
286
+ endif
287
+ endif
288
+
289
+ ifdef FORCE_SHARED_LIB
290
+ ifndef FORCE_STATIC_LIB
291
+ LIBRARY := $(NULL)
292
+ endif
293
+ endif
294
+
295
+ ifdef JAVA_LIBRARY_NAME
296
+ JAVA_LIBRARY := $(JAVA_LIBRARY_NAME).jar
297
+ endif
298
+
299
+ ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
300
+ ifndef GNU_CC
301
+
302
+ #
303
+ # Unless we're building SIMPLE_PROGRAMS, all C++ files share a PDB file per
304
+ # directory. For parallel builds, this PDB file is shared and locked by
305
+ # MSPDBSRV.EXE, starting with MSVC8 SP1. If you're using MSVC 7.1 or MSVC8
306
+ # without SP1, don't do parallel builds.
307
+ #
308
+ # The final PDB for libraries and programs is created by the linker and uses
309
+ # a different name from the single PDB file created by the compiler. See
310
+ # bug 462740.
311
+ #
312
+
313
+ ifdef SIMPLE_PROGRAMS
314
+ COMPILE_PDBFILE = $(basename $(@F)).pdb
315
+ else
316
+ COMPILE_PDBFILE = generated.pdb
317
+ endif
318
+
319
+ LINK_PDBFILE = $(basename $(@F)).pdb
320
+ ifdef MOZ_DEBUG
321
+ CODFILE=$(basename $(@F)).cod
322
+ endif
323
+
324
+ ifdef MOZ_MAPINFO
325
+ ifdef LIBRARY_NAME
326
+ MAPFILE=$(LIBRARY_NAME).map
327
+ else
328
+ MAPFILE=$(basename $(@F)).map
329
+ endif # LIBRARY_NAME
330
+ endif # MOZ_MAPINFO
331
+
332
+ ifdef DEFFILE
333
+ OS_LDFLAGS += -DEF:$(DEFFILE)
334
+ EXTRA_DEPS += $(DEFFILE)
335
+ endif
336
+
337
+ ifdef MAPFILE
338
+ OS_LDFLAGS += -MAP:$(MAPFILE)
339
+ #CFLAGS += -Fm$(MAPFILE)
340
+ #CXXFLAGS += -Fm$(MAPFILE)
341
+ endif
342
+
343
+ #ifdef CODFILE
344
+ #CFLAGS += -Fa$(CODFILE) -FAsc
345
+ #CFLAGS += -Fa$(CODFILE) -FAsc
346
+ #endif
347
+
348
+ endif # !GNU_CC
349
+
350
+ ifdef ENABLE_CXX_EXCEPTIONS
351
+ ifdef GNU_CC
352
+ CXXFLAGS += -fexceptions
353
+ else
354
+ ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
355
+ CXXFLAGS += -GX
356
+ else
357
+ CXXFLAGS += -EHsc
358
+ endif # _MSC_VER
359
+ endif # GNU_CC
360
+ endif # ENABLE_CXX_EXCEPTIONS
361
+ endif # WINNT
362
+
363
+ ifeq (,$(filter-out WINNT WINCE,$(HOST_OS_ARCH)))
364
+ HOST_PDBFILE=$(basename $(@F)).pdb
365
+ endif
366
+
367
+ ifndef TARGETS
368
+ TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(PROGRAM) $(SIMPLE_PROGRAMS) $(HOST_LIBRARY) $(HOST_PROGRAM) $(HOST_SIMPLE_PROGRAMS) $(JAVA_LIBRARY)
369
+ endif
370
+
371
+ ifndef OBJS
372
+ _OBJS = \
373
+ $(JRI_STUB_CFILES) \
374
+ $(addsuffix .$(OBJ_SUFFIX), $(JMC_GEN)) \
375
+ $(CSRCS:.c=.$(OBJ_SUFFIX)) \
376
+ $(patsubst %.cc,%.$(OBJ_SUFFIX),$(CPPSRCS:.cpp=.$(OBJ_SUFFIX))) \
377
+ $(CMSRCS:.m=.$(OBJ_SUFFIX)) \
378
+ $(CMMSRCS:.mm=.$(OBJ_SUFFIX)) \
379
+ $(ASFILES:.$(ASM_SUFFIX)=.$(OBJ_SUFFIX))
380
+ OBJS = $(strip $(_OBJS))
381
+ endif
382
+
383
+ ifndef HOST_OBJS
384
+ _HOST_OBJS = \
385
+ $(addprefix host_,$(HOST_CSRCS:.c=.$(OBJ_SUFFIX))) \
386
+ $(addprefix host_,$(patsubst %.cc,%.$(OBJ_SUFFIX),$(HOST_CPPSRCS:.cpp=.$(OBJ_SUFFIX)))) \
387
+ $(addprefix host_,$(HOST_CMSRCS:.m=.$(OBJ_SUFFIX))) \
388
+ $(addprefix host_,$(HOST_CMMSRCS:.mm=.$(OBJ_SUFFIX)))
389
+ HOST_OBJS = $(strip $(_HOST_OBJS))
390
+ endif
391
+
392
+ LIBOBJS := $(addprefix \", $(OBJS))
393
+ LIBOBJS := $(addsuffix \", $(LIBOBJS))
394
+
395
+ ifndef MOZ_AUTO_DEPS
396
+ ifneq (,$(OBJS)$(XPIDLSRCS)$(SDK_XPIDLSRCS)$(SIMPLE_PROGRAMS))
397
+ MDDEPFILES = $(addprefix $(MDDEPDIR)/,$(OBJS:.$(OBJ_SUFFIX)=.pp))
398
+ ifndef NO_GEN_XPT
399
+ MDDEPFILES += $(addprefix $(MDDEPDIR)/,$(XPIDLSRCS:.idl=.xpt)) \
400
+ $(addprefix $(MDDEPDIR)/,$(SDK_XPIDLSRCS:.idl=.xpt))
401
+ endif
402
+ endif
403
+ endif
404
+
405
+ ALL_TRASH = \
406
+ $(GARBAGE) $(TARGETS) $(OBJS) $(PROGOBJS) LOGS TAGS a.out \
407
+ $(filter-out $(ASFILES),$(OBJS:.$(OBJ_SUFFIX)=.s)) $(OBJS:.$(OBJ_SUFFIX)=.ii) \
408
+ $(OBJS:.$(OBJ_SUFFIX)=.i) \
409
+ $(HOST_PROGOBJS) $(HOST_OBJS) $(IMPORT_LIBRARY) $(DEF_FILE)\
410
+ $(EXE_DEF_FILE) so_locations _gen _stubs $(wildcard *.res) $(wildcard *.RES) \
411
+ $(wildcard *.pdb) $(CODFILE) $(MAPFILE) $(IMPORT_LIBRARY) \
412
+ $(SHARED_LIBRARY:$(DLL_SUFFIX)=.exp) $(wildcard *.ilk) \
413
+ $(PROGRAM:$(BIN_SUFFIX)=.exp) $(SIMPLE_PROGRAMS:$(BIN_SUFFIX)=.exp) \
414
+ $(PROGRAM:$(BIN_SUFFIX)=.lib) $(SIMPLE_PROGRAMS:$(BIN_SUFFIX)=.lib) \
415
+ $(SIMPLE_PROGRAMS:$(BIN_SUFFIX)=.$(OBJ_SUFFIX)) \
416
+ $(wildcard gts_tmp_*) $(LIBRARY:%.a=.%.timestamp)
417
+ ALL_TRASH_DIRS = \
418
+ $(GARBAGE_DIRS) /no-such-file
419
+
420
+ ifdef QTDIR
421
+ GARBAGE += $(MOCSRCS)
422
+ endif
423
+
424
+ ifdef SIMPLE_PROGRAMS
425
+ GARBAGE += $(SIMPLE_PROGRAMS:%=%.$(OBJ_SUFFIX))
426
+ endif
427
+
428
+ ifdef HOST_SIMPLE_PROGRAMS
429
+ GARBAGE += $(HOST_SIMPLE_PROGRAMS:%=%.$(OBJ_SUFFIX))
430
+ endif
431
+
432
+ #
433
+ # the Solaris WorkShop template repository cache. it occasionally can get
434
+ # out of sync, so targets like clobber should kill it.
435
+ #
436
+ ifeq ($(SOLARIS_SUNPRO_CXX),1)
437
+ GARBAGE_DIRS += SunWS_cache
438
+ endif
439
+
440
+ ifeq ($(OS_ARCH),OpenVMS)
441
+ GARBAGE += $(wildcard *.*_defines)
442
+ ifdef SHARED_LIBRARY
443
+ VMS_SYMVEC_FILE = $(SHARED_LIBRARY:$(DLL_SUFFIX)=_symvec.opt)
444
+ ifdef MOZ_DEBUG
445
+ VMS_SYMVEC_FILE_MODULE = $(topsrcdir)/build/unix/vms/$(notdir $(SHARED_LIBRARY:$(DLL_SUFFIX)=_dbg_symvec.opt))
446
+ else
447
+ VMS_SYMVEC_FILE_MODULE = $(topsrcdir)/build/unix/vms/$(notdir $(SHARED_LIBRARY:$(DLL_SUFFIX)=_symvec.opt))
448
+ endif
449
+ VMS_SYMVEC_FILE_COMP = $(topsrcdir)/build/unix/vms/component_symvec.opt
450
+ GARBAGE += $(VMS_SYMVEC_FILE)
451
+ ifdef IS_COMPONENT
452
+ DSO_LDOPTS := $(filter-out -auto_symvec,$(DSO_LDOPTS)) $(VMS_SYMVEC_FILE)
453
+ endif
454
+ endif
455
+ endif
456
+
457
+ XPIDL_GEN_DIR = _xpidlgen
458
+
459
+ ifdef MOZ_UPDATE_XTERM
460
+ # Its good not to have a newline at the end of the titlebar string because it
461
+ # makes the make -s output easier to read. Echo -n does not work on all
462
+ # platforms, but we can trick sed into doing it.
463
+ UPDATE_TITLE = sed -e "s!Y!$@ in $(shell $(BUILD_TOOLS)/print-depth-path.sh)/$(dir)!" $(MOZILLA_DIR)/config/xterm.str;
464
+ UPDATE_TITLE_export = sed -e "s!Y!export in $(shell $(BUILD_TOOLS)/print-depth-path.sh)/$*!" $(MOZILLA_DIR)/config/xterm.str;
465
+ UPDATE_TITLE_libs = sed -e "s!Y!libs in $(shell $(BUILD_TOOLS)/print-depth-path.sh)/$*!" $(MOZILLA_DIR)/config/xterm.str;
466
+ UPDATE_TITLE_tools = sed -e "s!Y!tools in $(shell $(BUILD_TOOLS)/print-depth-path.sh)/$*!" $(MOZILLA_DIR)/config/xterm.str;
467
+ endif
468
+
469
+ ifneq (,$(strip $(DIRS)))
470
+ LOOP_OVER_DIRS = \
471
+ @$(EXIT_ON_ERROR) \
472
+ $(foreach dir,$(DIRS),$(UPDATE_TITLE) $(MAKE) -C $(dir) $@; )
473
+ endif
474
+
475
+ # we only use this for the makefiles target and other stuff that doesn't matter
476
+ ifneq (,$(strip $(PARALLEL_DIRS)))
477
+ LOOP_OVER_PARALLEL_DIRS = \
478
+ @$(EXIT_ON_ERROR) \
479
+ $(foreach dir,$(PARALLEL_DIRS),$(UPDATE_TITLE) $(MAKE) -C $(dir) $@; )
480
+ endif
481
+
482
+ ifneq (,$(strip $(STATIC_DIRS)))
483
+ LOOP_OVER_STATIC_DIRS = \
484
+ @$(EXIT_ON_ERROR) \
485
+ $(foreach dir,$(STATIC_DIRS),$(UPDATE_TITLE) $(MAKE) -C $(dir) $@; )
486
+ endif
487
+
488
+ ifneq (,$(strip $(TOOL_DIRS)))
489
+ LOOP_OVER_TOOL_DIRS = \
490
+ @$(EXIT_ON_ERROR) \
491
+ $(foreach dir,$(TOOL_DIRS),$(UPDATE_TITLE) $(MAKE) -C $(dir) $@; )
492
+ endif
493
+
494
+ ifdef PARALLEL_DIRS
495
+ # create a bunch of fake targets for order-only processing
496
+ PARALLEL_DIRS_export = $(addsuffix _export,$(PARALLEL_DIRS))
497
+ PARALLEL_DIRS_libs = $(addsuffix _libs,$(PARALLEL_DIRS))
498
+ PARALLEL_DIRS_tools = $(addsuffix _tools,$(PARALLEL_DIRS))
499
+
500
+ .PHONY: $(PARALLEL_DIRS_export) $(PARALLEL_DIRS_libs) $(PARALLEL_DIRS_tools)
501
+ endif
502
+
503
+ #
504
+ # Now we can differentiate between objects used to build a library, and
505
+ # objects used to build an executable in the same directory.
506
+ #
507
+ ifndef PROGOBJS
508
+ PROGOBJS = $(OBJS)
509
+ endif
510
+
511
+ ifndef HOST_PROGOBJS
512
+ HOST_PROGOBJS = $(HOST_OBJS)
513
+ endif
514
+
515
+ # MAKE_DIRS: List of directories to build while looping over directories.
516
+ # A Makefile that needs $(MDDEPDIR) created but doesn't set any of these
517
+ # variables we know to check can just set NEED_MDDEPDIR explicitly.
518
+ ifneq (,$(OBJS)$(XPIDLSRCS)$(SDK_XPIDLSRCS)$(SIMPLE_PROGRAMS)$(NEED_MDDEPDIR))
519
+ MAKE_DIRS += $(CURDIR)/$(MDDEPDIR)
520
+ GARBAGE_DIRS += $(MDDEPDIR)
521
+ endif
522
+
523
+ #
524
+ # Tags: emacs (etags), vi (ctags)
525
+ # TAG_PROGRAM := ctags -L -
526
+ #
527
+ TAG_PROGRAM = xargs etags -a
528
+
529
+ #
530
+ # Turn on C++ linking if we have any .cpp or .mm files
531
+ # (moved this from config.mk so that config.mk can be included
532
+ # before the CPPSRCS are defined)
533
+ #
534
+ ifneq ($(CPPSRCS)$(CMMSRCS),)
535
+ CPP_PROG_LINK = 1
536
+ endif
537
+
538
+ #
539
+ # Make sure to wrap static libs inside linker specific flags to turn on & off
540
+ # inclusion of all symbols inside the static libs
541
+ #
542
+ ifndef NO_LD_ARCHIVE_FLAGS
543
+ ifdef SHARED_LIBRARY_LIBS
544
+ EXTRA_DSO_LDOPTS := $(MKSHLIB_FORCE_ALL) $(SHARED_LIBRARY_LIBS) $(MKSHLIB_UNFORCE_ALL) $(EXTRA_DSO_LDOPTS)
545
+ endif
546
+ endif
547
+
548
+ #
549
+ # This will strip out symbols that the component should not be
550
+ # exporting from the .dynsym section.
551
+ #
552
+ ifdef IS_COMPONENT
553
+ EXTRA_DSO_LDOPTS += $(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
554
+ endif # IS_COMPONENT
555
+
556
+ #
557
+ # Enforce the requirement that MODULE_NAME must be set
558
+ # for components in static builds
559
+ #
560
+ ifdef IS_COMPONENT
561
+ ifdef EXPORT_LIBRARY
562
+ ifndef FORCE_SHARED_LIB
563
+ ifndef MODULE_NAME
564
+ $(error MODULE_NAME is required for components which may be used in static builds)
565
+ endif
566
+ endif
567
+ endif
568
+ endif
569
+
570
+ #
571
+ # MacOS X specific stuff
572
+ #
573
+
574
+ ifeq ($(OS_ARCH),Darwin)
575
+ ifdef SHARED_LIBRARY
576
+ ifdef IS_COMPONENT
577
+ EXTRA_DSO_LDOPTS += -bundle
578
+ else
579
+ EXTRA_DSO_LDOPTS += -dynamiclib -install_name @executable_path/$(SHARED_LIBRARY) -compatibility_version 1 -current_version 1 -single_module
580
+ endif
581
+ endif
582
+ endif
583
+
584
+ #
585
+ # On NetBSD a.out systems, use -Bsymbolic. This fixes what would otherwise be
586
+ # fatal symbol name clashes between components.
587
+ #
588
+ ifeq ($(OS_ARCH),NetBSD)
589
+ ifeq ($(DLL_SUFFIX),.so.1.0)
590
+ ifdef IS_COMPONENT
591
+ EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
592
+ endif
593
+ endif
594
+ endif
595
+
596
+ ifeq ($(OS_ARCH),FreeBSD)
597
+ ifdef IS_COMPONENT
598
+ EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
599
+ endif
600
+ endif
601
+
602
+ ifeq ($(OS_ARCH),NetBSD)
603
+ ifneq (,$(filter arc cobalt hpcmips mipsco newsmips pmax sgimips,$(OS_TEST)))
604
+ ifeq ($(MODULE),layout)
605
+ OS_CFLAGS += -Wa,-xgot
606
+ OS_CXXFLAGS += -Wa,-xgot
607
+ endif
608
+ endif
609
+ endif
610
+
611
+ ifeq ($(OS_ARCH),Linux)
612
+ ifneq (,$(filter mips mipsel,$(OS_TEST)))
613
+ ifeq ($(MODULE),layout)
614
+ OS_CFLAGS += -Wa,-xgot
615
+ OS_CXXFLAGS += -Wa,-xgot
616
+ endif
617
+ endif
618
+ endif
619
+
620
+ #
621
+ # HP-UXBeOS specific section: for COMPONENTS only, add -Bsymbolic flag
622
+ # which uses internal symbols first
623
+ #
624
+ ifeq ($(OS_ARCH),HP-UX)
625
+ ifdef IS_COMPONENT
626
+ ifeq ($(GNU_CC)$(GNU_CXX),)
627
+ EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
628
+ ifneq ($(HAS_EXTRAEXPORTS),1)
629
+ MKSHLIB += -Wl,+eNSGetModule -Wl,+eerrno
630
+ MKCSHLIB += +eNSGetModule +eerrno
631
+ ifneq ($(OS_TEST),ia64)
632
+ MKSHLIB += -Wl,+e_shlInit
633
+ MKCSHLIB += +e_shlInit
634
+ endif # !ia64
635
+ endif # !HAS_EXTRAEXPORTS
636
+ endif # non-gnu compilers
637
+ endif # IS_COMPONENT
638
+ endif # HP-UX
639
+
640
+ ifeq ($(OS_ARCH),AIX)
641
+ ifdef IS_COMPONENT
642
+ ifneq ($(HAS_EXTRAEXPORTS),1)
643
+ MKSHLIB += -bE:$(MOZILLA_DIR)/build/unix/aix.exp -bnoexpall
644
+ MKCSHLIB += -bE:$(MOZILLA_DIR)/build/unix/aix.exp -bnoexpall
645
+ endif # HAS_EXTRAEXPORTS
646
+ endif # IS_COMPONENT
647
+ endif # AIX
648
+
649
+ #
650
+ # OSF1: add -B symbolic flag for components
651
+ #
652
+ ifeq ($(OS_ARCH),OSF1)
653
+ ifdef IS_COMPONENT
654
+ ifeq ($(GNU_CC)$(GNU_CXX),)
655
+ EXTRA_DSO_LDOPTS += -B symbolic
656
+ endif
657
+ endif
658
+ endif
659
+
660
+ #
661
+ # Linux: add -Bsymbolic flag for components
662
+ #
663
+ ifeq ($(OS_ARCH),Linux)
664
+ ifdef IS_COMPONENT
665
+ EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
666
+ endif
667
+ endif
668
+
669
+ #
670
+ # MINGW32
671
+ #
672
+ ifeq ($(OS_ARCH),WINNT)
673
+ ifdef GNU_CC
674
+ ifndef IS_COMPONENT
675
+ DSO_LDOPTS += -Wl,--out-implib -Wl,$(IMPORT_LIBRARY)
676
+ endif
677
+ endif
678
+ endif
679
+
680
+ ifeq ($(USE_TVFS),1)
681
+ IFLAGS1 = -rb
682
+ IFLAGS2 = -rb
683
+ else
684
+ IFLAGS1 = -m 644
685
+ IFLAGS2 = -m 755
686
+ endif
687
+
688
+ ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
689
+ OUTOPTION = -Fo# eol
690
+ else
691
+ OUTOPTION = -o # eol
692
+ endif # WINNT && !GNU_CC
693
+ ifneq (,$(filter WINCE,$(OS_ARCH)))
694
+ OUTOPTION = -Fo# eol
695
+ endif
696
+
697
+ ifeq ($(OS_TARGET), WINCE)
698
+ OUTOPTION = -Fo# eol
699
+ HOST_OUTOPTION = -Fo# eol
700
+ else
701
+
702
+ ifeq (,$(CROSS_COMPILE))
703
+ HOST_OUTOPTION = $(OUTOPTION)
704
+ else
705
+ HOST_OUTOPTION = -o # eol
706
+ endif
707
+
708
+ endif
709
+ ################################################################################
710
+
711
+ # SUBMAKEFILES: List of Makefiles for next level down.
712
+ # This is used to update or create the Makefiles before invoking them.
713
+ SUBMAKEFILES += $(addsuffix /Makefile, $(DIRS) $(TOOL_DIRS) $(PARALLEL_DIRS))
714
+
715
+ # The root makefile doesn't want to do a plain export/libs, because
716
+ # of the tiers and because of libxul. Suppress the default rules in favor
717
+ # of something else. Makefiles which use this var *must* provide a sensible
718
+ # default rule before including rules.mk
719
+ ifndef SUPPRESS_DEFAULT_RULES
720
+ ifdef TIERS
721
+ default all alldep::
722
+ $(EXIT_ON_ERROR) \
723
+ $(foreach tier,$(TIERS),$(MAKE) tier_$(tier); ) true
724
+
725
+ else
726
+
727
+ default all::
728
+ ifneq (,$(strip $(STATIC_DIRS)))
729
+ $(foreach dir,$(STATIC_DIRS),$(MAKE) -C $(dir); )
730
+ endif
731
+ $(MAKE) export
732
+ $(MAKE) libs
733
+ $(MAKE) tools
734
+
735
+ # Do depend as well
736
+ alldep::
737
+ $(MAKE) export
738
+ $(MAKE) depend
739
+ $(MAKE) libs
740
+ $(MAKE) tools
741
+
742
+ endif # TIERS
743
+ endif # SUPPRESS_DEFAULT_RULES
744
+
745
+ ifeq ($(filter s,$(MAKEFLAGS)),)
746
+ ECHO := echo
747
+ QUIET :=
748
+ else
749
+ ECHO := true
750
+ QUIET := -q
751
+ endif
752
+
753
+ MAKE_TIER_SUBMAKEFILES = +$(if $(tier_$*_dirs),$(MAKE) $(addsuffix /Makefile,$(tier_$*_dirs)))
754
+
755
+ export_tier_%:
756
+ @$(ECHO) "$@"
757
+ @$(MAKE_TIER_SUBMAKEFILES)
758
+ @$(EXIT_ON_ERROR) \
759
+ $(foreach dir,$(tier_$*_dirs),$(MAKE) -C $(dir) export; ) true
760
+
761
+ libs_tier_%:
762
+ @$(ECHO) "$@"
763
+ @$(MAKE_TIER_SUBMAKEFILES)
764
+ @$(EXIT_ON_ERROR) \
765
+ $(foreach dir,$(tier_$*_dirs),$(MAKE) -C $(dir) libs; ) true
766
+
767
+ tools_tier_%:
768
+ @$(ECHO) "$@"
769
+ @$(MAKE_TIER_SUBMAKEFILES)
770
+ @$(EXIT_ON_ERROR) \
771
+ $(foreach dir,$(tier_$*_dirs),$(MAKE) -C $(dir) tools; ) true
772
+
773
+ $(foreach tier,$(TIERS),tier_$(tier))::
774
+ @$(ECHO) "$@: $($@_staticdirs) $($@_dirs)"
775
+ @$(EXIT_ON_ERROR) \
776
+ $(foreach dir,$($@_staticdirs),$(MAKE) -C $(dir); ) true
777
+ $(MAKE) export_$@
778
+ $(MAKE) libs_$@
779
+
780
+ # Do everything from scratch
781
+ everything::
782
+ $(MAKE) clean
783
+ $(MAKE) alldep
784
+
785
+ # Add dummy depend target for tinderboxes
786
+ depend::
787
+
788
+ ifdef ALL_PLATFORMS
789
+ all_platforms:: $(NFSPWD)
790
+ @d=`$(NFSPWD)`; \
791
+ if test ! -d LOGS; then rm -rf LOGS; mkdir LOGS; else true; fi; \
792
+ for h in $(PLATFORM_HOSTS); do \
793
+ echo "On $$h: $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log";\
794
+ rsh $$h -n "(chdir $$d; \
795
+ $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log; \
796
+ echo DONE) &" 2>&1 > LOGS/$$h.pid & \
797
+ sleep 1; \
798
+ done
799
+
800
+ $(NFSPWD):
801
+ cd $(@D); $(MAKE) $(@F)
802
+ endif
803
+
804
+ # Target to only regenerate makefiles
805
+ makefiles: $(SUBMAKEFILES)
806
+ ifneq (,$(DIRS)$(TOOL_DIRS)$(PARALLEL_DIRS))
807
+ +$(LOOP_OVER_PARALLEL_DIRS)
808
+ +$(LOOP_OVER_DIRS)
809
+ +$(LOOP_OVER_TOOL_DIRS)
810
+ endif
811
+
812
+ ifdef PARALLEL_DIRS
813
+ export:: $(PARALLEL_DIRS_export)
814
+
815
+ $(PARALLEL_DIRS_export): %_export: %/Makefile
816
+ +@$(UPDATE_TITLE_export) $(MAKE) -C $* export
817
+ endif
818
+
819
+ export:: $(SUBMAKEFILES) $(MAKE_DIRS) $(if $(EXPORTS)$(XPIDLSRCS)$(SDK_HEADERS)$(SDK_XPIDLSRCS),$(PUBLIC)) $(if $(SDK_HEADERS)$(SDK_XPIDLSRCS),$(SDK_PUBLIC)) $(if $(XPIDLSRCS),$(IDL_DIR)) $(if $(SDK_XPIDLSRCS),$(SDK_IDL_DIR))
820
+ +$(LOOP_OVER_DIRS)
821
+ +$(LOOP_OVER_TOOL_DIRS)
822
+
823
+ ifdef PARALLEL_DIRS
824
+ tools:: $(PARALLEL_DIRS_tools)
825
+
826
+ $(PARALLEL_DIRS_tools): %_tools: %/Makefile
827
+ +@$(UPDATE_TITLE_tools) $(MAKE) -C $* tools
828
+ endif
829
+
830
+ tools:: $(SUBMAKEFILES) $(MAKE_DIRS)
831
+ +$(LOOP_OVER_DIRS)
832
+ ifneq (,$(strip $(TOOL_DIRS)))
833
+ @$(EXIT_ON_ERROR) \
834
+ $(foreach dir,$(TOOL_DIRS),$(UPDATE_TITLE) $(MAKE) -C $(dir) libs; )
835
+ endif
836
+
837
+ #
838
+ # Rule to create list of libraries for final link
839
+ #
840
+ export::
841
+ ifdef LIBRARY_NAME
842
+ ifdef EXPORT_LIBRARY
843
+ ifdef IS_COMPONENT
844
+ ifdef BUILD_STATIC_LIBS
845
+ @$(PERL) -I$(MOZILLA_DIR)/config $(MOZILLA_DIR)/config/build-list.pl $(FINAL_LINK_COMPS) $(LIBRARY_NAME)
846
+ ifdef MODULE_NAME
847
+ @$(PERL) -I$(MOZILLA_DIR)/config $(MOZILLA_DIR)/config/build-list.pl $(FINAL_LINK_COMP_NAMES) $(MODULE_NAME)
848
+ endif
849
+ endif
850
+ else
851
+ $(PERL) -I$(MOZILLA_DIR)/config $(MOZILLA_DIR)/config/build-list.pl $(FINAL_LINK_LIBS) $(LIBRARY_NAME)
852
+ endif # IS_COMPONENT
853
+ endif # EXPORT_LIBRARY
854
+ endif # LIBRARY_NAME
855
+
856
+ # Create dependencies on static (and shared EXTRA_DSO_LIBS) libraries
857
+ LIBS_DEPS = $(filter %.$(LIB_SUFFIX), $(LIBS))
858
+ HOST_LIBS_DEPS = $(filter %.$(LIB_SUFFIX), $(HOST_LIBS))
859
+ DSO_LDOPTS_DEPS = $(EXTRA_DSO_LIBS) $(filter %.$(LIB_SUFFIX), $(EXTRA_DSO_LDOPTS))
860
+
861
+ # Dependancies which, if modified, should cause everything to rebuild
862
+ GLOBAL_DEPS += Makefile Makefile.in $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk
863
+
864
+ ##############################################
865
+ ifdef PARALLEL_DIRS
866
+ libs:: $(PARALLEL_DIRS_libs)
867
+
868
+ $(PARALLEL_DIRS_libs): %_libs: %/Makefile
869
+ +@$(UPDATE_TITLE_libs) $(MAKE) -C $* libs
870
+ endif
871
+
872
+ libs:: $(SUBMAKEFILES) $(MAKE_DIRS) $(HOST_LIBRARY) $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) $(HOST_PROGRAM) $(PROGRAM) $(HOST_SIMPLE_PROGRAMS) $(SIMPLE_PROGRAMS) $(JAVA_LIBRARY)
873
+ ifndef NO_DIST_INSTALL
874
+ ifdef LIBRARY
875
+ ifdef EXPORT_LIBRARY # Stage libs that will be linked into a static build
876
+ ifdef IS_COMPONENT
877
+ $(INSTALL) $(IFLAGS1) $(LIBRARY) $(DEPTH)/staticlib/components
878
+ else
879
+ $(INSTALL) $(IFLAGS1) $(LIBRARY) $(DEPTH)/staticlib
880
+ endif
881
+ endif # EXPORT_LIBRARY
882
+ ifdef DIST_INSTALL
883
+ ifdef IS_COMPONENT
884
+ $(error Shipping static component libs makes no sense.)
885
+ else
886
+ $(INSTALL) $(IFLAGS1) $(LIBRARY) $(DIST)/lib
887
+ endif
888
+ endif # DIST_INSTALL
889
+ endif # LIBRARY
890
+ ifdef SHARED_LIBRARY
891
+ ifdef IS_COMPONENT
892
+ $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET)/components
893
+ $(ELF_DYNSTR_GC) $(FINAL_TARGET)/components/$(SHARED_LIBRARY)
894
+ ifdef BEOS_ADDON_WORKAROUND
895
+ ( cd $(FINAL_TARGET)/components && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) )
896
+ endif
897
+ else # ! IS_COMPONENT
898
+ ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH)))
899
+ $(INSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(DIST)/lib
900
+ else
901
+ $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(DIST)/lib
902
+ endif
903
+ $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET)
904
+ ifdef BEOS_ADDON_WORKAROUND
905
+ ( cd $(FINAL_TARGET) && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) )
906
+ endif
907
+ endif # IS_COMPONENT
908
+ endif # SHARED_LIBRARY
909
+ ifdef PROGRAM
910
+ $(INSTALL) $(IFLAGS2) $(PROGRAM) $(FINAL_TARGET)
911
+ endif
912
+ ifdef SIMPLE_PROGRAMS
913
+ $(INSTALL) $(IFLAGS2) $(SIMPLE_PROGRAMS) $(FINAL_TARGET)
914
+ endif
915
+ ifdef HOST_PROGRAM
916
+ $(INSTALL) $(IFLAGS2) $(HOST_PROGRAM) $(DIST)/host/bin
917
+ endif
918
+ ifdef HOST_SIMPLE_PROGRAMS
919
+ $(INSTALL) $(IFLAGS2) $(HOST_SIMPLE_PROGRAMS) $(DIST)/host/bin
920
+ endif
921
+ ifdef HOST_LIBRARY
922
+ $(INSTALL) $(IFLAGS1) $(HOST_LIBRARY) $(DIST)/host/lib
923
+ endif
924
+ ifdef JAVA_LIBRARY
925
+ ifdef IS_COMPONENT
926
+ $(INSTALL) $(IFLAGS1) $(JAVA_LIBRARY) $(FINAL_TARGET)/components
927
+ else
928
+ $(INSTALL) $(IFLAGS1) $(JAVA_LIBRARY) $(FINAL_TARGET)
929
+ endif
930
+ endif # JAVA_LIBRARY
931
+ endif # !NO_DIST_INSTALL
932
+ +$(LOOP_OVER_DIRS)
933
+
934
+ ##############################################
935
+
936
+ ifndef NO_PROFILE_GUIDED_OPTIMIZE
937
+ ifneq (,$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE))
938
+ ifeq ($(OS_ARCH)_$(GNU_CC)$(INTERNAL_TOOLS), WINNT_)
939
+ # Force re-linking when building with PGO, since
940
+ # the MSVC linker does all the work. We force re-link
941
+ # in both stages so you can do depend builds with PGO.
942
+ ifdef SHARED_LIBRARY
943
+ $(SHARED_LIBRARY): FORCE
944
+ endif
945
+ ifdef PROGRAM
946
+ $(PROGRAM): FORCE
947
+ endif
948
+
949
+ ifdef MOZ_PROFILE_USE
950
+ # In the second pass, we need to merge the pgc files into the pgd file.
951
+ # The compiler would do this for us automatically if they were in the right
952
+ # place, but they're in dist/bin.
953
+ ifneq (,$(SHARED_LIBRARY)$(PROGRAM))
954
+ export::
955
+ ifdef PROGRAM
956
+ $(PYTHON) $(topsrcdir)/build/win32/pgomerge.py \
957
+ $(PROGRAM:$(BIN_SUFFIX)=) $(DIST)/bin
958
+ endif
959
+ ifdef SHARED_LIBRARY
960
+ $(PYTHON) $(topsrcdir)/build/win32/pgomerge.py \
961
+ $(LIBRARY_NAME) $(DIST)/bin
962
+ endif
963
+ endif
964
+ endif # MOZ_PROFILE_USE
965
+ endif # WINNT_
966
+ endif # MOZ_PROFILE_GENERATE || MOZ_PROFILE_USE
967
+ endif # NO_PROFILE_GUIDED_OPTIMIZE
968
+
969
+ ##############################################
970
+
971
+ checkout:
972
+ $(MAKE) -C $(topsrcdir) -f client.mk checkout
973
+
974
+ run_viewer: $(FINAL_TARGET)/viewer
975
+ cd $(FINAL_TARGET); \
976
+ MOZILLA_FIVE_HOME=`pwd` \
977
+ LD_LIBRARY_PATH=".:$(LIBS_PATH):$$LD_LIBRARY_PATH" \
978
+ viewer
979
+
980
+ clean clobber realclean clobber_all:: $(SUBMAKEFILES)
981
+ -rm -f $(ALL_TRASH)
982
+ -rm -rf $(ALL_TRASH_DIRS)
983
+ +-$(LOOP_OVER_PARALLEL_DIRS)
984
+ +-$(LOOP_OVER_DIRS)
985
+ +-$(LOOP_OVER_STATIC_DIRS)
986
+ +-$(LOOP_OVER_TOOL_DIRS)
987
+
988
+ distclean:: $(SUBMAKEFILES)
989
+ +-$(LOOP_OVER_PARALLEL_DIRS)
990
+ +-$(LOOP_OVER_DIRS)
991
+ +-$(LOOP_OVER_STATIC_DIRS)
992
+ +-$(LOOP_OVER_TOOL_DIRS)
993
+ -rm -rf $(ALL_TRASH_DIRS)
994
+ -rm -f $(ALL_TRASH) \
995
+ Makefile .HSancillary \
996
+ $(wildcard *.$(OBJ_SUFFIX)) $(wildcard *.ho) $(wildcard host_*.o*) \
997
+ $(wildcard *.$(LIB_SUFFIX)) $(wildcard *$(DLL_SUFFIX)) \
998
+ $(wildcard *.$(IMPORT_LIB_SUFFIX))
999
+ ifeq ($(OS_ARCH),OS2)
1000
+ -rm -f $(PROGRAM:.exe=.map)
1001
+ endif
1002
+
1003
+ alltags:
1004
+ rm -f TAGS
1005
+ find $(topsrcdir) -name dist -prune -o \( -name '*.[hc]' -o -name '*.cp' -o -name '*.cpp' -o -name '*.idl' \) -print | $(TAG_PROGRAM)
1006
+
1007
+ #
1008
+ # PROGRAM = Foo
1009
+ # creates OBJS, links with LIBS to create Foo
1010
+ #
1011
+ $(PROGRAM): $(PROGOBJS) $(LIBS_DEPS) $(EXTRA_DEPS) $(EXE_DEF_FILE) $(RESFILE) $(GLOBAL_DEPS)
1012
+ ifeq (WINCE,$(OS_ARCH))
1013
+ $(LD) -NOLOGO -OUT:$@ $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
1014
+ else
1015
+ ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
1016
+ $(LD) -NOLOGO -OUT:$@ -PDB:$(LINK_PDBFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
1017
+ ifdef MSMANIFEST_TOOL
1018
+ @if test -f $@.manifest; then \
1019
+ if test -f "$(srcdir)/$@.manifest"; then \
1020
+ mt.exe -NOLOGO -MANIFEST "$(win_srcdir)/$@.manifest" $@.manifest -OUTPUTRESOURCE:$@\;1; \
1021
+ else \
1022
+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
1023
+ fi; \
1024
+ rm -f $@.manifest; \
1025
+ fi
1026
+ endif # MSVC with manifest tool
1027
+ else
1028
+ ifeq ($(CPP_PROG_LINK),1)
1029
+ $(CCC) -o $@ $(CXXFLAGS) $(WRAP_MALLOC_CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(SOLARIS_JEMALLOC_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(EXE_DEF_FILE)
1030
+ else # ! CPP_PROG_LINK
1031
+ $(CC) -o $@ $(CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(SOLARIS_JEMALLOC_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(EXE_DEF_FILE)
1032
+ endif # CPP_PROG_LINK
1033
+ endif # WINNT && !GNU_CC
1034
+ endif # WINCE
1035
+
1036
+ ifdef ENABLE_STRIP
1037
+ $(STRIP) $@
1038
+ endif
1039
+ ifdef MOZ_POST_PROGRAM_COMMAND
1040
+ $(MOZ_POST_PROGRAM_COMMAND) $@
1041
+ endif
1042
+ ifeq ($(OS_ARCH),BeOS)
1043
+ ifdef BEOS_PROGRAM_RESOURCE
1044
+ xres -o $@ $(BEOS_PROGRAM_RESOURCE)
1045
+ mimeset $@
1046
+ endif
1047
+ endif # BeOS
1048
+
1049
+ $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) $(GLOBAL_DEPS)
1050
+ ifeq (WINCE,$(OS_ARCH))
1051
+ $(HOST_LD) -NOLOGO -OUT:$@ $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1052
+ else
1053
+ ifeq (_WINNT,$(GNU_CC)_$(HOST_OS_ARCH))
1054
+ $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(HOST_PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1055
+ ifdef MSMANIFEST_TOOL
1056
+ @if test -f $@.manifest; then \
1057
+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
1058
+ rm -f $@.manifest; \
1059
+ fi
1060
+ endif # MSVC with manifest tool
1061
+ else
1062
+ ifeq ($(CPP_PROG_LINK),1)
1063
+ $(HOST_CXX) -o $@ $(HOST_CXXFLAGS) $(HOST_LDFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1064
+ else
1065
+ $(HOST_CC) -o $@ $(HOST_CFLAGS) $(HOST_LDFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1066
+ endif # CPP_PROG_LINK
1067
+ endif
1068
+ endif
1069
+
1070
+ #
1071
+ # This is an attempt to support generation of multiple binaries
1072
+ # in one directory, it assumes everything to compile Foo is in
1073
+ # Foo.o (from either Foo.c or Foo.cpp).
1074
+ #
1075
+ # SIMPLE_PROGRAMS = Foo Bar
1076
+ # creates Foo.o Bar.o, links with LIBS to create Foo, Bar.
1077
+ #
1078
+ $(SIMPLE_PROGRAMS): %$(BIN_SUFFIX): %.$(OBJ_SUFFIX) $(LIBS_DEPS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
1079
+ ifeq (WINCE,$(OS_ARCH))
1080
+ $(LD) -nologo -entry:main -out:$@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
1081
+ else
1082
+ ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
1083
+ $(LD) -nologo -out:$@ -pdb:$(LINK_PDBFILE) $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
1084
+ ifdef MSMANIFEST_TOOL
1085
+ @if test -f $@.manifest; then \
1086
+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
1087
+ rm -f $@.manifest; \
1088
+ fi
1089
+ endif # MSVC with manifest tool
1090
+ else
1091
+ ifeq ($(CPP_PROG_LINK),1)
1092
+ $(CCC) $(WRAP_MALLOC_CFLAGS) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(SOLARIS_JEMALLOC_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(BIN_FLAGS)
1093
+ else
1094
+ $(CC) $(WRAP_MALLOC_CFLAGS) $(CFLAGS) $(OUTOPTION)$@ $< $(WIN32_EXE_LDFLAGS) $(SOLARIS_JEMALLOC_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(BIN_FLAGS)
1095
+ endif # CPP_PROG_LINK
1096
+ endif # WINNT && !GNU_CC
1097
+ endif # WINCE
1098
+
1099
+ ifdef ENABLE_STRIP
1100
+ $(STRIP) $@
1101
+ endif
1102
+ ifdef MOZ_POST_PROGRAM_COMMAND
1103
+ $(MOZ_POST_PROGRAM_COMMAND) $@
1104
+ endif
1105
+
1106
+ $(HOST_SIMPLE_PROGRAMS): host_%$(HOST_BIN_SUFFIX): host_%.$(OBJ_SUFFIX) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) $(GLOBAL_DEPS)
1107
+ ifeq (WINCE,$(OS_ARCH))
1108
+ $(HOST_LD) -NOLOGO -OUT:$@ $(WIN32_EXE_LDFLAGS) $< $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1109
+ else
1110
+ ifeq (WINNT_,$(HOST_OS_ARCH)_$(GNU_CC))
1111
+ $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(HOST_PDBFILE) $< $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1112
+ else
1113
+ ifneq (,$(HOST_CPPSRCS)$(USE_HOST_CXX))
1114
+ $(HOST_CXX) $(HOST_OUTOPTION)$@ $(HOST_CXXFLAGS) $(INCLUDES) $< $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1115
+ else
1116
+ $(HOST_CC) $(HOST_OUTOPTION)$@ $(HOST_CFLAGS) $(INCLUDES) $< $(HOST_LIBS) $(HOST_EXTRA_LIBS)
1117
+ endif
1118
+ endif
1119
+ endif
1120
+
1121
+ #
1122
+ # Purify target. Solaris/sparc only to start.
1123
+ # Purify does not recognize "egcs" or "c++" so we go with
1124
+ # "gcc" and "g++" for now.
1125
+ #
1126
+ pure: $(PROGRAM)
1127
+ ifeq ($(CPP_PROG_LINK),1)
1128
+ $(PURIFY) $(CCC) -o $^.pure $(CXXFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS)
1129
+ else
1130
+ $(PURIFY) $(CC) -o $^.pure $(CFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS)
1131
+ endif
1132
+ ifndef NO_DIST_INSTALL
1133
+ $(INSTALL) $(IFLAGS2) $^.pure $(FINAL_TARGET)
1134
+ endif
1135
+
1136
+ quantify: $(PROGRAM)
1137
+ ifeq ($(CPP_PROG_LINK),1)
1138
+ $(QUANTIFY) $(CCC) -o $^.quantify $(CXXFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS)
1139
+ else
1140
+ $(QUANTIFY) $(CC) -o $^.quantify $(CFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS)
1141
+ endif
1142
+ ifndef NO_DIST_INSTALL
1143
+ $(INSTALL) $(IFLAGS2) $^.quantify $(FINAL_TARGET)
1144
+ endif
1145
+
1146
+ #
1147
+ # This allows us to create static versions of the shared libraries
1148
+ # that are built using other static libraries. Confused...?
1149
+ #
1150
+ ifdef SHARED_LIBRARY_LIBS
1151
+ ifeq (,$(GNU_LD)$(filter-out OS2 WINNT WINCE, $(OS_ARCH)))
1152
+ ifneq (,$(BUILD_STATIC_LIBS)$(FORCE_STATIC_LIB))
1153
+ LOBJS += $(SHARED_LIBRARY_LIBS)
1154
+ endif
1155
+ else
1156
+ ifneq (,$(filter OSF1 BSD_OS FreeBSD NetBSD OpenBSD SunOS Darwin,$(OS_ARCH)))
1157
+ CLEANUP1 := | egrep -v '(________64ELEL_|__.SYMDEF)'
1158
+ CLEANUP2 := rm -f ________64ELEL_ __.SYMDEF
1159
+ else
1160
+ CLEANUP2 := true
1161
+ endif
1162
+ SUB_LOBJS = $(shell for lib in $(SHARED_LIBRARY_LIBS); do $(AR_LIST) $${lib} $(CLEANUP1); done;)
1163
+ endif
1164
+ endif
1165
+ ifdef MOZILLA_PROBE_LIBS
1166
+ PROBE_LOBJS = $(shell for lib in $(MOZILLA_PROBE_LIBS); do $(AR_LIST) $${lib} $(CLEANUP1); done;)
1167
+ endif
1168
+ ifdef DTRACE_PROBE_OBJ
1169
+ EXTRA_DEPS += $(DTRACE_PROBE_OBJ)
1170
+ endif
1171
+
1172
+ $(LIBRARY): $(OBJS) $(LOBJS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
1173
+ rm -f $@
1174
+ ifneq (,$(GNU_LD)$(filter-out OS2 WINNT WINCE, $(OS_ARCH)))
1175
+ ifdef SHARED_LIBRARY_LIBS
1176
+ @rm -f $(SUB_LOBJS)
1177
+ @for lib in $(SHARED_LIBRARY_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done
1178
+ endif
1179
+ endif
1180
+ $(AR) $(AR_FLAGS) $(OBJS) $(LOBJS) $(SUB_LOBJS)
1181
+ $(RANLIB) $@
1182
+ @rm -f foodummyfilefoo $(SUB_LOBJS)
1183
+
1184
+ ifeq (,$(filter-out WINNT WINCE, $(OS_ARCH)))
1185
+ $(IMPORT_LIBRARY): $(SHARED_LIBRARY)
1186
+ endif
1187
+
1188
+ ifeq ($(OS_ARCH),OS2)
1189
+ $(DEF_FILE): $(OBJS) $(SHARED_LIBRARY_LIBS)
1190
+ rm -f $@
1191
+ echo LIBRARY $(LIBRARY_NAME) INITINSTANCE TERMINSTANCE > $@
1192
+ echo PROTMODE >> $@
1193
+ echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@
1194
+ echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@
1195
+ echo EXPORTS >> $@
1196
+ ifeq ($(IS_COMPONENT),1)
1197
+ ifeq ($(HAS_EXTRAEXPORTS),1)
1198
+ ifndef MOZ_OS2_USE_DECLSPEC
1199
+ $(FILTER) $(OBJS) $(SHARED_LIBRARY_LIBS) >> $@
1200
+ endif
1201
+ else
1202
+ echo _NSGetModule >> $@
1203
+ endif
1204
+ else
1205
+ ifndef MOZ_OS2_USE_DECLSPEC
1206
+ $(FILTER) $(OBJS) $(SHARED_LIBRARY_LIBS) >> $@
1207
+ endif
1208
+ endif
1209
+ $(ADD_TO_DEF_FILE)
1210
+
1211
+ ifdef MOZ_OS2_USE_DECLSPEC
1212
+ $(IMPORT_LIBRARY): $(SHARED_LIBRARY)
1213
+ else
1214
+ $(IMPORT_LIBRARY): $(DEF_FILE)
1215
+ endif
1216
+ rm -f $@
1217
+ $(IMPLIB) $@ $^
1218
+ $(RANLIB) $@
1219
+ endif # OS/2
1220
+
1221
+ $(HOST_LIBRARY): $(HOST_OBJS) Makefile
1222
+ rm -f $@
1223
+ $(HOST_AR) $(HOST_AR_FLAGS) $(HOST_OBJS)
1224
+ $(HOST_RANLIB) $@
1225
+
1226
+ ifdef NO_LD_ARCHIVE_FLAGS
1227
+ SUB_SHLOBJS = $(SUB_LOBJS)
1228
+ endif
1229
+
1230
+ ifdef HAVE_DTRACE
1231
+ ifndef XP_MACOSX
1232
+ ifdef DTRACE_PROBE_OBJ
1233
+ ifndef DTRACE_LIB_DEPENDENT
1234
+ $(DTRACE_PROBE_OBJ): $(OBJS)
1235
+ dtrace -G -C -32 -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(OBJS)
1236
+ endif
1237
+ endif
1238
+ endif
1239
+ endif
1240
+
1241
+ # On Darwin (Mac OS X), dwarf2 debugging uses debug info left in .o files,
1242
+ # so instead of deleting .o files after repacking them into a dylib, we make
1243
+ # symlinks back to the originals. The symlinks are a no-op for stabs debugging,
1244
+ # so no need to conditionalize on OS version or debugging format.
1245
+
1246
+ $(SHARED_LIBRARY): $(OBJS) $(LOBJS) $(DEF_FILE) $(RESFILE) $(SHARED_LIBRARY_LIBS) $(EXTRA_DEPS) $(DSO_LDOPTS_DEPS) $(GLOBAL_DEPS)
1247
+ ifndef INCREMENTAL_LINKER
1248
+ rm -f $@
1249
+ endif
1250
+ ifeq ($(OS_ARCH),OpenVMS)
1251
+ @if test ! -f $(VMS_SYMVEC_FILE); then \
1252
+ if test -f $(VMS_SYMVEC_FILE_MODULE); then \
1253
+ echo Creating specific component options file $(VMS_SYMVEC_FILE); \
1254
+ cp $(VMS_SYMVEC_FILE_MODULE) $(VMS_SYMVEC_FILE); \
1255
+ fi; \
1256
+ fi
1257
+ ifdef IS_COMPONENT
1258
+ @if test ! -f $(VMS_SYMVEC_FILE); then \
1259
+ echo Creating generic component options file $(VMS_SYMVEC_FILE); \
1260
+ cp $(VMS_SYMVEC_FILE_COMP) $(VMS_SYMVEC_FILE); \
1261
+ fi
1262
+ endif
1263
+ endif # OpenVMS
1264
+ ifdef NO_LD_ARCHIVE_FLAGS
1265
+ ifdef SHARED_LIBRARY_LIBS
1266
+ @rm -f $(SUB_SHLOBJS)
1267
+ @for lib in $(SHARED_LIBRARY_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done
1268
+ ifeq ($(OS_ARCH),Darwin)
1269
+ @echo Making symlinks to the original object files in the archive libraries $(SHARED_LIBRARY_LIBS)
1270
+ @for lib in $(SHARED_LIBRARY_LIBS); do \
1271
+ libdir=`echo $$lib|sed -e 's,/[^/]*\.a,,'`; \
1272
+ ofiles=`$(AR_LIST) $${lib}`; \
1273
+ for ofile in $$ofiles; do \
1274
+ if [ -f $$libdir/$$ofile ]; then \
1275
+ rm -f $$ofile; \
1276
+ ln -s $$libdir/$$ofile $$ofile; \
1277
+ fi; \
1278
+ done; \
1279
+ done
1280
+ endif
1281
+ endif # SHARED_LIBRARY_LIBS
1282
+ endif # NO_LD_ARCHIVE_FLAGS
1283
+ ifdef DTRACE_LIB_DEPENDENT
1284
+ @rm -f $(PROBE_LOBJS)
1285
+ @for lib in $(MOZILLA_PROBE_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done
1286
+ ifndef XP_MACOSX
1287
+ dtrace -G -C -32 -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(PROBE_LOBJS)
1288
+ endif
1289
+ @for lib in $(MOZILLA_PROBE_LIBS); do \
1290
+ ofiles=`$(AR_LIST) $${lib}`; \
1291
+ $(AR_DELETE) $${lib} $$ofiles; \
1292
+ done
1293
+ $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(PROBE_LOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
1294
+ @rm -f $(PROBE_LOBJS)
1295
+ @rm -f $(DTRACE_PROBE_OBJ)
1296
+ @for lib in $(MOZILLA_PROBE_LIBS); do \
1297
+ if [ -L $${lib} ]; then rm -f `readlink $${lib}`; fi; \
1298
+ done
1299
+ @rm -f $(MOZILLA_PROBE_LIBS)
1300
+
1301
+ else # ! DTRACE_LIB_DEPENDENT
1302
+ $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(DTRACE_PROBE_OBJ) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
1303
+ endif # DTRACE_LIB_DEPENDENT
1304
+
1305
+ ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
1306
+ ifdef MSMANIFEST_TOOL
1307
+ ifdef EMBED_MANIFEST_AT
1308
+ @if test -f $@.manifest; then \
1309
+ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;$(EMBED_MANIFEST_AT); \
1310
+ rm -f $@.manifest; \
1311
+ fi
1312
+ endif # EMBED_MANIFEST_AT
1313
+ endif # MSVC with manifest tool
1314
+ endif # WINNT && !GCC
1315
+ ifeq ($(OS_ARCH),Darwin)
1316
+ else # non-Darwin
1317
+ @rm -f $(SUB_SHLOBJS)
1318
+ endif # Darwin
1319
+ @rm -f foodummyfilefoo $(DELETE_AFTER_LINK)
1320
+ chmod +x $@
1321
+ ifdef ENABLE_STRIP
1322
+ $(STRIP) $@
1323
+ endif
1324
+ ifdef MOZ_POST_DSO_LIB_COMMAND
1325
+ $(MOZ_POST_DSO_LIB_COMMAND) $@
1326
+ endif
1327
+
1328
+ ifdef MOZ_AUTO_DEPS
1329
+ ifdef COMPILER_DEPEND
1330
+ ifeq ($(SOLARIS_SUNPRO_CC),1)
1331
+ _MDDEPFILE = $(MDDEPDIR)/$(@F).pp
1332
+
1333
+ define MAKE_DEPS_AUTO_CC
1334
+ if test -d $(@D); then \
1335
+ echo "Building deps for $< using Sun Studio cc"; \
1336
+ $(CC) $(COMPILE_CFLAGS) -xM $< >$(_MDDEPFILE) ; \
1337
+ fi
1338
+ endef
1339
+ define MAKE_DEPS_AUTO_CXX
1340
+ if test -d $(@D); then \
1341
+ echo "Building deps for $< using Sun Studio CC"; \
1342
+ $(CXX) $(COMPILE_CXXFLAGS) -xM $< >$(_MDDEPFILE) ; \
1343
+ fi
1344
+ endef
1345
+ endif # Sun Studio on Solaris
1346
+ else # COMPILER_DEPEND
1347
+ #
1348
+ # Generate dependencies on the fly
1349
+ #
1350
+ _MDDEPFILE = $(MDDEPDIR)/$(@F).pp
1351
+
1352
+ define MAKE_DEPS_AUTO
1353
+ if test -d $(@D); then \
1354
+ echo "Building deps for $<"; \
1355
+ $(MKDEPEND) -o'.$(OBJ_SUFFIX)' -f- $(DEFINES) $(ACDEFINES) $(INCLUDES) $< 2>/dev/null | sed -e "s|^[^ ]*/||" > $(_MDDEPFILE) ; \
1356
+ fi
1357
+ endef
1358
+
1359
+ MAKE_DEPS_AUTO_CC = $(MAKE_DEPS_AUTO)
1360
+ MAKE_DEPS_AUTO_CXX = $(MAKE_DEPS_AUTO)
1361
+
1362
+ endif # COMPILER_DEPEND
1363
+
1364
+ endif # MOZ_AUTO_DEPS
1365
+
1366
+ ifdef MOZ_MEMORY
1367
+ ifeq ($(OS_ARCH),SunOS)
1368
+ SOLARIS_JEMALLOC_LDFLAGS = $(call EXPAND_LIBNAME_PATH,jemalloc,$(DIST)/lib)
1369
+ endif
1370
+ endif
1371
+
1372
+ # Rules for building native targets must come first because of the host_ prefix
1373
+ host_%.$(OBJ_SUFFIX): %.c $(GLOBAL_DEPS)
1374
+ $(REPORT_BUILD)
1375
+ $(ELOG) $(HOST_CC) $(HOST_OUTOPTION)$@ -c $(HOST_CFLAGS) $(INCLUDES) $(NSPR_CFLAGS) $(_VPATH_SRCS)
1376
+
1377
+ host_%.$(OBJ_SUFFIX): %.cpp $(GLOBAL_DEPS)
1378
+ $(REPORT_BUILD)
1379
+ $(ELOG) $(HOST_CXX) $(HOST_OUTOPTION)$@ -c $(HOST_CXXFLAGS) $(INCLUDES) $(NSPR_CFLAGS) $(_VPATH_SRCS)
1380
+
1381
+ host_%.$(OBJ_SUFFIX): %.cc $(GLOBAL_DEPS)
1382
+ $(REPORT_BUILD)
1383
+ $(ELOG) $(HOST_CXX) $(HOST_OUTOPTION)$@ -c $(HOST_CXXFLAGS) $(INCLUDES) $(NSPR_CFLAGS) $(_VPATH_SRCS)
1384
+
1385
+ host_%.$(OBJ_SUFFIX): %.m $(GLOBAL_DEPS)
1386
+ $(REPORT_BUILD)
1387
+ $(ELOG) $(HOST_CC) $(HOST_OUTOPTION)$@ -c $(HOST_CFLAGS) $(HOST_CMFLAGS) $(INCLUDES) $(NSPR_CFLAGS) $(_VPATH_SRCS)
1388
+
1389
+ host_%.$(OBJ_SUFFIX): %.mm $(GLOBAL_DEPS)
1390
+ $(REPORT_BUILD)
1391
+ $(ELOG) $(HOST_CXX) $(HOST_OUTOPTION)$@ -c $(HOST_CXXFLAGS) $(HOST_CMMFLAGS) $(INCLUDES) $(NSPR_CFLAGS) $(_VPATH_SRCS)
1392
+
1393
+ %: %.c $(GLOBAL_DEPS)
1394
+ $(REPORT_BUILD)
1395
+ @$(MAKE_DEPS_AUTO_CC)
1396
+ $(ELOG) $(CC) $(CFLAGS) $(LDFLAGS) $(OUTOPTION)$@ $(_VPATH_SRCS)
1397
+
1398
+ %.$(OBJ_SUFFIX): %.c $(GLOBAL_DEPS)
1399
+ $(REPORT_BUILD)
1400
+ @$(MAKE_DEPS_AUTO_CC)
1401
+ $(ELOG) $(CC) $(OUTOPTION)$@ -c $(COMPILE_CFLAGS) $(_VPATH_SRCS)
1402
+
1403
+ moc_%.cpp: %.h $(GLOBAL_DEPS)
1404
+ $(MOC) $< $(OUTOPTION)$@
1405
+
1406
+ ifdef ASFILES
1407
+ # The AS_DASH_C_FLAG is needed cause not all assemblers (Solaris) accept
1408
+ # a '-c' flag.
1409
+ %.$(OBJ_SUFFIX): %.$(ASM_SUFFIX) $(GLOBAL_DEPS)
1410
+ $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) $(_VPATH_SRCS)
1411
+ endif
1412
+
1413
+ %.$(OBJ_SUFFIX): %.S $(GLOBAL_DEPS)
1414
+ $(AS) -o $@ $(ASFLAGS) -c $<
1415
+
1416
+ %: %.cpp $(GLOBAL_DEPS)
1417
+ @$(MAKE_DEPS_AUTO_CXX)
1418
+ $(CCC) $(OUTOPTION)$@ $(CXXFLAGS) $(_VPATH_SRCS) $(LDFLAGS)
1419
+
1420
+ #
1421
+ # Please keep the next two rules in sync.
1422
+ #
1423
+ %.$(OBJ_SUFFIX): %.cc $(GLOBAL_DEPS)
1424
+ $(REPORT_BUILD)
1425
+ @$(MAKE_DEPS_AUTO_CXX)
1426
+ $(ELOG) $(CCC) $(OUTOPTION)$@ -c $(COMPILE_CXXFLAGS) $(_VPATH_SRCS)
1427
+
1428
+ %.$(OBJ_SUFFIX): %.cpp $(GLOBAL_DEPS)
1429
+ $(REPORT_BUILD)
1430
+ @$(MAKE_DEPS_AUTO_CXX)
1431
+ ifdef STRICT_CPLUSPLUS_SUFFIX
1432
+ echo "#line 1 \"$*.cpp\"" | cat - $*.cpp > t_$*.cc
1433
+ $(ELOG) $(CCC) -o $@ -c $(COMPILE_CXXFLAGS) t_$*.cc
1434
+ rm -f t_$*.cc
1435
+ else
1436
+ $(ELOG) $(CCC) $(OUTOPTION)$@ -c $(COMPILE_CXXFLAGS) $(_VPATH_SRCS)
1437
+ endif #STRICT_CPLUSPLUS_SUFFIX
1438
+
1439
+ $(OBJ_PREFIX)%.$(OBJ_SUFFIX): %.mm $(GLOBAL_DEPS)
1440
+ $(REPORT_BUILD)
1441
+ @$(MAKE_DEPS_AUTO_CXX)
1442
+ $(ELOG) $(CCC) -o $@ -c $(COMPILE_CXXFLAGS) $(COMPILE_CMMFLAGS) $(_VPATH_SRCS)
1443
+
1444
+ $(OBJ_PREFIX)%.$(OBJ_SUFFIX): %.m $(GLOBAL_DEPS)
1445
+ $(REPORT_BUILD)
1446
+ @$(MAKE_DEPS_AUTO_CC)
1447
+ $(ELOG) $(CC) -o $@ -c $(COMPILE_CFLAGS) $(COMPILE_CMFLAGS) $(_VPATH_SRCS)
1448
+
1449
+ %.s: %.cpp
1450
+ $(CCC) -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS)
1451
+
1452
+ %.s: %.cc
1453
+ $(CCC) -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS)
1454
+
1455
+ %.s: %.c
1456
+ $(CC) -S $(COMPILE_CFLAGS) $(_VPATH_SRCS)
1457
+
1458
+ %.i: %.cpp
1459
+ $(CCC) -C -E $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) > $*.i
1460
+
1461
+ %.i: %.cc
1462
+ $(CCC) -C -E $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) > $*.i
1463
+
1464
+ %.i: %.c
1465
+ $(CC) -C -E $(COMPILE_CFLAGS) $(_VPATH_SRCS) > $*.i
1466
+
1467
+ %.i: %.mm
1468
+ $(CCC) -C -E $(COMPILE_CXXFLAGS) $(COMPILE_CMMFLAGS) $(_VPATH_SRCS) > $*.i
1469
+
1470
+ %.res: %.rc
1471
+ @echo Creating Resource file: $@
1472
+ ifeq ($(OS_ARCH),OS2)
1473
+ $(RC) $(RCFLAGS:-D%=-d %) -i $(subst /,\,$(srcdir)) -r $< $@
1474
+ else
1475
+ ifdef GNU_CC
1476
+ $(RC) $(RCFLAGS) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) $(OUTOPTION)$@ $(_VPATH_SRCS)
1477
+ else
1478
+ $(RC) $(RCFLAGS) -r $(DEFINES) $(INCLUDES) $(OUTOPTION)$@ $(_VPATH_SRCS)
1479
+ endif
1480
+ endif
1481
+
1482
+ # need 3 separate lines for OS/2
1483
+ %: %.pl
1484
+ rm -f $@
1485
+ cp $< $@
1486
+ chmod +x $@
1487
+
1488
+ %: %.sh
1489
+ rm -f $@; cp $< $@; chmod +x $@
1490
+
1491
+ # Cancel these implicit rules
1492
+ #
1493
+ %: %,v
1494
+
1495
+ %: RCS/%,v
1496
+
1497
+ %: s.%
1498
+
1499
+ %: SCCS/s.%
1500
+
1501
+ ###############################################################################
1502
+ # Java rules
1503
+ ###############################################################################
1504
+ ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH)))
1505
+ SEP := ;
1506
+ else
1507
+ SEP := :
1508
+ endif
1509
+
1510
+ EMPTY :=
1511
+ SPACE := $(EMPTY) $(EMPTY)
1512
+
1513
+ # Cygwin and MSYS have their own special path form, but javac expects the source
1514
+ # and class paths to be in the DOS form (i.e. e:/builds/...). This function
1515
+ # does the appropriate conversion on Windows, but is a noop on other systems.
1516
+ ifeq (,$(filter-out WINNT WINCE, $(HOST_OS_ARCH)))
1517
+ ifdef CYGWIN_WRAPPER
1518
+ normalizepath = $(foreach p,$(1),$(shell cygpath -m $(p)))
1519
+ else
1520
+ # assume MSYS
1521
+ # We use 'pwd -W' to get DOS form of the path. However, since the given path
1522
+ # could be a file or a non-existent path, we cannot call 'pwd -W' directly
1523
+ # on the path. Instead, we extract the root path (i.e. "c:/"), call 'pwd -W'
1524
+ # on it, then merge with the rest of the path.
1525
+ root-path = $(shell echo $(1) | sed -e "s|\(/[^/]*\)/\?\(.*\)|\1|")
1526
+ non-root-path = $(shell echo $(1) | sed -e "s|\(/[^/]*\)/\?\(.*\)|\2|")
1527
+ normalizepath = $(foreach p,$(1),$(if $(filter /%,$(1)),$(shell cd $(call root-path,$(1)) && pwd -W)$(call non-root-path,$(1)),$(1)))
1528
+ endif
1529
+ else
1530
+ normalizepath = $(1)
1531
+ endif
1532
+
1533
+ _srcdir = $(call normalizepath,$(srcdir))
1534
+ ifdef JAVA_SOURCEPATH
1535
+ SP = $(subst $(SPACE),$(SEP),$(call normalizepath,$(strip $(JAVA_SOURCEPATH))))
1536
+ _JAVA_SOURCEPATH = ".$(SEP)$(_srcdir)$(SEP)$(SP)"
1537
+ else
1538
+ _JAVA_SOURCEPATH = ".$(SEP)$(_srcdir)"
1539
+ endif
1540
+
1541
+ ifdef JAVA_CLASSPATH
1542
+ CP = $(subst $(SPACE),$(SEP),$(call normalizepath,$(strip $(JAVA_CLASSPATH))))
1543
+ _JAVA_CLASSPATH = ".$(SEP)$(CP)"
1544
+ else
1545
+ _JAVA_CLASSPATH = .
1546
+ endif
1547
+
1548
+ _JAVA_DIR = _java
1549
+ $(_JAVA_DIR)::
1550
+ $(NSINSTALL) -D $@
1551
+
1552
+ $(_JAVA_DIR)/%.class: %.java $(GLOBAL_DEPS) $(_JAVA_DIR)
1553
+ $(CYGWIN_WRAPPER) $(JAVAC) $(JAVAC_FLAGS) -classpath $(_JAVA_CLASSPATH) \
1554
+ -sourcepath $(_JAVA_SOURCEPATH) -d $(_JAVA_DIR) $(_VPATH_SRCS)
1555
+
1556
+ $(JAVA_LIBRARY): $(addprefix $(_JAVA_DIR)/,$(JAVA_SRCS:.java=.class)) $(GLOBAL_DEPS)
1557
+ $(JAR) cf $@ -C $(_JAVA_DIR) .
1558
+
1559
+ GARBAGE_DIRS += $(_JAVA_DIR)
1560
+
1561
+ ###############################################################################
1562
+ # Update Makefiles
1563
+ ###############################################################################
1564
+
1565
+ # In GNU make 3.80, makefiles must use the /cygdrive syntax, even if we're
1566
+ # processing them with AS perl. See bug 232003
1567
+ ifdef AS_PERL
1568
+ CYGWIN_TOPSRCDIR = -nowrap -p $(topsrcdir) -wrap
1569
+ endif
1570
+
1571
+ # Note: Passing depth to make-makefile is optional.
1572
+ # It saves the script some work, though.
1573
+ Makefile: Makefile.in
1574
+ @$(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) $(CYGWIN_TOPSRCDIR)
1575
+
1576
+ ifdef SUBMAKEFILES
1577
+ # VPATH does not work on some machines in this case, so add $(srcdir)
1578
+ $(SUBMAKEFILES): % : $(srcdir)/%.in
1579
+ $(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) $(CYGWIN_TOPSRCDIR) $@
1580
+ endif
1581
+
1582
+ ifdef AUTOUPDATE_CONFIGURE
1583
+ $(topsrcdir)/configure: $(topsrcdir)/configure.in
1584
+ (cd $(topsrcdir) && $(AUTOCONF)) && (cd $(DEPTH) && ./config.status --recheck)
1585
+ endif
1586
+
1587
+ ###############################################################################
1588
+ # Bunch of things that extend the 'export' rule (in order):
1589
+ ###############################################################################
1590
+
1591
+ ################################################################################
1592
+ # Copy each element of EXPORTS to $(PUBLIC)
1593
+
1594
+ ifneq ($(EXPORTS)$(XPIDLSRCS)$(SDK_HEADERS)$(SDK_XPIDLSRCS),)
1595
+ $(SDK_PUBLIC) $(PUBLIC):
1596
+ $(NSINSTALL) -D $@
1597
+ endif
1598
+
1599
+ ifdef MOZ_JAVAXPCOM
1600
+ ifneq ($(XPIDLSRCS)$(SDK_XPIDLSRCS),)
1601
+ $(JAVA_DIST_DIR)::
1602
+ $(NSINSTALL) -D $@
1603
+ endif
1604
+ endif
1605
+
1606
+ ifneq ($(XPI_NAME),)
1607
+ $(FINAL_TARGET):
1608
+ $(NSINSTALL) -D $@
1609
+
1610
+ export:: $(FINAL_TARGET)
1611
+ endif
1612
+
1613
+ ifndef NO_DIST_INSTALL
1614
+ ifneq ($(EXPORTS),)
1615
+ export:: $(EXPORTS) $(PUBLIC)
1616
+ $(INSTALL) $(IFLAGS1) $^
1617
+ endif
1618
+
1619
+ ifneq ($(SDK_HEADERS),)
1620
+ export:: $(SDK_HEADERS) $(SDK_PUBLIC)
1621
+ $(INSTALL) $(IFLAGS1) $^
1622
+
1623
+ export:: $(SDK_HEADERS) $(PUBLIC)
1624
+ $(INSTALL) $(IFLAGS1) $^
1625
+ endif
1626
+ endif # NO_DIST_INSTALL
1627
+
1628
+ ################################################################################
1629
+ # Copy each element of PREF_JS_EXPORTS
1630
+
1631
+ ifdef GRE_MODULE
1632
+ PREF_DIR = greprefs
1633
+ else
1634
+ ifneq (,$(XPI_NAME)$(LIBXUL_SDK))
1635
+ PREF_DIR = defaults/preferences
1636
+ else
1637
+ PREF_DIR = defaults/pref
1638
+ endif
1639
+ endif
1640
+
1641
+ ifneq ($(PREF_JS_EXPORTS),)
1642
+ # on win32, pref files need CRLF line endings... see bug 206029
1643
+ ifeq (WINNT,$(OS_ARCH))
1644
+ PREF_PPFLAGS = --line-endings=crlf
1645
+ endif
1646
+
1647
+ ifndef NO_DIST_INSTALL
1648
+ $(FINAL_TARGET)/$(PREF_DIR):
1649
+ $(NSINSTALL) -D $@
1650
+
1651
+ libs:: $(FINAL_TARGET)/$(PREF_DIR) $(PREF_JS_EXPORTS)
1652
+ $(EXIT_ON_ERROR) \
1653
+ for i in $(PREF_JS_EXPORTS); do \
1654
+ dest=$(FINAL_TARGET)/$(PREF_DIR)/`basename $$i`; \
1655
+ $(RM) -f $$dest; \
1656
+ $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $$i > $$dest; \
1657
+ done
1658
+ endif
1659
+ endif
1660
+
1661
+ ################################################################################
1662
+ # Copy each element of AUTOCFG_JS_EXPORTS to $(FINAL_TARGET)/defaults/autoconfig
1663
+
1664
+ ifneq ($(AUTOCFG_JS_EXPORTS),)
1665
+ $(FINAL_TARGET)/defaults/autoconfig::
1666
+ $(NSINSTALL) -D $@
1667
+
1668
+ ifndef NO_DIST_INSTALL
1669
+ export:: $(AUTOCFG_JS_EXPORTS) $(FINAL_TARGET)/defaults/autoconfig
1670
+ $(INSTALL) $(IFLAGS1) $^
1671
+ endif
1672
+
1673
+ endif
1674
+ ################################################################################
1675
+ # Export the elements of $(XPIDLSRCS) & $(SDK_XPIDLSRCS),
1676
+ # generating .h and .xpt files and moving them to the appropriate places.
1677
+
1678
+ ifneq ($(XPIDLSRCS)$(SDK_XPIDLSRCS),)
1679
+
1680
+ export:: $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.h, $(XPIDLSRCS))
1681
+
1682
+ ifndef XPIDL_MODULE
1683
+ XPIDL_MODULE = $(MODULE)
1684
+ endif
1685
+
1686
+ ifeq ($(XPIDL_MODULE),) # we need $(XPIDL_MODULE) to make $(XPIDL_MODULE).xpt
1687
+ export:: FORCE
1688
+ @echo
1689
+ @echo "*** Error processing XPIDLSRCS:"
1690
+ @echo "Please define MODULE or XPIDL_MODULE when defining XPIDLSRCS,"
1691
+ @echo "so we have a module name to use when creating MODULE.xpt."
1692
+ @echo; sleep 2; false
1693
+ endif
1694
+
1695
+ $(SDK_IDL_DIR) $(IDL_DIR)::
1696
+ $(NSINSTALL) -D $@
1697
+
1698
+ # generate .h files from into $(XPIDL_GEN_DIR), then export to $(PUBLIC);
1699
+ # warn against overriding existing .h file.
1700
+ $(XPIDL_GEN_DIR)/.done:
1701
+ @if test ! -d $(XPIDL_GEN_DIR); then echo Creating $(XPIDL_GEN_DIR)/.done; rm -rf $(XPIDL_GEN_DIR); mkdir $(XPIDL_GEN_DIR); fi
1702
+ @touch $@
1703
+
1704
+ # don't depend on $(XPIDL_GEN_DIR), because the modification date changes
1705
+ # with any addition to the directory, regenerating all .h files -> everything.
1706
+
1707
+ $(XPIDL_GEN_DIR)/%.h: %.idl $(XPIDL_COMPILE) $(XPIDL_GEN_DIR)/.done
1708
+ $(REPORT_BUILD)
1709
+ $(ELOG) $(XPIDL_COMPILE) -m header -w $(XPIDL_FLAGS) -o $(XPIDL_GEN_DIR)/$* $(_VPATH_SRCS)
1710
+ @if test -n "$(findstring $*.h, $(EXPORTS) $(SDK_HEADERS))"; \
1711
+ then echo "*** WARNING: file $*.h generated from $*.idl overrides $(srcdir)/$*.h"; else true; fi
1712
+
1713
+ ifndef NO_GEN_XPT
1714
+ # generate intermediate .xpt files into $(XPIDL_GEN_DIR), then link
1715
+ # into $(XPIDL_MODULE).xpt and export it to $(FINAL_TARGET)/components.
1716
+ $(XPIDL_GEN_DIR)/%.xpt: %.idl $(XPIDL_COMPILE) $(XPIDL_GEN_DIR)/.done
1717
+ $(REPORT_BUILD)
1718
+ $(ELOG) $(XPIDL_COMPILE) -m typelib -w $(XPIDL_FLAGS) -e $@ -d $(MDDEPDIR)/$*.pp $(_VPATH_SRCS)
1719
+
1720
+ # no need to link together if XPIDLSRCS contains only XPIDL_MODULE
1721
+ ifneq ($(XPIDL_MODULE).idl,$(strip $(XPIDLSRCS)))
1722
+ $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt: $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.xpt,$(XPIDLSRCS) $(SDK_XPIDLSRCS)) $(GLOBAL_DEPS) $(XPIDL_LINK)
1723
+ $(XPIDL_LINK) $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.xpt,$(XPIDLSRCS) $(SDK_XPIDLSRCS))
1724
+ endif # XPIDL_MODULE.xpt != XPIDLSRCS
1725
+
1726
+ libs:: $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt
1727
+ ifndef NO_DIST_INSTALL
1728
+ $(INSTALL) $(IFLAGS1) $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt $(FINAL_TARGET)/components
1729
+ endif
1730
+
1731
+ endif # NO_GEN_XPT
1732
+
1733
+ GARBAGE_DIRS += $(XPIDL_GEN_DIR)
1734
+
1735
+ endif # XPIDLSRCS || SDK_XPIDLSRCS
1736
+
1737
+ ifneq ($(XPIDLSRCS),)
1738
+ # export .idl files to $(IDL_DIR)
1739
+ ifndef NO_DIST_INSTALL
1740
+ export:: $(XPIDLSRCS) $(IDL_DIR)
1741
+ $(INSTALL) $(IFLAGS1) $^
1742
+
1743
+ export:: $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.h, $(XPIDLSRCS)) $(PUBLIC)
1744
+ $(INSTALL) $(IFLAGS1) $^
1745
+ endif # NO_DIST_INSTALL
1746
+
1747
+ endif # XPIDLSRCS
1748
+
1749
+
1750
+
1751
+ #
1752
+ # General rules for exporting idl files.
1753
+ #
1754
+ # WORK-AROUND ONLY, for mozilla/tools/module-deps/bootstrap.pl build.
1755
+ # Bug to fix idl dependency problems w/o this extra build pass is
1756
+ # http://bugzilla.mozilla.org/show_bug.cgi?id=145777
1757
+ #
1758
+ $(IDL_DIR)::
1759
+ $(NSINSTALL) -D $@
1760
+
1761
+ export-idl:: $(SUBMAKEFILES) $(MAKE_DIRS)
1762
+
1763
+ ifneq ($(XPIDLSRCS)$(SDK_XPIDLSRCS),)
1764
+ ifndef NO_DIST_INSTALL
1765
+ export-idl:: $(XPIDLSRCS) $(SDK_XPIDLSRCS) $(IDL_DIR)
1766
+ $(INSTALL) $(IFLAGS1) $^
1767
+ endif
1768
+ endif
1769
+ +$(LOOP_OVER_PARALLEL_DIRS)
1770
+ +$(LOOP_OVER_DIRS)
1771
+ +$(LOOP_OVER_TOOL_DIRS)
1772
+
1773
+
1774
+
1775
+
1776
+ ifneq ($(SDK_XPIDLSRCS),)
1777
+ # export .idl files to $(IDL_DIR) & $(SDK_IDL_DIR)
1778
+ ifndef NO_DIST_INSTALL
1779
+ export:: $(SDK_XPIDLSRCS) $(IDL_DIR)
1780
+ $(INSTALL) $(IFLAGS1) $^
1781
+
1782
+ export:: $(SDK_XPIDLSRCS) $(SDK_IDL_DIR)
1783
+ $(INSTALL) $(IFLAGS1) $^
1784
+
1785
+ export:: $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.h, $(SDK_XPIDLSRCS)) $(PUBLIC)
1786
+ $(INSTALL) $(IFLAGS1) $^
1787
+
1788
+ export:: $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.h, $(SDK_XPIDLSRCS)) $(SDK_PUBLIC)
1789
+ $(INSTALL) $(IFLAGS1) $^
1790
+ endif
1791
+
1792
+ endif # SDK_XPIDLSRCS
1793
+
1794
+
1795
+
1796
+ ifdef MOZ_JAVAXPCOM
1797
+ ifneq ($(XPIDLSRCS)$(SDK_XPIDLSRCS),)
1798
+
1799
+ JAVA_XPIDLSRCS = $(XPIDLSRCS) $(SDK_XPIDLSRCS)
1800
+
1801
+ # A single IDL file can contain multiple interfaces, which result in multiple
1802
+ # Java interface files. So use hidden dependency files.
1803
+ JAVADEPFILES = $(addprefix $(JAVA_GEN_DIR)/.,$(JAVA_XPIDLSRCS:.idl=.java.pp))
1804
+
1805
+ $(JAVA_GEN_DIR):
1806
+ $(NSINSTALL) -D $@
1807
+ GARBAGE_DIRS += $(JAVA_GEN_DIR)
1808
+
1809
+ # generate .java files into _javagen/[package name dirs]
1810
+ _JAVA_GEN_DIR = $(JAVA_GEN_DIR)/$(JAVA_IFACES_PKG_NAME)
1811
+ $(_JAVA_GEN_DIR):
1812
+ $(NSINSTALL) -D $@
1813
+
1814
+ $(JAVA_GEN_DIR)/.%.java.pp: %.idl $(XPIDL_COMPILE) $(_JAVA_GEN_DIR)
1815
+ $(REPORT_BUILD)
1816
+ $(ELOG) $(XPIDL_COMPILE) -m java -w -I$(srcdir) -I$(IDL_DIR) -o $(_JAVA_GEN_DIR)/$* $(_VPATH_SRCS)
1817
+ @touch $@
1818
+
1819
+ # "Install" generated Java interfaces. We segregate them based on the XPI_NAME.
1820
+ # If XPI_NAME is not set, install into the "default" directory.
1821
+ ifneq ($(XPI_NAME),)
1822
+ JAVA_INSTALL_DIR = $(JAVA_DIST_DIR)/$(XPI_NAME)
1823
+ else
1824
+ JAVA_INSTALL_DIR = $(JAVA_DIST_DIR)/default
1825
+ endif
1826
+
1827
+ $(JAVA_INSTALL_DIR):
1828
+ $(NSINSTALL) -D $@
1829
+
1830
+ export:: $(JAVA_DIST_DIR) $(JAVADEPFILES) $(JAVA_INSTALL_DIR)
1831
+ (cd $(JAVA_GEN_DIR) && tar $(TAR_CREATE_FLAGS) - .) | (cd $(JAVA_INSTALL_DIR) && tar -xf -)
1832
+
1833
+ endif # XPIDLSRCS || SDK_XPIDLSRCS
1834
+ endif # MOZ_JAVAXPCOM
1835
+
1836
+ ################################################################################
1837
+ # Copy each element of EXTRA_COMPONENTS to $(FINAL_TARGET)/components
1838
+ ifdef EXTRA_COMPONENTS
1839
+ libs:: $(EXTRA_COMPONENTS)
1840
+ ifndef NO_DIST_INSTALL
1841
+ $(INSTALL) $(IFLAGS1) $^ $(FINAL_TARGET)/components
1842
+ endif
1843
+
1844
+ endif
1845
+
1846
+ ifdef EXTRA_PP_COMPONENTS
1847
+ libs:: $(EXTRA_PP_COMPONENTS)
1848
+ ifndef NO_DIST_INSTALL
1849
+ $(EXIT_ON_ERROR) \
1850
+ $(NSINSTALL) -D $(FINAL_TARGET)/components; \
1851
+ for i in $^; do \
1852
+ dest=$(FINAL_TARGET)/components/`basename $$i`; \
1853
+ $(RM) -f $$dest; \
1854
+ $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $$i > $$dest; \
1855
+ done
1856
+ endif
1857
+
1858
+ endif
1859
+
1860
+ ################################################################################
1861
+ # Copy each element of EXTRA_JS_MODULES to $(FINAL_TARGET)/modules
1862
+ ifdef EXTRA_JS_MODULES
1863
+ libs:: $(EXTRA_JS_MODULES)
1864
+ ifndef NO_DIST_INSTALL
1865
+ $(INSTALL) $(IFLAGS1) $^ $(FINAL_TARGET)/modules
1866
+ endif
1867
+
1868
+ endif
1869
+
1870
+ ifdef EXTRA_PP_JS_MODULES
1871
+ libs:: $(EXTRA_PP_JS_MODULES)
1872
+ ifndef NO_DIST_INSTALL
1873
+ $(EXIT_ON_ERROR) \
1874
+ $(NSINSTALL) -D $(FINAL_TARGET)/modules; \
1875
+ for i in $^; do \
1876
+ dest=$(FINAL_TARGET)/modules/`basename $$i`; \
1877
+ $(RM) -f $$dest; \
1878
+ $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $$i > $$dest; \
1879
+ done
1880
+ endif
1881
+
1882
+ endif
1883
+
1884
+ ################################################################################
1885
+ # SDK
1886
+
1887
+ ifneq (,$(SDK_LIBRARY))
1888
+ $(SDK_LIB_DIR)::
1889
+ $(NSINSTALL) -D $@
1890
+
1891
+ ifndef NO_DIST_INSTALL
1892
+ libs:: $(SDK_LIBRARY) $(SDK_LIB_DIR)
1893
+ $(INSTALL) $(IFLAGS2) $^
1894
+ endif
1895
+
1896
+ endif # SDK_LIBRARY
1897
+
1898
+ ifneq (,$(SDK_BINARY))
1899
+ $(SDK_BIN_DIR)::
1900
+ $(NSINSTALL) -D $@
1901
+
1902
+ ifndef NO_DIST_INSTALL
1903
+ libs:: $(SDK_BINARY) $(SDK_BIN_DIR)
1904
+ $(INSTALL) $(IFLAGS2) $^
1905
+ endif
1906
+
1907
+ endif # SDK_BINARY
1908
+
1909
+ ################################################################################
1910
+ # CHROME PACKAGING
1911
+
1912
+ JAR_MANIFEST := $(srcdir)/jar.mn
1913
+
1914
+ chrome::
1915
+ $(MAKE) realchrome
1916
+ +$(LOOP_OVER_PARALLEL_DIRS)
1917
+ +$(LOOP_OVER_DIRS)
1918
+ +$(LOOP_OVER_TOOL_DIRS)
1919
+
1920
+ $(FINAL_TARGET)/chrome:
1921
+ $(NSINSTALL) -D $@
1922
+
1923
+ ifneq (,$(wildcard $(JAR_MANIFEST)))
1924
+ ifndef NO_DIST_INSTALL
1925
+ libs realchrome:: $(CHROME_DEPS) $(FINAL_TARGET)/chrome
1926
+ $(PYTHON) $(MOZILLA_DIR)/config/JarMaker.py \
1927
+ $(QUIET) -j $(FINAL_TARGET)/chrome \
1928
+ $(MAKE_JARS_FLAGS) $(XULPPFLAGS) $(DEFINES) $(ACDEFINES) \
1929
+ $(JAR_MANIFEST)
1930
+ endif
1931
+ endif
1932
+
1933
+ ifneq ($(DIST_FILES),)
1934
+ $(DIST)/bin:
1935
+ $(NSINSTALL) -D $@
1936
+
1937
+ libs:: $(DIST_FILES) $(DIST)/bin
1938
+ @$(EXIT_ON_ERROR) \
1939
+ for f in $(DIST_FILES); do \
1940
+ dest=$(FINAL_TARGET)/`basename $$f`; \
1941
+ $(RM) -f $$dest; \
1942
+ $(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py \
1943
+ $(XULAPP_DEFINES) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) \
1944
+ $(srcdir)/$$f > $$dest; \
1945
+ done
1946
+ endif
1947
+
1948
+ ifneq ($(DIST_CHROME_FILES),)
1949
+ libs:: $(DIST_CHROME_FILES)
1950
+ @$(EXIT_ON_ERROR) \
1951
+ for f in $(DIST_CHROME_FILES); do \
1952
+ dest=$(FINAL_TARGET)/chrome/`basename $$f`; \
1953
+ $(RM) -f $$dest; \
1954
+ $(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py \
1955
+ $(XULAPP_DEFINES) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) \
1956
+ $(srcdir)/$$f > $$dest; \
1957
+ done
1958
+ endif
1959
+
1960
+ ifneq ($(XPI_PKGNAME),)
1961
+ libs realchrome::
1962
+ ifdef STRIP_XPI
1963
+ ifndef MOZ_DEBUG
1964
+ @echo "Stripping $(XPI_PKGNAME) package directory..."
1965
+ @echo $(FINAL_TARGET)
1966
+ @cd $(FINAL_TARGET) && find . ! -type d \
1967
+ ! -name "*.js" \
1968
+ ! -name "*.xpt" \
1969
+ ! -name "*.gif" \
1970
+ ! -name "*.jpg" \
1971
+ ! -name "*.png" \
1972
+ ! -name "*.xpm" \
1973
+ ! -name "*.txt" \
1974
+ ! -name "*.rdf" \
1975
+ ! -name "*.sh" \
1976
+ ! -name "*.properties" \
1977
+ ! -name "*.dtd" \
1978
+ ! -name "*.html" \
1979
+ ! -name "*.xul" \
1980
+ ! -name "*.css" \
1981
+ ! -name "*.xml" \
1982
+ ! -name "*.jar" \
1983
+ ! -name "*.dat" \
1984
+ ! -name "*.tbl" \
1985
+ ! -name "*.src" \
1986
+ ! -name "*.reg" \
1987
+ $(PLATFORM_EXCLUDE_LIST) \
1988
+ -exec $(STRIP) $(STRIP_FLAGS) {} >/dev/null 2>&1 \;
1989
+ endif
1990
+ endif
1991
+ @echo "Packaging $(XPI_PKGNAME).xpi..."
1992
+ cd $(FINAL_TARGET) && $(ZIP) -qr ../$(XPI_PKGNAME).xpi *
1993
+ endif
1994
+
1995
+ ifdef INSTALL_EXTENSION_ID
1996
+ ifndef XPI_NAME
1997
+ $(error XPI_NAME must be set for INSTALL_EXTENSION_ID)
1998
+ endif
1999
+
2000
+ libs::
2001
+ $(RM) -rf "$(DIST)/bin/extensions/$(INSTALL_EXTENSION_ID)"
2002
+ $(NSINSTALL) -D "$(DIST)/bin/extensions/$(INSTALL_EXTENSION_ID)"
2003
+ cd $(FINAL_TARGET) && tar $(TAR_CREATE_FLAGS) - . | (cd "../../bin/extensions/$(INSTALL_EXTENSION_ID)" && tar -xf -)
2004
+
2005
+ endif
2006
+
2007
+ ifneq (,$(filter flat symlink,$(MOZ_CHROME_FILE_FORMAT)))
2008
+ _JAR_REGCHROME_DISABLE_JAR=1
2009
+ else
2010
+ _JAR_REGCHROME_DISABLE_JAR=0
2011
+ endif
2012
+
2013
+ REGCHROME = $(PERL) -I$(MOZILLA_DIR)/config $(MOZILLA_DIR)/config/add-chrome.pl \
2014
+ $(if $(filter gtk2,$(MOZ_WIDGET_TOOLKIT)),-x) \
2015
+ $(if $(CROSS_COMPILE),-o $(OS_ARCH)) $(FINAL_TARGET)/chrome/installed-chrome.txt \
2016
+ $(_JAR_REGCHROME_DISABLE_JAR)
2017
+
2018
+ REGCHROME_INSTALL = $(PERL) -I$(MOZILLA_DIR)/config $(MOZILLA_DIR)/config/add-chrome.pl \
2019
+ $(if $(filter gtk2,$(MOZ_WIDGET_TOOLKIT)),-x) \
2020
+ $(if $(CROSS_COMPILE),-o $(OS_ARCH)) $(DESTDIR)$(mozappdir)/chrome/installed-chrome.txt \
2021
+ $(_JAR_REGCHROME_DISABLE_JAR)
2022
+
2023
+
2024
+ #############################################################################
2025
+ # Dependency system
2026
+ #############################################################################
2027
+ ifdef COMPILER_DEPEND
2028
+ depend::
2029
+ @echo "$(MAKE): No need to run depend target.\
2030
+ Using compiler-based depend." 1>&2
2031
+ ifeq ($(GNU_CC)$(GNU_CXX),)
2032
+ # Non-GNU compilers
2033
+ @echo "`echo '$(MAKE):'|sed 's/./ /g'`"\
2034
+ '(Compiler-based depend was turned on by "--enable-md".)' 1>&2
2035
+ else
2036
+ # GNU compilers
2037
+ @space="`echo '$(MAKE): '|sed 's/./ /g'`";\
2038
+ echo "$$space"'Since you are using a GNU compiler,\
2039
+ it is on by default.' 1>&2; \
2040
+ echo "$$space"'To turn it off, pass --disable-md to configure.' 1>&2
2041
+ endif
2042
+
2043
+ else # ! COMPILER_DEPEND
2044
+
2045
+ ifndef MOZ_AUTO_DEPS
2046
+
2047
+ define MAKE_DEPS_NOAUTO
2048
+ $(MKDEPEND) -w1024 -o'.$(OBJ_SUFFIX)' -f- $(DEFINES) $(ACDEFINES) $(INCLUDES) $< 2>/dev/null | sed -e "s|^[^ ]*/||" > $@
2049
+ endef
2050
+
2051
+ $(MDDEPDIR)/%.pp: %.c
2052
+ $(REPORT_BUILD)
2053
+ @$(MAKE_DEPS_NOAUTO)
2054
+
2055
+ $(MDDEPDIR)/%.pp: %.cpp
2056
+ $(REPORT_BUILD)
2057
+ @$(MAKE_DEPS_NOAUTO)
2058
+
2059
+ $(MDDEPDIR)/%.pp: %.s
2060
+ $(REPORT_BUILD)
2061
+ @$(MAKE_DEPS_NOAUTO)
2062
+
2063
+ ifneq (,$(OBJS)$(XPIDLSRCS)$(SDK_XPIDLSRCS)$(SIMPLE_PROGRAMS))
2064
+ depend:: $(SUBMAKEFILES) $(MAKE_DIRS) $(MDDEPFILES)
2065
+ else
2066
+ depend:: $(SUBMAKEFILES)
2067
+ endif
2068
+ +$(LOOP_OVER_PARALLEL_DIRS)
2069
+ +$(LOOP_OVER_DIRS)
2070
+ +$(LOOP_OVER_TOOL_DIRS)
2071
+
2072
+ dependclean:: $(SUBMAKEFILES)
2073
+ rm -f $(MDDEPFILES)
2074
+ +$(LOOP_OVER_PARALLEL_DIRS)
2075
+ +$(LOOP_OVER_DIRS)
2076
+ +$(LOOP_OVER_TOOL_DIRS)
2077
+
2078
+ endif # MOZ_AUTO_DEPS
2079
+
2080
+ endif # COMPILER_DEPEND
2081
+
2082
+
2083
+ #############################################################################
2084
+ # MDDEPDIR is the subdirectory where all the dependency files are placed.
2085
+ # This uses a make rule (instead of a macro) to support parallel
2086
+ # builds (-jN). If this were done in the LOOP_OVER_DIRS macro, two
2087
+ # processes could simultaneously try to create the same directory.
2088
+ #
2089
+ # We use $(CURDIR) in the rule's target to ensure that we don't find
2090
+ # a dependency directory in the source tree via VPATH (perhaps from
2091
+ # a previous build in the source tree) and thus neglect to create a
2092
+ # dependency directory in the object directory, where we really need
2093
+ # it.
2094
+
2095
+ $(CURDIR)/$(MDDEPDIR):
2096
+ @if test ! -d $@; then echo Creating $@; rm -rf $@; mkdir $@; else true; fi
2097
+
2098
+ ifneq (,$(filter-out all chrome default export realchrome tools clean clobber clobber_all distclean realclean,$(MAKECMDGOALS)))
2099
+ ifneq (,$(OBJS)$(XPIDLSRCS)$(SDK_XPIDLSRCS)$(SIMPLE_PROGRAMS))
2100
+ MDDEPEND_FILES := $(strip $(wildcard $(MDDEPDIR)/*.pp))
2101
+
2102
+ ifneq (,$(MDDEPEND_FILES))
2103
+ ifdef PERL
2104
+ # The script mddepend.pl checks the dependencies and writes to stdout
2105
+ # one rule to force out-of-date objects. For example,
2106
+ # foo.o boo.o: FORCE
2107
+ # The script has an advantage over including the *.pp files directly
2108
+ # because it handles the case when header files are removed from the build.
2109
+ # 'make' would complain that there is no way to build missing headers.
2110
+ ifeq (,$(MAKE_RESTARTS))
2111
+ $(MDDEPDIR)/.all.pp: FORCE
2112
+ @$(PERL) $(BUILD_TOOLS)/mddepend.pl $@ $(MDDEPEND_FILES)
2113
+ endif
2114
+ -include $(MDDEPDIR)/.all.pp
2115
+ else
2116
+ include $(MDDEPEND_FILES)
2117
+ endif
2118
+ endif
2119
+
2120
+ endif
2121
+ endif
2122
+ #############################################################################
2123
+
2124
+ -include $(topsrcdir)/$(MOZ_BUILD_APP)/app-rules.mk
2125
+ -include $(MY_RULES)
2126
+
2127
+ #
2128
+ # This speeds up gmake's processing if these files don't exist.
2129
+ #
2130
+ $(MY_CONFIG) $(MY_RULES):
2131
+ @touch $@
2132
+
2133
+ #
2134
+ # Generate Emacs tags in a file named TAGS if ETAGS was set in $(MY_CONFIG)
2135
+ # or in $(MY_RULES)
2136
+ #
2137
+ ifdef ETAGS
2138
+ ifneq ($(CSRCS)$(CPPSRCS)$(HEADERS),)
2139
+ all:: TAGS
2140
+ TAGS:: $(CSRCS) $(CPPSRCS) $(HEADERS)
2141
+ $(ETAGS) $(CSRCS) $(CPPSRCS) $(HEADERS)
2142
+ endif
2143
+ endif
2144
+
2145
+ ################################################################################
2146
+ # Special gmake rules.
2147
+ ################################################################################
2148
+
2149
+
2150
+ #
2151
+ # Disallow parallel builds with MSVC < 8
2152
+ #
2153
+ ifneq (,$(filter 1200 1300 1310,$(_MSC_VER)))
2154
+ .NOTPARALLEL:
2155
+ endif
2156
+
2157
+ #
2158
+ # Re-define the list of default suffixes, so gmake won't have to churn through
2159
+ # hundreds of built-in suffix rules for stuff we don't need.
2160
+ #
2161
+ .SUFFIXES:
2162
+
2163
+ #
2164
+ # Fake targets. Always run these rules, even if a file/directory with that
2165
+ # name already exists.
2166
+ #
2167
+ .PHONY: all all_platforms alltags boot checkout chrome realchrome clean clobber clobber_all export install libs makefiles realclean run_viewer run_apprunner tools $(DIRS) $(TOOL_DIRS) FORCE
2168
+
2169
+ # Used as a dependency to force targets to rebuild
2170
+ FORCE:
2171
+
2172
+ # Delete target if error occurs when building target
2173
+ .DELETE_ON_ERROR:
2174
+
2175
+ # Properly set LIBPATTERNS for the platform
2176
+ .LIBPATTERNS = $(if $(IMPORT_LIB_SUFFIX),$(LIB_PREFIX)%.$(IMPORT_LIB_SUFFIX)) $(LIB_PREFIX)%.$(LIB_SUFFIX) $(DLL_PREFIX)%$(DLL_SUFFIX)
2177
+
2178
+ tags: TAGS
2179
+
2180
+ TAGS: $(SUBMAKEFILES) $(CSRCS) $(CPPSRCS) $(wildcard *.h)
2181
+ -etags $(CSRCS) $(CPPSRCS) $(wildcard *.h)
2182
+ +$(LOOP_OVER_PARALLEL_DIRS)
2183
+ +$(LOOP_OVER_DIRS)
2184
+
2185
+ echo-variable-%:
2186
+ @echo "$($*)"
2187
+
2188
+ echo-tiers:
2189
+ @echo $(TIERS)
2190
+
2191
+ echo-dirs:
2192
+ @echo $(DIRS)
2193
+
2194
+ echo-module:
2195
+ @echo $(MODULE)
2196
+
2197
+ echo-requires:
2198
+ @echo $(REQUIRES)
2199
+
2200
+ echo-requires-recursive::
2201
+ ifdef _REPORT_ALL_DIRS
2202
+ @echo $(subst $(topsrcdir)/,,$(srcdir)): $(MODULE): $(REQUIRES)
2203
+ else
2204
+ @$(if $(REQUIRES),echo $(subst $(topsrcdir)/,,$(srcdir)): $(MODULE): $(REQUIRES))
2205
+ endif
2206
+ +$(LOOP_OVER_PARALLEL_DIRS)
2207
+ +$(LOOP_OVER_DIRS)
2208
+
2209
+ echo-depth-path:
2210
+ @$(topsrcdir)/build/unix/print-depth-path.sh
2211
+
2212
+ echo-module-name:
2213
+ @$(topsrcdir)/build/package/rpm/print-module-name.sh
2214
+
2215
+ echo-module-filelist:
2216
+ @$(topsrcdir)/build/package/rpm/print-module-filelist.sh
2217
+
2218
+ showtargs:
2219
+ ifneq (,$(filter $(PROGRAM) $(HOST_PROGRAM) $(SIMPLE_PROGRAMS) $(HOST_LIBRARY) $(LIBRARY) $(SHARED_LIBRARY),$(TARGETS)))
2220
+ @echo --------------------------------------------------------------------------------
2221
+ @echo "PROGRAM = $(PROGRAM)"
2222
+ @echo "SIMPLE_PROGRAMS = $(SIMPLE_PROGRAMS)"
2223
+ @echo "LIBRARY = $(LIBRARY)"
2224
+ @echo "SHARED_LIBRARY = $(SHARED_LIBRARY)"
2225
+ @echo "SHARED_LIBRARY_LIBS = $(SHARED_LIBRARY_LIBS)"
2226
+ @echo "LIBS = $(LIBS)"
2227
+ @echo "DEF_FILE = $(DEF_FILE)"
2228
+ @echo "IMPORT_LIBRARY = $(IMPORT_LIBRARY)"
2229
+ @echo "STATIC_LIBS = $(STATIC_LIBS)"
2230
+ @echo "SHARED_LIBS = $(SHARED_LIBS)"
2231
+ @echo "EXTRA_DSO_LIBS = $(EXTRA_DSO_LIBS)"
2232
+ @echo "EXTRA_DSO_LDOPTS = $(EXTRA_DSO_LDOPTS)"
2233
+ @echo "DEPENDENT_LIBS = $(DEPENDENT_LIBS)"
2234
+ @echo --------------------------------------------------------------------------------
2235
+ endif
2236
+ +$(LOOP_OVER_PARALLEL_DIRS)
2237
+ +$(LOOP_OVER_DIRS)
2238
+
2239
+ showbuild:
2240
+ @echo "MOZ_BUILD_ROOT = $(MOZ_BUILD_ROOT)"
2241
+ @echo "MOZ_WIDGET_TOOLKIT = $(MOZ_WIDGET_TOOLKIT)"
2242
+ @echo "CC = $(CC)"
2243
+ @echo "CXX = $(CXX)"
2244
+ @echo "CCC = $(CCC)"
2245
+ @echo "CPP = $(CPP)"
2246
+ @echo "LD = $(LD)"
2247
+ @echo "AR = $(AR)"
2248
+ @echo "IMPLIB = $(IMPLIB)"
2249
+ @echo "FILTER = $(FILTER)"
2250
+ @echo "MKSHLIB = $(MKSHLIB)"
2251
+ @echo "MKCSHLIB = $(MKCSHLIB)"
2252
+ @echo "RC = $(RC)"
2253
+ @echo "CFLAGS = $(CFLAGS)"
2254
+ @echo "OS_CFLAGS = $(OS_CFLAGS)"
2255
+ @echo "COMPILE_CFLAGS = $(COMPILE_CFLAGS)"
2256
+ @echo "CXXFLAGS = $(CXXFLAGS)"
2257
+ @echo "OS_CXXFLAGS = $(OS_CXXFLAGS)"
2258
+ @echo "COMPILE_CXXFLAGS = $(COMPILE_CXXFLAGS)"
2259
+ @echo "COMPILE_CMFLAGS = $(COMPILE_CMFLAGS)"
2260
+ @echo "COMPILE_CMMFLAGS = $(COMPILE_CMMFLAGS)"
2261
+ @echo "LDFLAGS = $(LDFLAGS)"
2262
+ @echo "OS_LDFLAGS = $(OS_LDFLAGS)"
2263
+ @echo "DSO_LDOPTS = $(DSO_LDOPTS)"
2264
+ @echo "OS_INCLUDES = $(OS_INCLUDES)"
2265
+ @echo "OS_LIBS = $(OS_LIBS)"
2266
+ @echo "EXTRA_LIBS = $(EXTRA_LIBS)"
2267
+ @echo "BIN_FLAGS = $(BIN_FLAGS)"
2268
+ @echo "INCLUDES = $(INCLUDES)"
2269
+ @echo "DEFINES = $(DEFINES)"
2270
+ @echo "ACDEFINES = $(ACDEFINES)"
2271
+ @echo "BIN_SUFFIX = $(BIN_SUFFIX)"
2272
+ @echo "LIB_SUFFIX = $(LIB_SUFFIX)"
2273
+ @echo "DLL_SUFFIX = $(DLL_SUFFIX)"
2274
+ @echo "IMPORT_LIB_SUFFIX = $(IMPORT_LIB_SUFFIX)"
2275
+ @echo "INSTALL = $(INSTALL)"
2276
+
2277
+ showhost:
2278
+ @echo "HOST_CC = $(HOST_CC)"
2279
+ @echo "HOST_CXX = $(HOST_CXX)"
2280
+ @echo "HOST_CFLAGS = $(HOST_CFLAGS)"
2281
+ @echo "HOST_LDFLAGS = $(HOST_LDFLAGS)"
2282
+ @echo "HOST_LIBS = $(HOST_LIBS)"
2283
+ @echo "HOST_EXTRA_LIBS = $(HOST_EXTRA_LIBS)"
2284
+ @echo "HOST_EXTRA_DEPS = $(HOST_EXTRA_DEPS)"
2285
+ @echo "HOST_PROGRAM = $(HOST_PROGRAM)"
2286
+ @echo "HOST_OBJS = $(HOST_OBJS)"
2287
+ @echo "HOST_PROGOBJS = $(HOST_PROGOBJS)"
2288
+ @echo "HOST_LIBRARY = $(HOST_LIBRARY)"
2289
+
2290
+ showbuildmods::
2291
+ @echo "Build Modules = $(BUILD_MODULES)"
2292
+ @echo "Module dirs = $(BUILD_MODULE_DIRS)"
2293
+
2294
+ zipmakes:
2295
+ ifneq (,$(filter $(PROGRAM) $(SIMPLE_PROGRAMS) $(LIBRARY) $(SHARED_LIBRARY),$(TARGETS)))
2296
+ zip $(DEPTH)/makefiles $(subst $(topsrcdir),$(MOZ_SRC)/mozilla,$(srcdir)/Makefile.in)
2297
+ endif
2298
+ +$(LOOP_OVER_PARALLEL_DIRS)
2299
+ +$(LOOP_OVER_DIRS)
2300
+
2301
+ documentation:
2302
+ @cd $(DEPTH)
2303
+ $(DOXYGEN) $(DEPTH)/config/doxygen.cfg
2304
+
2305
+ ifdef ENABLE_TESTS
2306
+ check:: $(SUBMAKEFILES) $(MAKE_DIRS)
2307
+ +$(LOOP_OVER_PARALLEL_DIRS)
2308
+ +$(LOOP_OVER_DIRS)
2309
+ +$(LOOP_OVER_TOOL_DIRS)
2310
+ endif