blob: a1a5ddc3b02de4beefd61e40391895760c84258b [file] [log] [blame]
Andrew Geisslereff27472021-10-29 15:35:00 -05001SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
2HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3LICENSE = "MPL-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
5
6SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
7 file://0001-Cargo.toml-do-not-abort-on-panic.patch \
8 file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \
9 file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \
10 file://0004-use-asm-sgidefs.h.patch \
11 file://fix-musl-build.patch \
12 file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
13 file://riscv32.patch \
14 file://nojit-32bit-arch-fix.patch \
15 "
16SRC_URI[sha256sum] = "3ef3cfd321d0c2c80ee1b41b8baf7a1ea4daf93c29e1377274933440ff5e42c3"
17
18S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
19
20inherit pkgconfig perlnative python3native rust
21
22DEPENDS += "zlib cargo-native python3"
23
24B = "${WORKDIR}/build"
25
26export PYTHONPATH = "${S}/build:${S}/third_party/python/PyYAML/lib3:${S}/testing/mozbase/mozfile:${S}/python/mozboot:${S}/third_party/python/distro:${S}/testing/mozbase/mozinfo:${S}/config:${S}/testing/mozbase/manifestparser:${S}/third_party/python/pytoml:${S}/testing/mozbase/mozprocess:${S}/third_party/python/six:${S}/python/mozbuild:${S}/python/mozbuild/mozbuild:${S}/python/mach:${S}/third_party/python/jsmin:${S}/python/mozversioncontrol"
27
28export HOST_CC = "${BUILD_CC}"
29export HOST_CXX = "${BUILD_CXX}"
30export HOST_CFLAGS = "${BUILD_CFLAGS}"
31export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
32export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
33
34export AS = "${CC}"
35
36export RUSTFLAGS
37
38JIT ?= ""
39
40JIT:mipsarch = "--disable-jit"
41
42do_configure() {
43 cd ${B}
44 python3 ${S}/configure.py \
45 --enable-project=js \
46 --target=${HOST_SYS} \
47 --host=${BUILD_SYS} \
48 --prefix=${prefix} \
49 --libdir=${libdir} \
50 --disable-jemalloc \
51 ${JIT}
52
53}
54
55do_install() {
56 oe_runmake 'DESTDIR=${D}' install
57}
58
59inherit multilib_script multilib_header
60
61MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js91-config"
62
63do_install:append() {
64 oe_multilib_header mozjs-91/js-config.h
65 sed -e 's@${STAGING_DIR_HOST}@@g' \
66 -i ${D}${bindir}/js91-config
67}
68
69PACKAGES =+ "lib${BPN}-staticdev lib${BPN}"
70FILES:lib${BPN}-staticdev += "${libdir}/libjs_static.ajs"
71FILES:lib${BPN} += "${libdir}/lib*"