Skip to content

Latest commit

 

History

History
71 lines (52 loc) · 2.16 KB

README.md

File metadata and controls

71 lines (52 loc) · 2.16 KB

This is where we store the patches and revision of the v8 repository that we use in the Android port of Titanium Mobile. Build Status

To build V8, you'll need:

  • Android NDK r16b

Build V8 for Android against the NDK:

$ ./build_v8.sh -n /path/to/android-ndk

OR

$ export ANDROID_NDK=/path/to/android-ndk
$ ./build_v8.sh

To publish V8 to S3, you'll need s3cmd: http://tcpdiag.dl.sourceforge.net/project/s3tools/s3cmd/1.6.0/s3cmd-1.6.0.tar.gz

The Whole Shebang

# Apply our patches to v8
cd v8
git apply ndk16b_6.6.patch
cd ..

# Install Android NDK
wget http://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip
unzip android-ndk-r16b-darwin-x86_64.zip
export ANDROID_NDK=${PWD}/android-ndk-r16b

# Download s3cmd
wget http://tcpdiag.dl.sourceforge.net/project/s3tools/s3cmd/1.6.0/s3cmd-1.6.0.tar.gz
tar -xzf s3cmd-1.6.0.tar.gz
export PATH=${PWD}/s3cmd-1.6.0

# Configure s3cmd
s3cmd --configure

# build v8 for ARM, ARM64, and then x86
./build_v8.sh -n /path/to/android-ndk-r16b -j16 -l arm
./build_v8.sh -n /path/to/android-ndk-r16b -j16 -l arm64
./build_v8.sh -n /path/to/android-ndk-r16b -j16 -l ia32

# Generate a tarball to publish
./build_v8.sh -t

# Publish
./publish_v8.sh build/release/libv8-5.0.71.33-release.tar.bz2

Full build_v8.sh usage:

$ ./build_v8.sh -h
Usage: ./build_v8.sh options

This script builds v8 against the Android NDK.
Options:
	-h              Show this help message and exit
	-n <ndk_dir>    The path to the Android NDK. Alternatively, you may set the ANDROID_NDK environment variable
	-s <sdk_dir>    The path to the Android SDK. Alternatively, you may set the ANDROID_SDK environment variable
	-j <num-cpus>   The number of processors to use in building (passed on to scons)
	-m <mode>       The v8 build mode (release, debug. default: release)
	-t              Build a thirdparty tarball for uploading

Note: This build is designed to work on a 32-bit Linux. If you wish to install it on a 64-bit version, you would need to install 32-bit libraries:

sudo apt-get -y install gcc-multilib g++-multilib