diff options
Diffstat (limited to 'dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild')
-rw-r--r-- | dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild | 116 |
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 |