johnson 1.2.0 → 2.0.0.pre0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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