diff options
author | Paweł Hajdan <phajdan.jr@gentoo.org> | 2013-08-31 02:19:40 +0000 |
---|---|---|
committer | Paweł Hajdan <phajdan.jr@gentoo.org> | 2013-08-31 02:19:40 +0000 |
commit | e42510b4ba4cacab6a0055ad5de2c1c35eaa5f0a (patch) | |
tree | dc9fe155d6be5e2111c2d8e99ed19c593927aef6 /dev-lang/v8/v8-3.21.4.ebuild | |
parent | Remove old (diff) | |
download | gentoo-2-e42510b4ba4cacab6a0055ad5de2c1c35eaa5f0a.tar.gz gentoo-2-e42510b4ba4cacab6a0055ad5de2c1c35eaa5f0a.tar.bz2 gentoo-2-e42510b4ba4cacab6a0055ad5de2c1c35eaa5f0a.zip |
Dev channel bump.
(Portage version: 2.1.12.2/cvs/Linux i686, signed Manifest commit with key 30427902)
Diffstat (limited to 'dev-lang/v8/v8-3.21.4.ebuild')
-rw-r--r-- | dev-lang/v8/v8-3.21.4.ebuild | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/dev-lang/v8/v8-3.21.4.ebuild b/dev-lang/v8/v8-3.21.4.ebuild new file mode 100644 index 000000000000..e1d706d4909b --- /dev/null +++ b/dev-lang/v8/v8-3.21.4.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/v8/v8-3.21.4.ebuild,v 1.1 2013/08/31 02:19:40 phajdan.jr Exp $ + +EAPI="5" +PYTHON_COMPAT=( python2_{6,7} ) + +inherit chromium eutils multilib multiprocessing pax-utils python-any-r1 \ + toolchain-funcs versionator + +DESCRIPTION="Google's open source JavaScript engine" +HOMEPAGE="http://code.google.com/p/v8" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}-lite.tar.bz2" +LICENSE="BSD" + +soname_version="${PV}" +SLOT="0/${soname_version}" +KEYWORDS="~amd64 ~arm ~x86 ~x86-fbsd ~x64-macos ~x86-macos" +IUSE="icu neon readline" + +RDEPEND="icu? ( dev-libs/icu:= ) + readline? ( sys-libs/readline:0 )" +DEPEND="${PYTHON_DEPS} + ${RDEPEND}" + +src_prepare() { + # Make sure no bundled libraries are used. + find third_party -type f \! -iname '*.gyp*' -delete || die +} + +src_configure() { + tc-export AR CC CXX RANLIB + export LINK=${CXX} + + local myconf="" + + # Always build v8 as a shared library with proper SONAME. + myconf+=" -Dcomponent=shared_library -Dsoname_version=${soname_version}" + + # Use target arch detection logic from bug #354601. + case ${CHOST} in + i?86-*) + myarch="ia32" + myconf+=" -Dv8_target_arch=ia32" ;; + x86_64-*) + if [[ $ABI = x86 ]] ; then + myarch="ia32" + myconf+=" -Dv8_target_arch=ia32" + else + myarch="x64" + myconf+=" -Dv8_target_arch=x64" + fi ;; + arm*-*) + myarch="arm" + myconf+=" -Dv8_target_arch=arm -Darm_fpu=default" + if [[ ${CHOST} == *-hardfloat-* ]] ; then + myconf+=" -Dv8_use_arm_eabi_hardfloat=true" + else + myconf+=" -Dv8_use_arm_eabi_hardfloat=false" + fi + if [[ ${CHOST} == armv7*-* ]] ; then + myconf+=" -Darmv7=1" + else + myconf+=" -Darmv7=0" + fi + myconf+=" $(gyp_use neon arm_neon)" ;; + mips*) + if [[ ${CHOST} == mips*el* ]] ; then + myarch="mipsel" + myconf+=" -Dv8_target_arch=mipsel" + else + die "big-endian MIPS is not yet supported" + fi + if [[ ${CHOST} == *softfloat* ]] ; then + myconf+=" -Dv8_use_mips_abi_hardfloat=false" + else + myconf+=" -Dv8_use_mips_abi_hardfloat=true" + fi + if [[ ${CHOST} == *loongson* ]] ; then + myconf+=" -Dmips_arch_variant=loongson" + elif [[ ${CHOST} == mips*64* ]] ; then + die "generic MIPS 64bit is not yet supported" + elif [[ ${CHOST} == mips*r2* ]] ; then + myconf+=" -Dmips_arch_variant=mips32r2" + else + myconf+=" -Dmips_arch_variant=mips32" + fi + ;; + *) die "Unrecognized CHOST: ${CHOST}" + esac + + myconf+=" + $(gyp_use icu v8_enable_i18n_support) + $(gyp_use readline console readline dumb)" + + myconf+=" + -Duse_system_icu=1" + + # Make sure that -Werror doesn't get added to CFLAGS by the build system. + # Depending on GCC version the warnings are different and we don't + # want the build to fail because of that. + myconf+=" -Dwerror=" + + # gyp does this only for linux, but we always want to use "out" dir, or + # all else below fails due to not finding "out" dir + myconf+=" --generator-output=out" + # gyp defaults to whatever makes the most sense on the platform at hand, + # but we want to build using Makefiles, so force that + myconf+=" -f make" + + EGYP_CHROMIUM_COMMAND=build/gyp_v8 egyp_chromium ${myconf} || die +} + +src_compile() { + local makeargs=( + -C out + builddir="${S}/out/Release" + V=1 + BUILDTYPE=Release + ) + + # Build mksnapshot so we can pax-mark it. + emake "${makeargs[@]}" mksnapshot.${myarch} + pax-mark m out/Release/mksnapshot.${myarch} + + # Build everything else. + emake "${makeargs[@]}" + pax-mark m out/Release/{cctest,d8,preparser} +} + +src_test() { + LD_LIBRARY_PATH=out/Release/lib.target tools/run-tests.py \ + -j$(makeopts_jobs) \ + --no-presubmit \ + --outdir=out \ + --buildbot \ + --arch=native \ + --mode=Release \ + --progress=dots || die +} + +src_install() { + insinto /usr + doins -r include + + if [[ ${CHOST} == *-darwin* ]] ; then + # buildsystem is too horrific to get this built correctly + mkdir -p out/Release/lib.target || die + mv out/Release/libv8.so.${soname_version} \ + out/Release/lib.target/libv8$(get_libname ${soname_version}) || die + install_name_tool \ + -id "${EPREFIX}"/usr/$(get_libdir)/libv8$(get_libname) \ + out/Release/lib.target/libv8$(get_libname ${soname_version}) \ + || die + install_name_tool \ + -change \ + /usr/local/lib/libv8.so.${soname_version} \ + "${EPREFIX}"/usr/$(get_libdir)/libv8$(get_libname) \ + out/Release/d8 || die + fi + + dobin out/Release/d8 + pax-mark m "${ED}usr/bin/d8" + + dolib out/Release/lib.target/libv8$(get_libname ${soname_version}) + dosym libv8$(get_libname ${soname_version}) /usr/$(get_libdir)/libv8$(get_libname) + + dodoc AUTHORS ChangeLog +} + +# TODO: remove functions below after they are removed from chromium.eclass' +# EXPORT_FUNCTIONS . + +pkg_preinst() { + return +} + +pkg_postinst() { + return +} + +pkg_postrm() { + return +} |