# $Id$ PNAME="spidermonkey" PVER="60.7.2" PBUILD="r1" PCAT="dev-java" DESCRIPTION="SpiderMonkey is the code-name for the Mozilla's C implementation of JavaScript." HOMEPAGE="https://developer.mozilla.org/en-US/docs/SpiderMonkey" DEPEND=">= sys-libs/zlib-1.2 >= sys-libs/libstdc++-8.3" SDEPEND=">= dev-lang/python-2.7 >= app-arch/zip-3 >= sys-libs/zlib-dev-1.2 >= sys-libs/libstdc++-dev-8.3" SRCFILE="firefox-${PVER}esr.source.tar.xz" SRCDIR="${BUILDDIR}/firefox-${PVER}" # enforce 32bit builds EMUL_LINUX_32=true sminclude multilib python2 msetfeature "!check" SRC_URI=( http://ftp.mozilla.org/pub/firefox/releases/${PVER}esr/source/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/${PNAME}-60.7.2-fix-soname.patch mirror://${PNAME}/${PNAME}-60.7.2-fix-timezone-issues.patch ) UP2DATE="updatecmd https://hg.mozilla.org/mozilla-unified/tags | grep '/FIREFOX_.*esr_RELEASE' | sed -e 's:.*/FIREFOX_\(.*\)esr_RELEASE:\1:' -e 's:_:\.:g' | upsort_pipe" src_prepare() { munpack ${SRCFILE} || die mpatch ${PNAME}-60.7.2-fix-soname.patch || die mpatch ${PNAME}-60.7.2-fix-timezone-issues.patch || die # create missing python execs on multilib systems if [[ ${ARCH} = x86_64 ]] && [[ $(mlibdir) != lib ]] then for abi in ${MULTILIB_ABIS} do cd ${SRCDIR}-${abi} sed -i '/^rm -rf _virtualenv/d' configure.in || die sed -i '/^mkdir -p _virtualenv/d' configure.in || die install -d _virtualenv/bin || die cp -a /usr/bin/python-m32 _virtualenv/bin || die cp -a /usr/bin/python-m64 _virtualenv/bin || die cp -a /usr/bin/python$(mget-python-version)-m32 _virtualenv/bin || die cp -a /usr/bin/python$(mget-python-version)-m64 _virtualenv/bin || die done fi export WANT_AUTOCONF=2.1 all-abis autoconf || die export WANT_AUTOCONF=2.1 SRCSUBDIR="js/src" all-abis autoconf || die all-abis "install -d ${SRCDIR}-$(mabi)/jsobj || die" } src_compile() { export CPPFLAGS="" export CFLAGS+=' -fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp' export CXXFLAGS+=' -fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp' # will be set via multilib include #export CC=gcc #export CXX=g++ export SHELL="${SHELL}" SRCSUBDIR="jsobj" \ all-abis ${SRCDIR}-$(mabi)/js/src/configure \ --prefix=/usr \ --datadir=/usr/share \ --libdir=/usr/'$(mlibdir)' \ --disable-debug \ --disable-debug-symbols \ --disable-strip \ --enable-linker="gold" \ --enable-optimize="-O2" \ --enable-pie \ --enable-posix-nspr-emulation \ --disable-readline \ --disable-jemalloc \ --enable-release \ --enable-shared-js \ --disable-tests \ --with-intl-api \ --with-system-zlib \ --without-system-icu \ || die # shell export fixes some bugs in a chroot environment # see: http://comments.gmane.org/gmane.linux.lfs.beyond.support/47450 SHELL="${SHELL}" SRCSUBDIR="jsobj" mmake || die } src_install() { SHELL="${SHELL}" SRCSUBDIR="jsobj" mmake DESTDIR=${BINDIR} install || die # remove static libraries find ${BINDIR} -iname '*.ajs' -delete || die }