summaryrefslogtreecommitdiff
path: root/js/src/Makefile.in
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/Makefile.in
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloaduxp-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/Makefile.in')
-rw-r--r--js/src/Makefile.in273
1 files changed, 273 insertions, 0 deletions
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
new file mode 100644
index 0000000000..3be6a67817
--- /dev/null
+++ b/js/src/Makefile.in
@@ -0,0 +1,273 @@
+# -*- Mode: makefile -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ifeq (,$(MAKE_VERSION))
+$(error GNU Make is required)
+endif
+make_min_ver := 3.81
+ifneq ($(make_min_ver),$(firstword $(sort $(make_min_ver) $(MAKE_VERSION))))
+$(error GNU Make $(make_min_ver) or higher is required)
+endif
+
+DASH_R = -r
+
+# Define keyword generator before rules.mk, see bug 323979 comment 50
+
+USE_HOST_CXX = 1
+
+ifdef HAVE_DTRACE
+ifneq ($(OS_ARCH),Darwin)
+DTRACE_PROBE_OBJ = $(LIBRARY_NAME)-dtrace.$(OBJ_SUFFIX)
+endif
+MOZILLA_DTRACE_SRC = $(srcdir)/devtools/javascript-trace.d
+endif
+
+# Ensure symbol versions of shared library on Linux do not conflict
+# with those in libxul.
+ifeq (Linux,$(OS_TARGET))
+OS_LDFLAGS += -Wl,-version-script,symverscript
+
+symverscript: symverscript.in
+ $(call py_action,preprocessor, \
+ -DVERSION='$(subst -,_,$(LIBRARY_NAME))' $< -o $@)
+
+EXTRA_DEPS += symverscript
+endif
+
+include $(topsrcdir)/config/rules.mk
+
+# check_vanilla_allocations.py is tailored to Linux, so only run it there.
+# That should be enough to catch any problems.
+check-vanilla-allocations:
+ $(PYTHON) $(topsrcdir)/config/check_vanilla_allocations.py $(REAL_LIBRARY)
+
+# The "aggressive" variant will likely fail on some compiler/platform
+# combinations, but is worth running by hand every once in a while.
+check-vanilla-allocations-aggressive:
+ $(PYTHON) $(topsrcdir)/config/check_vanilla_allocations.py --aggressive $(REAL_LIBRARY)
+
+ifeq ($(OS_ARCH),Linux)
+ifeq (,$(filter -flto,$(CFLAGS) $(CXXFLAGS) $(LDFLAGS)))
+check:: check-vanilla-allocations
+endif
+endif
+
+# Help ensure that the number of OOM errors in SpiderMonkey doesn't increase.
+# If the number of OOM errors changes, update the number below. We intend this
+# number to go down over time, by fixing OOMs.
+check-ooms:
+ $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(topsrcdir)/config/find_OOM_errors.py --regression 125
+
+ifeq ($(MOZ_DEBUG),1)
+#check:: check-ooms
+endif
+
+ifdef MOZ_VALGRIND
+ifndef MOZ_ASAN
+JITTEST_VALGRIND_FLAG = --valgrind
+endif
+endif
+
+ifneq ($(LLVM_SYMBOLIZER),)
+# Use the LLVM symbolizer when running jit-tests under ASan and TSan, if available
+ifdef MOZ_ASAN
+JITTEST_SANITIZER_ENV=ASAN_SYMBOLIZER_PATH='$(LLVM_SYMBOLIZER)'
+endif
+ifdef MOZ_TSAN
+JITTEST_SANITIZER_ENV=TSAN_OPTIONS="external_symbolizer_path=$(LLVM_SYMBOLIZER) $$TSAN_OPTIONS"
+endif
+ifdef MOZ_MSAN
+JITTEST_SANITIZER_ENV=MSAN_SYMBOLIZER_PATH='$(LLVM_SYMBOLIZER)'
+endif
+endif
+
+check-style::
+ (cd $(srcdir) && $(PYTHON) $(topsrcdir)/config/check_spidermonkey_style.py);
+
+check-masm::
+ (cd $(srcdir) && $(PYTHON) $(topsrcdir)/config/check_macroassembler_style.py);
+
+check-js-msg::
+ (cd $(topsrcdir) && $(PYTHON) $(topsrcdir)/config/check_js_msg_encoding.py);
+
+check-jit-test::
+ $(JITTEST_SANITIZER_ENV) $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
+ --no-slow --no-progress --format=automation --jitflags=all \
+ $(JITTEST_VALGRIND_FLAG) \
+ $(JITTEST_EXTRA_ARGS) \
+ $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX) $(JITTEST_TEST_ARGS)
+
+check:: check-style check-masm check-js-msg
+
+check-jstests:
+ $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/tests/jstests.py \
+ --no-progress --format=automation --timeout 300 \
+ $(JSTESTS_EXTRA_ARGS) \
+ $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX)
+
+# FIXME:
+# We want to run check-jstests as part of |make check| on all platforms, on
+# tinderbox. However, some configurations don't work quite right just yet.
+# Rather than risking regressions in major configurations while fixing these
+# secondary configuration, we work around them and fix the bugs later.
+#
+# Bug 652154: On Windows, SM(!m !t) don't work because of path problems with
+# their unusual directory layout
+#
+# Bug 652155: On Mac, SM(d) doesn't work for unknown reasons
+
+ifneq ($(OS_ARCH),WINNT)
+ifndef HAVE_DTRACE
+#check:: check-jstests
+endif
+endif
+
+DIST_GARBAGE = config.cache config.log config.status* \
+ config/autoconf.mk config/emptyvars.mk \
+ js-config.h js-confdefs.h \
+ backend.mk config/backend.mk devtools/backend.mk editline/backend.mk \
+ gdb/backend.mk jsapi-tests/backend.mk shell/backend.mk tests/backend.mk \
+ backend.RecursiveMakeBackend backend.RecursiveMakeBackend.pp \
+ devtools/rootAnalysis/Makefile
+
+distclean::
+ $(RM) $(DIST_GARBAGE)
+
+CFLAGS += $(MOZ_ZLIB_CFLAGS)
+
+# Silence warnings on AIX/HP-UX from non-GNU compilers
+ifndef GNU_CC
+ifeq ($(OS_ARCH),AIX)
+# Suppress warnings from xlC
+# 1540-1281: offsetof() on null non-POD types
+# 1540-1608: anonymous unions using static data members
+CFLAGS += -qsuppress=1540-1281 -qsuppress=1540-1608
+CXXFLAGS += -qsuppress=1540-1281 -qsuppress=1540-1608
+endif
+ifeq ($(OS_ARCH),HP-UX)
+# Suppress warnings from aCC
+# 3055: anonymous unions declaring types
+# 4189: offsetof() on non-POD types
+CFLAGS += +W3055,4189
+CXXFLAGS += +W3055,4189
+endif
+endif
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(TARGET_CPU),sparc)
+
+ifdef GNU_CC
+CFLAGS += -mcpu=v9
+CXXFLAGS += -mcpu=v9
+endif # GNU_CC
+
+endif
+endif
+
+$(LIBRARY_NAME).pc: js.pc
+ cp $^ $@
+
+# Install versioned file, for parallel installability in Linux distributions
+install:: $(LIBRARY_NAME).pc
+ cp $^ $(JS_LIBRARY_NAME).pc
+ $(SYSINSTALL) $(JS_LIBRARY_NAME).pc $(DESTDIR)$(libdir)/pkgconfig
+
+install:: js-config.h
+ $(SYSINSTALL) $^ $(DESTDIR)$(includedir)
+
+######################################################
+# BEGIN SpiderMonkey header installation
+#
+# Mozilla/Gecko/Firefox mostly doesn't concern itself with defining a sensible
+# install target, because it's shipping primarily packaged builds. And even if
+# it did, those builds wouldn't really have reason to include header files. So
+# we have to install public headers ourselves, rather than using something from
+# config/rules.mk or similar.
+#
+# The overall directory structure of the installed headers looks like so:
+#
+# $(includedir)/
+# $(LIBRARY_NAME)/
+# jsapi.h, jspubtd.h, etc. (all of EXPORTS)
+# js/
+# js/public/* headers (all are public)
+# ds/
+# js/src/ds/* public headers
+# gc/
+# js/src/gc/* public headers
+# mozilla/
+# mfbt headers
+#
+
+install::
+ $(call py_action,process_install_manifest,--no-remove --no-symlinks $(DESTDIR)$(includedir) $(DEPTH)/_build_manifests/install/dist_include)
+
+#
+# END SpiderMonkey header installation
+#############################################
+
+# Install versioned script, for parallel installability in Linux distributions
+install:: js-config
+ cp $^ js$(MOZJS_MAJOR_VERSION)-config
+ $(SYSINSTALL) js$(MOZJS_MAJOR_VERSION)-config $(DESTDIR)$(bindir)
+
+# Use install_name_tool to set the install_name properly for standalone
+# installed libraries on macOS
+install:: $(REAL_LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
+ifneq (,$(REAL_LIBRARY))
+ $(SYSINSTALL) $(REAL_LIBRARY) $(DESTDIR)$(libdir)
+ mv -f $(DESTDIR)$(libdir)/$(REAL_LIBRARY) $(subst $(STATIC_LIBRARY_NAME),$(LIBRARY_NAME),$(DESTDIR)$(libdir)/$(REAL_LIBRARY))
+endif
+ifneq (,$(SHARED_LIBRARY))
+ $(SYSINSTALL) $(SHARED_LIBRARY) $(DESTDIR)$(libdir)
+ifeq ($(OS_ARCH),Darwin)
+ install_name_tool -id $(abspath $(libdir)/$(SHARED_LIBRARY)) $(DESTDIR)$(libdir)/$(SHARED_LIBRARY)
+endif
+endif
+ifneq (,$(IMPORT_LIBRARY))
+ifneq ($(IMPORT_LIBRARY),$(SHARED_LIBRARY))
+ $(SYSINSTALL) $(IMPORT_LIBRARY) $(DESTDIR)$(libdir)
+endif
+endif
+ $(MAKE) -C shell install
+
+ifdef HAVE_DTRACE
+javascript-trace.h: $(srcdir)/devtools/javascript-trace.d
+ dtrace -x nolibs -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
+ sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
+ -e '/const/!s/char \*/const char */g' \
+ javascript-trace.h.in > javascript-trace.h
+
+# We can't automatically generate dependencies on auto-generated headers;
+# we have to list them explicitly.
+$(addsuffix .$(OBJ_SUFFIX),Probes jsinterp jsobj): $(CURDIR)/javascript-trace.h
+endif
+
+###############################################
+# Generating source package tarballs
+# (only possible when tar is found)
+ifneq (,$(TAR))
+
+source-package:
+ SRCDIR=$(srcdir) \
+ DIST=$(DIST) \
+ MKDIR=$(MKDIR) \
+ TAR=$(TAR) \
+ AUTOCONF=$(AUTOCONF) \
+ MOZJS_MAJOR_VERSION=$(MOZJS_MAJOR_VERSION) \
+ MOZJS_MINOR_VERSION=$(MOZJS_MINOR_VERSION) \
+ MOZJS_PATCH_VERSION=$(MOZJS_PATCH_VERSION) \
+ MOZJS_ALPHA=$(MOZJS_ALPHA) \
+ $(srcdir)/make-source-package.sh
+
+clean::
+ DIST=$(DIST) \
+ MOZJS_MAJOR_VERSION=$(MOZJS_MAJOR_VERSION) \
+ MOZJS_MINOR_VERSION=$(MOZJS_MINOR_VERSION) \
+ MOZJS_PATCH_VERSION=$(MOZJS_PATCH_VERSION) \
+ MOZJS_ALPHA=$(MOZJS_ALPHA) \
+ $(srcdir)/make-source-package.sh clean
+
+endif