void-packages/srcpkgs/mozjs91/template

100 lines
3.2 KiB
Bash

# Template file for 'mozjs91'
pkgname=mozjs91
version=91.7.1
revision=2
wrksrc="firefox-${version}"
build_wrksrc=js/src
build_style=gnu-configure
build_helper=rust
make_check_target=check-jit-test
configure_args="--disable-jemalloc --disable-strip --disable-tests \
--disable-optimize --disable-debug --enable-ctypes --enable-readline \
--enable-shared-js --enable-system-ffi --with-intl-api --with-system-icu \
--with-system-nspr --with-system-zlib --enable-hardening --enable-release"
hostmakedepends="make pkg-config python3 python3-setuptools python3-six perl m4
rust cargo llvm12 clang"
makedepends="icu-devel libffi-devel nspr-devel python3-devel readline-devel
zlib-devel rust-std"
checkdepends=python3
short_desc="SpiderMonkey JavaScript interpreter and library (91.x)"
maintainer="q66 <daniel@octaforge.org>"
license="MPL-2.0"
homepage="https://spidermonkey.dev"
distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
checksum=57494a445e72f7eacb0bb870a3a79cde3c2143e234873c0c3e269df1d4742c92
LDFLAGS="-Wl,-z,stack-size=1048576"
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
makedepends+=" libatomic-devel"
LDFLAGS+=" -latomic"
fi
if [ "$XBPS_TARGET_MACHINE" = i686 ]; then
# Disable LTO on i686, otherwise compilation of `jsrust` fails with -
# error: ran out of registers during register allocation
# LLVM ERROR: Cannot emit physreg copy instruction
# error: could not compile `jsrust` due to previous error
export MOZ_NO_RUST_LTO=1
fi
pre_configure() {
if [ "$CROSS_BUILD" ]; then
configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET} --enable-linker=bfd"
fi
export M4=m4
export AWK=awk
export AC_MACRODIR=../../build/autoconf
chmod 0755 ../../build/autoconf/autoconf.sh
sh ../../build/autoconf/autoconf.sh configure.in > configure
chmod 0755 configure
}
post_install() {
# Remove unneeded static library
rm -f "${DESTDIR}"/usr/lib/*.ajs
# it has correct soname but not the right file name
mv "${DESTDIR}"/usr/lib/libmozjs-91.so \
"${DESTDIR}"/usr/lib/libmozjs-91.so.0
ln -rs "${DESTDIR}"/usr/lib/libmozjs-91.so.0 \
"${DESTDIR}"/usr/lib/libmozjs-91.so
}
pre_check() {
if [ "$XBPS_WORDSIZE" = 32 ]; then
vsed -i jit-test/tests/basic/bug653153.js -e s/65536/65568/g
vsed -i jit-test/tests/basic/bug653153.js -e s/65537/65569/g
fi
if [ "$XBPS_TARGET_MACHINE" = i686 ]; then
export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \
-x basic/fdlibm-for-sin-cos-tan-argument.js \
-x gc/gcparam.js \
-x ion/dce-with-rinstructions.js \
-x sunspider/check-3d-cube.js \
-x sunspider/check-3d-raytrace.js \
-x sunspider/check-access-nbody.js \
-x wasm/nan-semantics.js \
-x wasm/spec/spec/float_literals.wast.js \
-x wasm/spec/spec/float_memory.wast.js \
-x wasm/spec/threads/float_memory.wast.js \
"
fi
if [ "$XBPS_LIBC" = musl ]; then
export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \
-x sunspider/check-date-format-tofte.js \
"
fi
}
mozjs91-devel_package() {
depends="nspr-devel ${sourcepkg}>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/bin/js91-config
vmove usr/include
vmove "usr/lib/*.so"
vmove usr/lib/pkgconfig
}
}