Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
michael@0 | 1 | # -*- Mode: makefile -*- |
michael@0 | 2 | # |
michael@0 | 3 | # This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 4 | # License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 5 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
michael@0 | 6 | |
michael@0 | 7 | ifndef .PYMAKE |
michael@0 | 8 | ifeq (,$(MAKE_VERSION)) |
michael@0 | 9 | $(error GNU Make is required) |
michael@0 | 10 | endif |
michael@0 | 11 | make_min_ver := 3.81 |
michael@0 | 12 | ifneq ($(make_min_ver),$(firstword $(sort $(make_min_ver) $(MAKE_VERSION)))) |
michael@0 | 13 | $(error GNU Make $(make_min_ver) or higher is required) |
michael@0 | 14 | endif |
michael@0 | 15 | endif |
michael@0 | 16 | |
michael@0 | 17 | TOPLEVEL_BUILD := 1 |
michael@0 | 18 | |
michael@0 | 19 | run_for_side_effects := $(shell echo 'MAKE: $(MAKE)') |
michael@0 | 20 | STATIC_LIBRARY_NAME = js_static |
michael@0 | 21 | LIBS = $(NSPR_LIBS) |
michael@0 | 22 | |
michael@0 | 23 | DIST_INSTALL = 1 |
michael@0 | 24 | |
michael@0 | 25 | ifdef JS_STANDALONE |
michael@0 | 26 | SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt) |
michael@0 | 27 | endif |
michael@0 | 28 | |
michael@0 | 29 | ifdef JS_HAS_CTYPES |
michael@0 | 30 | ifdef MOZ_NATIVE_FFI |
michael@0 | 31 | LOCAL_INCLUDES = $(MOZ_FFI_CFLAGS) |
michael@0 | 32 | endif |
michael@0 | 33 | |
michael@0 | 34 | ifdef MOZ_NATIVE_FFI |
michael@0 | 35 | EXTRA_DSO_LDOPTS += $(MOZ_FFI_LIBS) |
michael@0 | 36 | else |
michael@0 | 37 | SHARED_LIBRARY_LIBS += \ |
michael@0 | 38 | ctypes/libffi/.libs/libffi.$(LIB_SUFFIX) \ |
michael@0 | 39 | $(NULL) |
michael@0 | 40 | endif |
michael@0 | 41 | |
michael@0 | 42 | endif # JS_HAS_CTYPES |
michael@0 | 43 | |
michael@0 | 44 | DASH_R = -r |
michael@0 | 45 | |
michael@0 | 46 | ifneq (,$(filter WINNT,$(OS_ARCH))) |
michael@0 | 47 | SDK_LIBRARY = $(IMPORT_LIBRARY) |
michael@0 | 48 | else |
michael@0 | 49 | SDK_LIBRARY = $(SHARED_LIBRARY) |
michael@0 | 50 | endif |
michael@0 | 51 | |
michael@0 | 52 | EXTRA_DSO_LDOPTS += $(NSPR_LIBS) |
michael@0 | 53 | |
michael@0 | 54 | # Define keyword generator before rules.mk, see bug 323979 comment 50 |
michael@0 | 55 | |
michael@0 | 56 | GARBAGE += jsautokw.h host_jskwgen$(HOST_BIN_SUFFIX) |
michael@0 | 57 | |
michael@0 | 58 | GARBAGE += selfhosted.out.h |
michael@0 | 59 | |
michael@0 | 60 | USE_HOST_CXX = 1 |
michael@0 | 61 | |
michael@0 | 62 | ifdef HAVE_DTRACE |
michael@0 | 63 | ifneq ($(OS_ARCH),Darwin) |
michael@0 | 64 | DTRACE_PROBE_OBJ = $(LIBRARY_NAME)-dtrace.$(OBJ_SUFFIX) |
michael@0 | 65 | endif |
michael@0 | 66 | MOZILLA_DTRACE_SRC = $(srcdir)/devtools/javascript-trace.d |
michael@0 | 67 | endif |
michael@0 | 68 | |
michael@0 | 69 | # Ensure symbol versions of shared library on Linux do not conflict |
michael@0 | 70 | # with those in libxul. |
michael@0 | 71 | ifeq (Linux,$(OS_TARGET)) |
michael@0 | 72 | EXTRA_DSO_LDOPTS += -Wl,-version-script,symverscript |
michael@0 | 73 | |
michael@0 | 74 | symverscript: symverscript.in |
michael@0 | 75 | $(call py_action,preprocessor, \ |
michael@0 | 76 | -DVERSION='$(subst -,_,$(LIBRARY_NAME))' $< -o $@) |
michael@0 | 77 | |
michael@0 | 78 | EXTRA_DEPS += symverscript |
michael@0 | 79 | endif |
michael@0 | 80 | |
michael@0 | 81 | export_files = js-config.h |
michael@0 | 82 | ifdef HAVE_DTRACE |
michael@0 | 83 | export_files += $(CURDIR)/javascript-trace.h |
michael@0 | 84 | endif |
michael@0 | 85 | |
michael@0 | 86 | INSTALL_TARGETS += jsconfig |
michael@0 | 87 | jsconfig_FILES = $(export_files) |
michael@0 | 88 | jsconfig_DEST = $(DIST)/include |
michael@0 | 89 | jsconfig_TARGET := export |
michael@0 | 90 | |
michael@0 | 91 | include $(topsrcdir)/config/rules.mk |
michael@0 | 92 | |
michael@0 | 93 | ############################################# |
michael@0 | 94 | # BEGIN ECMAScript Internationalization API |
michael@0 | 95 | # |
michael@0 | 96 | |
michael@0 | 97 | # ICU headers need to be available whether we build with the complete |
michael@0 | 98 | # Internationalization API or not - ICU stubs rely on them. |
michael@0 | 99 | |
michael@0 | 100 | LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS) |
michael@0 | 101 | |
michael@0 | 102 | ifdef ENABLE_INTL_API |
michael@0 | 103 | ifndef MOZ_NATIVE_ICU |
michael@0 | 104 | |
michael@0 | 105 | endif |
michael@0 | 106 | endif |
michael@0 | 107 | |
michael@0 | 108 | # |
michael@0 | 109 | # END ECMAScript Internationalization API |
michael@0 | 110 | ############################################# |
michael@0 | 111 | |
michael@0 | 112 | |
michael@0 | 113 | # check_vanilla_allocations.py is tailored to Linux, so only run it there. |
michael@0 | 114 | # That should be enough to catch any problems. |
michael@0 | 115 | check-vanilla-allocations: |
michael@0 | 116 | $(PYTHON) $(topsrcdir)/config/check_vanilla_allocations.py $(REAL_LIBRARY) |
michael@0 | 117 | |
michael@0 | 118 | # The "aggressive" variant will likely fail on some compiler/platform |
michael@0 | 119 | # combinations, but is worth running by hand every once in a while. |
michael@0 | 120 | check-vanilla-allocations-aggressive: |
michael@0 | 121 | $(PYTHON) $(topsrcdir)/config/check_vanilla_allocations.py --aggressive $(REAL_LIBRARY) |
michael@0 | 122 | |
michael@0 | 123 | ifeq ($(OS_ARCH),Linux) |
michael@0 | 124 | check:: check-vanilla-allocations |
michael@0 | 125 | endif |
michael@0 | 126 | |
michael@0 | 127 | # Help ensure that the number of OOM errors in SpiderMonkey doesn't increase. |
michael@0 | 128 | # If the number of OOM errors changes, update the number below. We intend this |
michael@0 | 129 | # number to go down over time, by fixing OOMs. |
michael@0 | 130 | check-ooms: |
michael@0 | 131 | $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(topsrcdir)/config/find_OOM_errors.py --regression 125 |
michael@0 | 132 | |
michael@0 | 133 | ifeq ($(MOZ_DEBUG),1) |
michael@0 | 134 | #check:: check-ooms |
michael@0 | 135 | endif |
michael@0 | 136 | |
michael@0 | 137 | ifdef MOZ_VALGRIND |
michael@0 | 138 | ifndef MOZ_ASAN |
michael@0 | 139 | JITTEST_VALGRIND_FLAG = --valgrind |
michael@0 | 140 | endif |
michael@0 | 141 | endif |
michael@0 | 142 | |
michael@0 | 143 | ifdef MOZ_ASAN |
michael@0 | 144 | ifneq ($(LLVM_SYMBOLIZER),) |
michael@0 | 145 | # Use the LLVM symbolizer when running jit-tests under ASan, if available |
michael@0 | 146 | JITTEST_ASAN_ENV=ASAN_SYMBOLIZER_PATH='$(LLVM_SYMBOLIZER)' |
michael@0 | 147 | endif |
michael@0 | 148 | endif |
michael@0 | 149 | |
michael@0 | 150 | check-style:: |
michael@0 | 151 | (cd $(srcdir) && $(PYTHON) $(topsrcdir)/config/check_spidermonkey_style.py); |
michael@0 | 152 | |
michael@0 | 153 | check-jit-test:: |
michael@0 | 154 | $(JITTEST_ASAN_ENV) $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \ |
michael@0 | 155 | --no-slow --no-progress --tinderbox --tbpl $(JITTEST_VALGRIND_FLAG) \ |
michael@0 | 156 | $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX) |
michael@0 | 157 | |
michael@0 | 158 | check:: check-style |
michael@0 | 159 | |
michael@0 | 160 | # jstests doesn't have a --jitflags option, so we need to loop, updating the |
michael@0 | 161 | # exit code (RC) after each invocation. |
michael@0 | 162 | # FIXME: MethodJIT doesn't work for 1 test case (bug 644393), so |
michael@0 | 163 | # --no-extensions is set to skip that test. Remove as soon as possible. |
michael@0 | 164 | check-jstests: |
michael@0 | 165 | RC=0; \ |
michael@0 | 166 | for f in `echo '$(JITFLAGS)' | tr ',' '\n'`; \ |
michael@0 | 167 | do \ |
michael@0 | 168 | $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/tests/jstests.py \ |
michael@0 | 169 | --tinderbox --no-progress \ |
michael@0 | 170 | --no-extensions \ |
michael@0 | 171 | --timeout 300 \ |
michael@0 | 172 | --args="`echo $$f | sed 's/\(.\)/ -\1/g'`" \ |
michael@0 | 173 | $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX); \ |
michael@0 | 174 | RC=$$(( $$RC || $$?)); \ |
michael@0 | 175 | done; \ |
michael@0 | 176 | exit $$RC |
michael@0 | 177 | |
michael@0 | 178 | # FIXME: |
michael@0 | 179 | # We want to run check-jstests as part of |make check| on all platforms, on |
michael@0 | 180 | # tinderbox. However, some configurations don't work quite right just yet. |
michael@0 | 181 | # Rather than risking regressions in major configurations while fixing these |
michael@0 | 182 | # secondary configuration, we work around them and fix the bugs later. |
michael@0 | 183 | # |
michael@0 | 184 | # Bug 652154: On Windows, SM(!m !t) don't work because of path problems with |
michael@0 | 185 | # their unusual directory layout |
michael@0 | 186 | # |
michael@0 | 187 | # Bug 652155: On Mac, SM(d) doesn't work for unknown reasons |
michael@0 | 188 | |
michael@0 | 189 | ifneq ($(OS_ARCH),WINNT) |
michael@0 | 190 | ifndef HAVE_DTRACE |
michael@0 | 191 | #check:: check-jstests |
michael@0 | 192 | endif |
michael@0 | 193 | endif |
michael@0 | 194 | |
michael@0 | 195 | DIST_GARBAGE = config.cache config.log config.status* \ |
michael@0 | 196 | config/autoconf.mk config/emptyvars.mk \ |
michael@0 | 197 | js-config.h js-confdefs.h \ |
michael@0 | 198 | backend.mk config/backend.mk devtools/backend.mk editline/backend.mk \ |
michael@0 | 199 | gdb/backend.mk jsapi-tests/backend.mk shell/backend.mk tests/backend.mk \ |
michael@0 | 200 | backend.RecursiveMakeBackend backend.RecursiveMakeBackend.pp \ |
michael@0 | 201 | devtools/rootAnalysis/Makefile |
michael@0 | 202 | |
michael@0 | 203 | distclean:: |
michael@0 | 204 | $(RM) $(DIST_GARBAGE) |
michael@0 | 205 | |
michael@0 | 206 | ifneq ($(findstring -L,$(NSPR_LIBS)),) |
michael@0 | 207 | NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS))) |
michael@0 | 208 | else |
michael@0 | 209 | NSPR_STATIC_PATH = $(DIST)/lib |
michael@0 | 210 | endif |
michael@0 | 211 | |
michael@0 | 212 | # HP-UX does not require the extra linking of "-lm" |
michael@0 | 213 | ifeq (,$(filter HP-UX WINNT,$(OS_ARCH))) |
michael@0 | 214 | EXTRA_LIBS += -lm |
michael@0 | 215 | endif |
michael@0 | 216 | |
michael@0 | 217 | CFLAGS += $(MOZ_ZLIB_CFLAGS) |
michael@0 | 218 | EXTRA_LIBS += $(MOZ_ZLIB_LIBS) |
michael@0 | 219 | # Enable zlib usage if zlib has been located. When building the browser on |
michael@0 | 220 | # Windows, MOZ_ZLIB_LIBS is empty because zlib is part of libmozglue. We thus |
michael@0 | 221 | # also enable zlib if mozglue is present. |
michael@0 | 222 | ifneq (,$(MOZ_ZLIB_LIBS)$(MOZ_GLUE_LDFLAGS)) |
michael@0 | 223 | DEFINES += -DUSE_ZLIB |
michael@0 | 224 | endif |
michael@0 | 225 | |
michael@0 | 226 | ifdef MOZ_SHARED_ICU |
michael@0 | 227 | EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS) |
michael@0 | 228 | else |
michael@0 | 229 | SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS) |
michael@0 | 230 | endif |
michael@0 | 231 | |
michael@0 | 232 | # Prevent floating point errors caused by VC++ optimizations |
michael@0 | 233 | ifdef _MSC_VER |
michael@0 | 234 | # XXX We should add this to CXXFLAGS, too? |
michael@0 | 235 | CFLAGS += -fp:precise |
michael@0 | 236 | endif # _MSC_VER |
michael@0 | 237 | |
michael@0 | 238 | ifeq ($(OS_ARCH),FreeBSD) |
michael@0 | 239 | EXTRA_LIBS += -pthread |
michael@0 | 240 | endif |
michael@0 | 241 | ifeq ($(OS_ARCH),Linux) |
michael@0 | 242 | EXTRA_LIBS += -ldl |
michael@0 | 243 | endif |
michael@0 | 244 | # Silence warnings on AIX/HP-UX from non-GNU compilers |
michael@0 | 245 | ifndef GNU_CC |
michael@0 | 246 | ifeq ($(OS_ARCH),AIX) |
michael@0 | 247 | # Suppress warnings from xlC |
michael@0 | 248 | # 1540-1281: offsetof() on null non-POD types |
michael@0 | 249 | # 1540-1608: anonymous unions using static data members |
michael@0 | 250 | CFLAGS += -qsuppress=1540-1281 -qsuppress=1540-1608 |
michael@0 | 251 | CXXFLAGS += -qsuppress=1540-1281 -qsuppress=1540-1608 |
michael@0 | 252 | endif |
michael@0 | 253 | ifeq ($(OS_ARCH),HP-UX) |
michael@0 | 254 | # Suppress warnings from aCC |
michael@0 | 255 | # 3055: anonymous unions declaring types |
michael@0 | 256 | # 4189: offsetof() on non-POD types |
michael@0 | 257 | CFLAGS += +W3055,4189 |
michael@0 | 258 | CXXFLAGS += +W3055,4189 |
michael@0 | 259 | endif |
michael@0 | 260 | endif |
michael@0 | 261 | ifeq ($(OS_ARCH),SunOS) |
michael@0 | 262 | ifeq ($(TARGET_CPU),sparc) |
michael@0 | 263 | |
michael@0 | 264 | ifdef GNU_CC |
michael@0 | 265 | CFLAGS += -mcpu=v9 |
michael@0 | 266 | CXXFLAGS += -mcpu=v9 |
michael@0 | 267 | endif # GNU_CC |
michael@0 | 268 | |
michael@0 | 269 | endif |
michael@0 | 270 | EXTRA_LIBS += -lposix4 -ldl -lnsl -lsocket |
michael@0 | 271 | endif |
michael@0 | 272 | |
michael@0 | 273 | SCRIPTS = $(JS_CONFIG_NAME) |
michael@0 | 274 | SDK_BINARY = $(JS_CONFIG_NAME) |
michael@0 | 275 | |
michael@0 | 276 | $(LIBRARY_NAME).pc: js.pc |
michael@0 | 277 | cp $^ $@ |
michael@0 | 278 | |
michael@0 | 279 | install:: $(LIBRARY_NAME).pc |
michael@0 | 280 | $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig |
michael@0 | 281 | |
michael@0 | 282 | ###################################################### |
michael@0 | 283 | # BEGIN SpiderMonkey header installation |
michael@0 | 284 | # |
michael@0 | 285 | # Mozilla/Gecko/Firefox mostly doesn't concern itself with defining a sensible |
michael@0 | 286 | # install target, because it's shipping primarily packaged builds. And even if |
michael@0 | 287 | # it did, those builds wouldn't really have reason to include header files. So |
michael@0 | 288 | # we have to install public headers ourselves, rather than using something from |
michael@0 | 289 | # config/rules.mk or similar. |
michael@0 | 290 | # |
michael@0 | 291 | # The overall directory structure of the installed headers looks like so: |
michael@0 | 292 | # |
michael@0 | 293 | # $(includedir)/ |
michael@0 | 294 | # $(LIBRARY_NAME)/ |
michael@0 | 295 | # jsapi.h, jspubtd.h, etc. (all of EXPORTS) |
michael@0 | 296 | # js/ |
michael@0 | 297 | # js/public/* headers (all are public) |
michael@0 | 298 | # ds/ |
michael@0 | 299 | # js/src/ds/* public headers |
michael@0 | 300 | # gc/ |
michael@0 | 301 | # js/src/gc/* public headers |
michael@0 | 302 | # mozilla/ |
michael@0 | 303 | # mfbt headers |
michael@0 | 304 | # |
michael@0 | 305 | |
michael@0 | 306 | install:: |
michael@0 | 307 | $(call py_action,process_install_manifest,--no-remove $(DESTDIR)$(includedir) $(DEPTH)/_build_manifests/install/dist_include) |
michael@0 | 308 | |
michael@0 | 309 | # |
michael@0 | 310 | # END SpiderMonkey header installation |
michael@0 | 311 | ############################################# |
michael@0 | 312 | |
michael@0 | 313 | install:: $(SCRIPTS) |
michael@0 | 314 | $(SYSINSTALL) $^ $(DESTDIR)$(bindir) |
michael@0 | 315 | |
michael@0 | 316 | install:: $(REAL_LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) |
michael@0 | 317 | ifneq (,$(REAL_LIBRARY)) |
michael@0 | 318 | $(SYSINSTALL) $(REAL_LIBRARY) $(DESTDIR)$(libdir) |
michael@0 | 319 | mv -f $(DESTDIR)$(libdir)/$(REAL_LIBRARY) $(subst $(STATIC_LIBRARY_NAME),$(LIBRARY_NAME),$(DESTDIR)$(libdir)/$(REAL_LIBRARY)) |
michael@0 | 320 | endif |
michael@0 | 321 | ifneq (,$(SHARED_LIBRARY)) |
michael@0 | 322 | $(SYSINSTALL) $(SHARED_LIBRARY) $(DESTDIR)$(libdir) |
michael@0 | 323 | endif |
michael@0 | 324 | ifneq (,$(IMPORT_LIBRARY)) |
michael@0 | 325 | $(SYSINSTALL) $(IMPORT_LIBRARY) $(DESTDIR)$(libdir) |
michael@0 | 326 | endif |
michael@0 | 327 | $(MAKE) -C shell install |
michael@0 | 328 | |
michael@0 | 329 | # Use CURDIR to avoid finding a jsautokw.h in the source tree (from a |
michael@0 | 330 | # previous build?) via VPATH when we're building in a separate tree. |
michael@0 | 331 | $(CURDIR)/jsautokw.h: host_jskwgen$(HOST_BIN_SUFFIX) |
michael@0 | 332 | ./host_jskwgen$(HOST_BIN_SUFFIX) $@ |
michael@0 | 333 | |
michael@0 | 334 | # Force auto-header generation before compiling any source that may use them |
michael@0 | 335 | $(OBJS): $(CURDIR)/jsautokw.h |
michael@0 | 336 | |
michael@0 | 337 | ifdef MOZ_ETW |
michael@0 | 338 | ETWProvider.h ETWProvider.rc ETWProvider.mof: ETWProvider.man |
michael@0 | 339 | $(MC) -um -mof $^ |
michael@0 | 340 | |
michael@0 | 341 | ETWProvider.res: ETWProvider.rc |
michael@0 | 342 | $(RC) -r -i '$(SDKDIR)Include' $^ |
michael@0 | 343 | |
michael@0 | 344 | export:: ETWProvider.res |
michael@0 | 345 | |
michael@0 | 346 | install:: ETWProvider.mof ETWProvider.man |
michael@0 | 347 | $(SYSINSTALL) $^ $(DESTDIR)$(bindir) |
michael@0 | 348 | |
michael@0 | 349 | endif |
michael@0 | 350 | |
michael@0 | 351 | ifdef HAVE_DTRACE |
michael@0 | 352 | $(CURDIR)/javascript-trace.h: $(srcdir)/devtools/javascript-trace.d |
michael@0 | 353 | dtrace -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in |
michael@0 | 354 | sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \ |
michael@0 | 355 | -e '/const/!s/char \*/const char */g' \ |
michael@0 | 356 | javascript-trace.h.in > javascript-trace.h |
michael@0 | 357 | |
michael@0 | 358 | # We can't automatically generate dependencies on auto-generated headers; |
michael@0 | 359 | # we have to list them explicitly. |
michael@0 | 360 | $(addsuffix .$(OBJ_SUFFIX),Probes jsinterp jsobj): $(CURDIR)/javascript-trace.h |
michael@0 | 361 | endif |
michael@0 | 362 | |
michael@0 | 363 | # Prepare self-hosted JS code for embedding |
michael@0 | 364 | export:: selfhosting |
michael@0 | 365 | selfhosting:: selfhosted.out.h |
michael@0 | 366 | |
michael@0 | 367 | selfhosting_srcs := \ |
michael@0 | 368 | $(srcdir)/builtin/Utilities.js \ |
michael@0 | 369 | $(srcdir)/builtin/ParallelUtilities.js \ |
michael@0 | 370 | $(srcdir)/builtin/Array.js \ |
michael@0 | 371 | $(srcdir)/builtin/Date.js \ |
michael@0 | 372 | $(srcdir)/builtin/Intl.js \ |
michael@0 | 373 | $(srcdir)/builtin/IntlData.js \ |
michael@0 | 374 | $(srcdir)/builtin/Iterator.js \ |
michael@0 | 375 | $(srcdir)/builtin/Map.js \ |
michael@0 | 376 | $(srcdir)/builtin/Number.js \ |
michael@0 | 377 | $(srcdir)/builtin/String.js \ |
michael@0 | 378 | $(srcdir)/builtin/Set.js \ |
michael@0 | 379 | $(srcdir)/builtin/TypedObject.js \ |
michael@0 | 380 | $(NULL) |
michael@0 | 381 | |
michael@0 | 382 | selfhosted_out_h_deps := \ |
michael@0 | 383 | $(selfhosting_srcs) \ |
michael@0 | 384 | $(srcdir)/js.msg \ |
michael@0 | 385 | $(srcdir)/builtin/embedjs.py \ |
michael@0 | 386 | $(srcdir)/builtin/TypedObjectConstants.h \ |
michael@0 | 387 | $(NULL) |
michael@0 | 388 | |
michael@0 | 389 | SELFHOSTED_DEFINES += $(DEFINES) $(ACDEFINES) |
michael@0 | 390 | ifdef MOZ_DEBUG |
michael@0 | 391 | SELFHOSTED_DEFINES += $(MOZ_DEBUG_ENABLE_DEFS) |
michael@0 | 392 | else |
michael@0 | 393 | SELFHOSTED_DEFINES += $(MOZ_DEBUG_DISABLE_DEFS) |
michael@0 | 394 | endif |
michael@0 | 395 | |
michael@0 | 396 | selfhosted.out.h: $(selfhosted_out_h_deps) |
michael@0 | 397 | $(PYTHON) $(srcdir)/builtin/embedjs.py $(SELFHOSTED_DEFINES) \ |
michael@0 | 398 | -p '$(CPP)' -m $(srcdir)/js.msg -o $@ $(selfhosting_srcs) |
michael@0 | 399 | |
michael@0 | 400 | ############################################### |
michael@0 | 401 | # Generating source package tarballs |
michael@0 | 402 | # (only possible when tar is found) |
michael@0 | 403 | ifneq (,$(TAR)) |
michael@0 | 404 | |
michael@0 | 405 | source-package: |
michael@0 | 406 | SRCDIR=$(srcdir) \ |
michael@0 | 407 | DIST=$(DIST) \ |
michael@0 | 408 | MAKE=$(MAKE) \ |
michael@0 | 409 | MKDIR=$(MKDIR) \ |
michael@0 | 410 | TAR=$(TAR) \ |
michael@0 | 411 | MOZJS_MAJOR_VERSION=$(MOZJS_MAJOR_VERSION) \ |
michael@0 | 412 | MOZJS_MINOR_VERSION=$(MOZJS_MINOR_VERSION) \ |
michael@0 | 413 | MOZJS_PATCH_VERSION=$(MOZJS_PATCH_VERSION) \ |
michael@0 | 414 | MOZJS_ALPHA=$(MOZJS_ALPHA) \ |
michael@0 | 415 | $(srcdir)/make-source-package.sh |
michael@0 | 416 | |
michael@0 | 417 | clean:: |
michael@0 | 418 | DIST=$(DIST) \ |
michael@0 | 419 | MOZJS_MAJOR_VERSION=$(MOZJS_MAJOR_VERSION) \ |
michael@0 | 420 | MOZJS_MINOR_VERSION=$(MOZJS_MINOR_VERSION) \ |
michael@0 | 421 | MOZJS_PATCH_VERSION=$(MOZJS_PATCH_VERSION) \ |
michael@0 | 422 | MOZJS_ALPHA=$(MOZJS_ALPHA) \ |
michael@0 | 423 | $(srcdir)/make-source-package.sh clean |
michael@0 | 424 | |
michael@0 | 425 | endif |