# Template file for 'v8'
pkgname=v8
version=3.12.19.15
revision=2
short_desc="V8 JavaScript Engine"
maintainer="davehome <davehome@redthumb.info.tm>"
homepage="http://code.google.com/p/v8/"
license="BSD"
distfiles="http://commondatastorage.googleapis.com/chromium-browser-official/v8-${version}.tar.bz2"
checksum=5f8f0a700a88250170118b5994aacf57f6527a6c0017096b5cb322ecbad6e187
long_desc="
 V8 is Google's open source JavaScript engine. V8 is written in C++ and is
 used in Google Chrome, the open source browser from Google.
 
 V8 implements ECMAScript as specified in ECMA-262, 5th edition, and runs on
 Windows (XP or newer), Mac OS X (10.5 or newer), and Linux systems that use
 IA-32, x64, or ARM processors.

 V8 can run standalone, or can be embedded into any C++ application.
 
 This package contains v8 the utilities mksnapshot and the d8 shell."

hostmakedepends="which subversion python"
makedepends="readline-devel"

do_build() {
	# TODO: add support to crosscompile for other targets.
	if [ "$CROSS_BUILD" ]; then
		case "${XBPS_TARGET_MACHINE}" in
		arm*)
			# NOTE: hardfp can be problematic if not hf is supported on target cpu
			sed -e "s/m32flag':.*/m32flag':'',/" -i build/common.gypi
			LINK="${CXX}" make V=1 ${makejobs} arm.release \
				hardfp=on library=shared console=readline \
				disassembler=on snapshot=off \
				CXX.host=${CXX} CXX.link=${CXX} LINK.target="${CXX}"
			;;
		*)	msg_error "$pkgver: cannot cross compile for ${XBPS_TARGET_MACHINE}.\n"
			;;
		esac
	else
		# native build
		make ${makejobs} native library=shared console=readline \
			disassembler=on liveobjectlist=on
	fi
}

do_install() {
	if [ "$CROSS_BUILD" ]; then
		case "$XBPS_TARGET_MACHINE" in
		arm*)
			vinstall out/arm.release/d8 755 usr/bin
			vinstall out/arm.release/lib.target/lib${pkgname}.so 755 usr/lib
			;;
		esac
	else
		# native build
		vinstall out/native/d8 755 usr/bin
		vinstall out/native/lib.target/lib${pkgname}.so 755 usr/lib
	fi
	if [ -z "$CROSS_BUILD" ]; then
		# mksnapshot only built in native builds.
		vinstall out/native/mksnapshot 755 usr/bin
	fi

   	vinstall include/${pkgname}-debug.h 644 usr/include
	vinstall include/${pkgname}-preparser.h 644 usr/include
	vinstall include/${pkgname}-profiler.h 644 usr/include
	vinstall include/${pkgname}-testing.h 644 usr/include
	vinstall include/${pkgname}.h 644 usr/include
	vinstall include/${pkgname}stdint.h 644 usr/include
}

v8-devel_package() {
	depends="libv8-${version}_${revision}"
	short_desc="${short_desc} (Development headers)"
	pkg_install() {
		vmove usr/include
	}
}

libv8_package() {
	short_desc="${short_desc} (Runtime library)"
	pkg_install() {
		vmove usr/lib
	}
}

v8_package() {
	pkg_install() {
		vmove usr
	}
}
