aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild')
-rw-r--r--dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild116
1 files changed, 53 insertions, 63 deletions
diff --git a/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
index 2e1227e..43f0339 100644
--- a/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -6,7 +6,7 @@ EAPI="5"
WANT_AUTOCONF="2.1"
PYTHON_COMPAT=( python2_{6,7} )
PYTHON_REQ_USE="threads"
-inherit autotools-multilib eutils toolchain-funcs multilib python-any-r1 versionator pax-utils
+inherit eutils autotools-multilib toolchain-funcs multilib python-any-r1 versionator pax-utils
MY_PN="mozjs"
MY_P="${MY_PN}${PV}"
@@ -16,6 +16,7 @@ SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/js/${MY_PN}${PV}.tar.gz"
LICENSE="NPL-1.1"
SLOT="17"
+# "MIPS, MacroAssembler is not supported" wrt #491294 for -mips
KEYWORDS="~amd64"
IUSE="debug jit minimal static-libs test"
@@ -23,87 +24,77 @@ REQUIRED_USE="debug? ( jit )"
RESTRICT="ia64? ( test )"
S="${WORKDIR}/${MY_P}"
-BUILDDIR="${S}/js/src"
+BUILD_DIR="${S}/js/src"
RDEPEND=">=dev-libs/nspr-4.9.4[${MULTILIB_USEDEP}]
- virtual/libffi[${MULTILIB_USEDEP}]
+ >=virtual/libffi-3.0.13-r1[${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.1.4[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}
${PYTHON_DEPS}
app-arch/zip
virtual/pkgconfig"
-abi_builddir() {
- echo "${BUILD_DIR}"/js/src
-}
-
pkg_setup(){
if [[ ${MERGE_TYPE} != "binary" ]]; then
python-any-r1_pkg_setup
export LC_ALL="C"
fi
+ declare -a myopts
}
-PATCHES=(
- "${FILESDIR}"/${PN}-${SLOT}-js-config-shebang.patch
- "${FILESDIR}"/${PN}-${SLOT}-ia64-mmap.patch
- "${FILESDIR}"/${PN}-17.0.0-fix-file-permissions.patch
-)
MULTILIB_WRAPPED_HEADERS=(/usr/include/js-17.0/js-config.h)
MULTILIB_WRAPPED_EXECUTABLES=(@/usr/bin/js17-config)
+MULTILIB_CHOST_TOOLS=(/usr/bin/js17-config)
MULTILIB_PARALLEL_PHASES="src_configure src_compile src_test"
-ehook autotools-multilib-global-pre_src_prepare pre_prepare
-pre_prepare() {
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-${SLOT}-js-config-shebang.patch
+ epatch "${FILESDIR}"/${PN}-${SLOT}-ia64-mmap.patch
+ epatch "${FILESDIR}"/${PN}-17.0.0-fix-file-permissions.patch
+ # Remove obsolete jsuword bug #506160
+ sed -i -e '/jsuword/d' "${BUILD_DIR}"/jsval.h ||die "sed failed"
+ epatch_user
+
if [[ ${CHOST} == *-freebsd* ]]; then
# Don't try to be smart, this does not work in cross-compile anyway
- ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
+ ln -sfn "${BUILD_DIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
fi
- # Remove obsolete jsuword bug #506160
- sed -i -e '/jsuword/d' "${BUILDDIR}"/jsval.h ||die "sed failed"
- epatch_user
}
-ehook autotools-multilib-global-pre_src_configure pre_configure
-pre_configure() {
- ECONF_SOURCE="${BUILDDIR}"
- myeconfargs=(
- ${myopts}
- --enable-jemalloc
- --enable-readline
- --enable-threadsafe
- --enable-system-ffi
- --enable-jemalloc
- $(use_enable debug)
- $(use_enable jit tracejit)
- $(use_enable jit methodjit)
- $(use_enable static-libs static)
- $(use_enable test tests)
- )
-}
+multilib_src_configure() {
+ local myopts=( "${myopts[@]}" )
-ehook autotools-multilib-per-abi-pre_src_configure pre_abi_configure
-pre_abi_configure() {
- mkdir -p "$(abi_builddir)" || die
- cd "$(abi_builddir)" || die
- if multilib_is_best_abi ; then
- myeconfargs+=(--with-system-nspr)
+ if multilib_is_native_abi ; then
+ myopts+=("--with-system-nspr")
else
- myeconfargs+=(
- --with-nspr-cflags="$(nspr-config-${ABI} --cflags)"
- --with-nspr-libs="$(nspr-config-${ABI} --libs)"
- --with-nspr-prefix="$(nspr-config-${ABI} --prefix)"
- --with-nspr-exec-prefix="$(nspr-config-${ABI} --exec-prefix)"
+ # --with-system-nspr configure magic does not check for multilib suffixed
+ # alternatives and therefore full of fail here. Thankfully we can
+ # effect multilib system-nspr linkage manually with these alternate configure frobs
+ myopts+=(
+ --with-nspr-cflags="$(${CHOST}-nspr-config --cflags)"
+ --with-nspr-libs="$(${CHOST}-nspr-config --libs)"
+ --with-nspr-prefix="$(${CHOST}-nspr-config --prefix)"
+ --with-nspr-exec-prefix="$(${CHOST}-nspr-config --exec-prefix)"
)
- fi
+ fi
+
+ ECONF_SOURCE="${S}/js/src" \
MULTILIB_TC_EXPORT_VARS="CC CXX AR RANLIB LD" multilib_tc_export \
- econf "${myeconfargs[@]}" "${othereconfargs[@]}"
- return 1
+ econf \
+ "${myopts[@]}" \
+ --enable-jemalloc \
+ --enable-readline \
+ --enable-threadsafe \
+ --enable-system-ffi \
+ --enable-jemalloc \
+ $(use_enable debug) \
+ $(use_enable jit tracejit) \
+ $(use_enable jit methodjit) \
+ $(use_enable static-libs static) \
+ $(use_enable test tests)
}
-ehook autotools-multilib-per-abi-pre_src_compile pre_abi_compile
-pre_abi_compile() {
- cd "$(abi_builddir)" || die
+multilib_src_compile() {
if tc-is-cross-compiler; then
make CFLAGS="" CXXFLAGS="" \
CC=$(tc-getBUILD_CC) CXX=$(tc-getBUILD_CXX) \
@@ -127,20 +118,16 @@ pre_abi_compile() {
host_jskwgen.o \
host_jsoplengen.o || die
fi
+ emake
}
-ehook autotools-multilib-per-abi-pre_src_test pre_abi_test
-pre_abi_test() {
- cd "$(abi_builddir)/jsapi-tests" || die
+multilib_src_test() {
+ cd "jsapi-tests" || die
+ emake check
}
-ehook autotools-multilib-per-abi-pre_src_install pre_abi_install
-pre_abi_install() {
- cd "$(abi_builddir)" || die
-}
-
-ehook autotools-multilib-global-post_src_install post_install
-post_install() {
+multilib_src_install() {
+ emake install DESTDIR="${D}"
if ! use minimal; then
if use jit; then
pax-mark m "${ED}/usr/bin/js${SLOT}"
@@ -148,7 +135,10 @@ post_install() {
else
rm -f "${ED}/usr/bin/js${SLOT}"
fi
+}
+multilib_src_install_all() {
+ dodoc README
if ! use static-libs; then
# We can't actually disable building of static libraries
# They're used by the tests and in a few other places