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