xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-91_91.8.0.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
2*4882a593SmuzhiyunHOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3*4882a593SmuzhiyunLICENSE = "MPL-2.0"
4*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
7*4882a593Smuzhiyun           file://0001-Cargo.toml-do-not-abort-on-panic.patch \
8*4882a593Smuzhiyun           file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \
9*4882a593Smuzhiyun           file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \
10*4882a593Smuzhiyun           file://0004-use-asm-sgidefs.h.patch \
11*4882a593Smuzhiyun           file://fix-musl-build.patch \
12*4882a593Smuzhiyun           file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
13*4882a593Smuzhiyun           file://riscv32.patch \
14*4882a593Smuzhiyun           file://0005-nojit-32bit-arch-fix.patch \
15*4882a593Smuzhiyun           file://0006-Fix-build-on-powerpc.patch \
16*4882a593Smuzhiyun           file://0001-util.configure-fix-one-occasionally-reproduced-confi.patch \
17*4882a593Smuzhiyun           file://0001-rewrite-cargo-host-linker-in-python3.patch  \
18*4882a593Smuzhiyun           "
19*4882a593SmuzhiyunSRC_URI[sha256sum] = "d483a853cbf5c7f93621093432e3dc0b7ed847f2a5318b964828d19f9f087f3a"
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunS = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
22*4882a593Smuzhiyun
23*4882a593Smuzhiyuninherit pkgconfig perlnative python3native rust
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunDEPENDS += "zlib cargo-native python3 icu"
26*4882a593SmuzhiyunDEPENDS:remove:mipsarch = "icu"
27*4882a593SmuzhiyunDEPENDS:remove:powerpc:toolchain-clang = "icu"
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunB = "${WORKDIR}/build"
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunexport 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"
32*4882a593Smuzhiyun
33*4882a593Smuzhiyunexport HOST_CC = "${BUILD_CC}"
34*4882a593Smuzhiyunexport HOST_CXX = "${BUILD_CXX}"
35*4882a593Smuzhiyunexport HOST_CFLAGS = "${BUILD_CFLAGS}"
36*4882a593Smuzhiyunexport HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
37*4882a593Smuzhiyunexport HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
38*4882a593Smuzhiyun
39*4882a593Smuzhiyunexport AS = "${CC}"
40*4882a593Smuzhiyun
41*4882a593Smuzhiyunexport RUSTFLAGS
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunJIT ?= ""
44*4882a593SmuzhiyunJIT:mipsarch = "--disable-jit"
45*4882a593SmuzhiyunICU ?= "--with-system-icu"
46*4882a593SmuzhiyunICU:mipsarch = ""
47*4882a593SmuzhiyunICU:powerpc:toolchain-clang = ""
48*4882a593Smuzhiyun
49*4882a593Smuzhiyundo_configure() {
50*4882a593Smuzhiyun    cd ${B}
51*4882a593Smuzhiyun    python3 ${S}/configure.py \
52*4882a593Smuzhiyun        --enable-project=js \
53*4882a593Smuzhiyun        --target=${HOST_SYS} \
54*4882a593Smuzhiyun        --host=${BUILD_SYS} \
55*4882a593Smuzhiyun        --prefix=${prefix} \
56*4882a593Smuzhiyun        --libdir=${libdir} \
57*4882a593Smuzhiyun        --disable-jemalloc \
58*4882a593Smuzhiyun        --disable-strip \
59*4882a593Smuzhiyun        ${JIT} \
60*4882a593Smuzhiyun        ${ICU}
61*4882a593Smuzhiyun}
62*4882a593Smuzhiyun
63*4882a593Smuzhiyundo_install() {
64*4882a593Smuzhiyun    oe_runmake 'DESTDIR=${D}' install
65*4882a593Smuzhiyun}
66*4882a593Smuzhiyun
67*4882a593Smuzhiyuninherit multilib_script multilib_header
68*4882a593Smuzhiyun
69*4882a593SmuzhiyunMULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js91-config"
70*4882a593Smuzhiyun
71*4882a593Smuzhiyundo_install:append() {
72*4882a593Smuzhiyun    oe_multilib_header mozjs-91/js-config.h
73*4882a593Smuzhiyun    sed -e 's@${STAGING_DIR_HOST}@@g' \
74*4882a593Smuzhiyun        -i ${D}${bindir}/js91-config
75*4882a593Smuzhiyun    rm -f ${D}${libdir}/libjs_static.ajs
76*4882a593Smuzhiyun}
77*4882a593Smuzhiyun
78*4882a593SmuzhiyunPACKAGES =+ "lib${BPN}"
79*4882a593SmuzhiyunFILES:lib${BPN} += "${libdir}/lib*"
80