Template:Container 1

  
 * Step 1

Building Android binaries consists of 4 steps:
 * 1) Host PC setup
 * 2) Building bootloader
 * 3) Building kernel
 * 4) Building filesystem

This page details step 1 on how to setup a Host PC to build Android binaries.

Linux Distribution
Ubuntu is the recommended Linux distribution for this setup. Other distributions are available, however the configurations listed in this wiki currently only covers Ubuntu.

Ubuntu is available for download at: https://help.ubuntu.com/community/Installation

Note: Around 10GB of hard disk space is required to build one release of Android.

Working behind a firewall
Refer to OMAP Platform Support Tools for more information on setting up Ubuntu's Firewall.

ARM Cross Compiler
CodeSourcery ARM Compiler should be used for building different kernel distribution and software releases on OMAP platforms. Visit www.codesourcery.com for more info.

Note 1: For L25x kernel builds, Codesourcery tool chain 2008-q3 release should be used. Quick Link - CodeSourcery G++ Lite 2008q3-72 for ARM GNU/Linux

Note 2: For L24x, L27x kernel builds, Codesourcery tool chain 2009-q1 release should be used. Quick Link - CodeSourcery G++ Lite 2009q1-203 for ARM GNU/Linux

Steps

export PATH=//bin:$PATH export CROSS_COMPILE=arm-none-linux-gnueabi-
 * Download .tar from above link and untar to a host pc directory.
 * Add Compiler directory to PATH, and cross compiler prefix before build

Additional packages required for building
sudo apt-get install git-core flex bison gperf libesd0-dev zip sudo apt-get install libwxgtk2.6-dev zlib1g-dev build-essential libstdc++5 sudo apt-get install tofrodos x-dev libx11-dev libncurses5-dev sudo apt-get install sun-java5-jdk

To uninstall “sun-java6-jdk” please type: sudo apt-get remove sun-java6-jdk sudo apt-get install lib32readline5-dev
 * Intrepid (8.10) users may need a newer version of libreadline:

sudo apt-get install libstdc++6
 * Ubuntu 9.10 users may need to install a newer version of standard C++ library


 * Ubuntu 9.10 users need to follow below steps to install sun-java5-jdk

deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
 * 1) add the old Jaunty repos to /etc/apt/sources.list

sudo apt-get update sudo apt-get install sun-java5-jdk
 * 1) then run below commands


 * Ubuntu Intrepid (8.10) users need to roll back on the gcc to the 4.2 version (Intrepid comes with 4.3).

For Ubuntu® users, who previously had java6 installed might run into the following error: You are attempting to build with the incorrect version of java.

Your version is: java version "1.6.0_10". The correct version is: 1.5. Please follow the machine setup instructions at    http://source.android.com/download

Try to change the default java version with the following command: sudo update-alternatives –-config java This will show you the options you have for selecting which java version you want by default. You will have to do this for all java binaries that come with the java jdk (javac, javadoc, javah, etc).


 * Libiconv

This can be downloaded from http://www.gnu.org/software/libiconv/ Follow the instructions and install to the standard location. like:

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xzvf libiconv-1.13.1.tar.gz cd libiconv-1.13.1/ ./configure make sudo make install After installing GNU libiconv for the first time, it is recommended to recompile and reinstall GNU gettext, so that it can take advantage of libiconv. On systems other than GNU/Linux, the iconv program will be internationalized only if GNU gettext has been built and installed before GNU libiconv. This means that the first time GNU libiconv is installed, we have a circular dependency between the GNU libiconv and GNU gettext packages, which can be resolved by building and installing either

first libiconv, then gettext, then libiconv again

for further information refer to the link http://www.gnu.org/software/libiconv/

64-bit Host

On a 64-bit host, you need to force creation of 32-bit code and use the 32-bit version of libiconv. You can do the native 64-bit build and install as described above first. Then to build a 32-bit version:

./configure CFLAGS=-m32 make sudo make install-lib libdir=/usr/local/lib32 Note: You may also need to install ia32-libs.