Mobile/Fennec/Android OtherBuildEnvs: Difference between revisions
(→Install Android NDK: revs to match main page) |
(rip out outdated mozconfig) |
||
Line 73: | Line 73: | ||
Alternatively, you can launch *tools/android* for a GUI which will show you all the available options. | Alternatively, you can launch *tools/android* for a GUI which will show you all the available options. | ||
You will need to add one extra line to your [[Mobile/Fennec/Android#Setup_Fennec_mozconfig|mozconfig]]: | |||
ac_add_options --disable-crashreporter | ac_add_options --disable-crashreporter | ||
because the crashreporter tools do not cross-compile well. | |||
Revision as of 13:30, 28 August 2012
Ubuntu
Quick Script
sudo apt-get update sudo apt-get install sun-java6-jdk mercurial ccache sudo apt-get build-dep firefox wget http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2 tar -xjf android-ndk-r6-linux-x86.tar.bz2 wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz tar -xzf android-sdk_r12-linux_x86.tgz # go get lunch, this will take a while ./android-sdk-linux_x86/tools/android update sdk -u (note: Google changed recently such that logins are required for various unneeded parts. Drop the |update sdk -u| bits to get a GUI.) ./android-sdk-linux_x86/tools/android update adb
Explained
Install Java
First install the Sun Java jdk6, which the Android SDK depends on. If you're on Ubuntu, you'll need to the partners repo to get it.
sudo apt-get update sudo apt-get install sun-java6-jdk
Install Gecko Requirements
Then install the usual stuff needed for a firefox build, you probably already have it
sudo apt-get install mercurial ccache sudo apt-get build-dep firefox
Install Android NDK
Download and extract the NDK. NDK revs 4-7 have been tested and confirmed to work. Builders currently use r5c.
wget http://dl.google.com/android/ndk/android-ndk-r5c-linux-x86.tar.bz2 tar -xjf android-ndk-r5c-linux-x86.tar.bz2
Install Android SDK
You should just install the latest sdk, we set the API level in our manifest files. The sdk download will take a while, make sure you have a decent internet connection and go get coffee, or maybe lunch.
wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz tar -xzf android-sdk_r12-linux_x86.tgz ./android-sdk-linux_x86/tools/android update sdk -u ./android-sdk-linux_x86/tools/android update adb
RedHat
Fedora 13
yum install \ cvs zip gcc-c++ glib2-devel gtk2-devel fontconfig-devel libnotify-devel \ libIDL-devel alsa-lib-devel libXt-devel freetype-devel pkgconfig \ dbus-glib-devel curl-devel autoconf213 xorg-x11-proto-devel libX11-devel \ libXau-devel libXext-devel wireless-tools-devel glibc-static yasm
Install java: http://owldevx.wordpress.com/2010/07/06/installing-jdk-in-fedora-13/ (See this http://blog.randell.ph/2011/05/29/fedora-15-prepost-installation-setup/ for F15)
Then install Android sdk and ndk :
wget http://dl.google.com/android/android-sdk_r18-linux.tgz tar xzf android-sdk_r18-linux.tgz wget http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2 tar xjf android-ndk-r6-linux-x86.tar.bz2 ./android-sdk-linux_86/tools/android update sdk
Fedora 14 x64
If you're running Fedora 14 x64, in addition to the Fedora 13 requirements above, you may also need to install some or all of zlib-devel.i686 glibc.i686 glibc-devel.i686 libstdc++.i686
Windows
Mac OSX
WARNING: If you are targeting Gingerbread, OS X Lion cannot be used to build Android itself. You will need to build Android itself with debugging symbols to be able to debug Fennec.
Set up a regular Firefox build environment as explained here (go up to and including step 3 on that page).
Install the latest versions of the Android SDK and NDK for Mac OS X.
Once you've unzipped the Android SDK, you'll need to install the Platform SDK using it:
./android-sdk-macosx/tools/android update sdk -u ./android-sdk-macosx/tools/android update adb
Alternatively, you can launch *tools/android* for a GUI which will show you all the available options.
You will need to add one extra line to your mozconfig:
ac_add_options --disable-crashreporter
because the crashreporter tools do not cross-compile well.