summaryrefslogtreecommitdiffstats
path: root/js/src/build/moz.build
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/build/moz.build
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/build/moz.build')
-rw-r--r--js/src/build/moz.build108
1 files changed, 108 insertions, 0 deletions
diff --git a/js/src/build/moz.build b/js/src/build/moz.build
new file mode 100644
index 0000000000..a19a65db6b
--- /dev/null
+++ b/js/src/build/moz.build
@@ -0,0 +1,108 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+CONFIGURE_SUBST_FILES += [
+ "js-config",
+ "js.pc",
+]
+
+LIBRARY_DEFINES["EXPORT_JS_API"] = True
+
+# Note: The static standalone js library is currently broken due
+# to static mozglue missing, see bug 1588340 for more information.
+LIBRARY_DEFINES["MOZ_HAS_MOZGLUE"] = True
+
+# JavaScript must be built shared, even for static builds, as it is used by
+# other modules which are always built shared. Failure to do so results in
+# the js code getting copied into xpinstall and jsd as well as mozilla-bin,
+# and then the static data cells used for locking no longer work.
+#
+# In fact, we now build both a static and a shared library, as the
+# JS shell would like to link to the static library.
+
+if CONFIG["JS_SHARED_LIBRARY"]:
+ GeckoSharedLibrary("js", linkage=None)
+ SHARED_LIBRARY_NAME = CONFIG["JS_LIBRARY_NAME"]
+
+ # Ensure symbol versions of shared library on Linux do not conflict
+ # with those in libxul.
+ if CONFIG["OS_TARGET"] == "Linux":
+ GeneratedFile(
+ "symverscript",
+ script="/build/gen_symverscript.py",
+ inputs=["symverscript.in"],
+ flags=[CONFIG["JS_LIBRARY_NAME"].replace("-", "_")],
+ )
+ SYMBOLS_FILE = "!symverscript"
+else:
+ Library("js")
+
+FORCE_STATIC_LIB = True
+STATIC_LIBRARY_NAME = "js_static"
+
+if CONFIG["JS_HAS_INTL_API"]:
+ USE_LIBS += [
+ "icu",
+ ]
+
+if CONFIG["MOZ_ICU4X"]:
+ USE_LIBS += ["icu4xdata"]
+
+USE_LIBS += [
+ "nspr",
+ "zlib",
+]
+
+if CONFIG["OS_ARCH"] not in ("WINNT", "HP-UX"):
+ OS_LIBS += [
+ "m",
+ ]
+
+if CONFIG["OS_ARCH"] == "FreeBSD":
+ OS_LIBS += [
+ "-pthread",
+ ]
+
+if CONFIG["OS_ARCH"] == "Linux":
+ OS_LIBS += [
+ "dl",
+ ]
+
+if CONFIG["OS_ARCH"] == "SunOS":
+ OS_LIBS += [
+ "posix4",
+ "dl",
+ "nsl",
+ "socket",
+ ]
+
+if CONFIG["OS_ARCH"] == "WINNT":
+ OS_LIBS += [
+ "bcrypt",
+ "ntdll",
+ ]
+
+if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
+ OS_LIBS += ["atomic"]
+
+OS_LIBS += CONFIG["REALTIME_LIBS"]
+
+NO_EXPAND_LIBS = True
+
+DIST_INSTALL = True
+
+# Run SpiderMonkey style checker after linking the static library. This avoids
+# running the script for no-op builds.
+GeneratedFile(
+ "spidermonkey_checks",
+ script="/config/run_spidermonkey_checks.py",
+ inputs=[
+ "!%sjs_static.%s" % (CONFIG["LIB_PREFIX"], CONFIG["LIB_SUFFIX"]),
+ "/config/check_spidermonkey_style.py",
+ "/config/check_macroassembler_style.py",
+ "/config/check_js_opcode.py",
+ ],
+)