page.title=Establishing a Build Environment
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<p>This section describes how to set up your local work environment to build
the Android source files. You will need to use Linux or Mac OS. Building under
Windows is not currently supported.</p>
<p>For an overview of the entire code-review and code-update process, see <a
href="life-of-a-patch.html">Life of a Patch</a>.</p>
<h2 id="choosing-a-branch">Choosing a Branch</h2>
<p>Some of the requirements for your build environment are determined by which
version of the source code you plan to compile. See
<a href="build-numbers.html">Build Numbers</a> for a full listing of branches you may
choose from. You may also choose to download and build the latest source code
(called <code>master</code>), in which case you will simply omit the branch specification
when you initialize the repository.</p>
<p>Once you have selected a branch, follow the appropriate instructions below to
set up your build environment.</p>
<h2 id="setting-up-a-linux-build-environment">Setting up a Linux build environment</h2>
<p>These instructions apply to all branches, including <code>master</code>.</p>
<p>The Android build is routinely tested in house on recent versions of
Ubuntu LTS (14.04), but most distributions should have the required
build tools available. Reports of successes or failures on other
distributions are welcome.</p>
<p>For Gingerbread (2.3.x) and newer versions, including the <code>master</code>
branch, a 64-bit environment is required. Older versions can be
compiled on 32-bit systems.</p>
<p class="note"><strong>Note:</strong> See the <a
href="requirements.html">Requirements</a> for the complete list of hardware and
software requirements. Then follow the detailed instructions for Ubuntu and Mac
OS below.</p>

<h3 id="installing-the-jdk">Installing the JDK</h3>
<p>The <code>master</code> branch of Android in the <a
href="https://android.googlesource.com/">Android Open Source Project (AOSP)</a>
requires Java 8. On Ubuntu, use <a href="http://openjdk.java.net/install/">OpenJDK</a>.</p>
<p>Java 8: For the latest version of Android</p>

<h4 id="for-ubuntu-15-04">For Ubuntu &gt;= 15.04</h4>
<p>Run the following:</p>
<pre><code>$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
</code></pre>

<h4 id="for-ubuntu-14-04">For Ubuntu LTS 14.04</h4>
<p>There are no available supported OpenJDK 8 packages for Ubuntu 14.04. The
<strong>Ubuntu 15.04 OpenJDK 8</strong> packages have been used successfully
with Ubuntu 14.04. <em>Newer package versions (e.g. those for 15.10, 16.04) were
found not to work on 14.04 using the instructions below.</em></p>
<ol>
<li>
<p>Download the <code>.deb</code> packages for your architecture from
<a
href="http://packages.ubuntu.com/vivid/openjdk-8-jdk">http://packages.ubuntu.com/vivid/openjdk-8-jdk</a>:</p>
<ul>
<li><a href="http://packages.ubuntu.com/vivid/openjdk-8-jre-headless">openjdk-8-jre-headless</a></li>
<li><a href="http://packages.ubuntu.com/vivid/openjdk-8-jre">openjdk-8-jre</a></li>
<li><a href="http://packages.ubuntu.com/vivid/openjdk-8-jdk">openjdk-8-jdk</a></li>
</ul>
<p>Remember, you may obtain the architecture for your machine with:</p>
<code>$ uname -m</code>
<p>With <code>x86_64</code> representing a 64-bit (amd64) Linux kernel architecture and
<code>i386/i486/i586/i686</code> representing a 32-bit (i386) system.</p>
</li>
<li>
<p>Optionally, confirm the checksums of the downloaded files using the information
found on <a href="http://packages.ubuntu.com/vivid/openjdk-8-jdk"
>http://packages.ubuntu.com/vivid/openjdk-8-jdk</a>.</p>
<p>For example with the sha256sum tool:</p>
<pre><code>$ sha256sum {package file}</code></pre>
</li>
<li>
<p>Install the packages:</p>
<pre><code>$ sudo apt-get update</pre></code>
<p>Run dpkg for each of the .deb files you downloaded. It may produce errors due to
missing dependencies:</p>
<pre><code>$ sudo dpkg -i {downloaded.deb file}</pre></code>
<p>To fix missing dependencies:</p>
<pre><code>$ sudo apt-get -f install</pre></code>
</li>
</ol>

<h4 id="default-java-version">Update the default Java version - optional</h4>
<p>Optionally, for the Ubuntu versions above update the default Java version by
running:</p>
<pre><code>$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
</code></pre>

<p>If, during a build, you encounter version errors for Java, set its
path as described in the <a href="building.html#wrong-java-version">Wrong
Java Version</a> section.</p>

<p>To develop older versions of Android, download and install the corresponding version of the <a
href="http://www.oracle.com/technetwork/java/javase/archive-139210.html">Java JDK</a>:<br/>
Java 7: for Lollipop through Marshmallow<br/>
Java 6: for Gingerbread through KitKat<br/>
Java 5: for Cupcake through Froyo</p>

<h3 id="installing-required-packages-ubuntu-1404">Installing required packages (Ubuntu 14.04)</h3>
<p>You will need a 64-bit version of Ubuntu. Ubuntu 14.04 is recommended.</p>
<pre><code>$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
  lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
  libgl1-mesa-dev libxml2-utils xsltproc unzip
</code></pre>

<p class="note"><strong>Note:</strong> To use SELinux tools for policy
analysis, also install the <code>python-networkx</code> package.</p>

<h3 id="installing-required-packages-ubuntu-1204">Installing required packages (Ubuntu 12.04)</h3>
<p>You may use Ubuntu 12.04 to build older versions of Android. Version 12.04 is not supported on master or recent releases.</p>
<pre><code>$ sudo apt-get install git gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
</code></pre>

<h3 id="installing-required-packages-ubuntu-1004-1110">Installing required packages (Ubuntu 10.04 -- 11.10)</h3>
<p>Building on Ubuntu 10.04-11.10 is no longer supported, but may be useful for building older
releases of AOSP.</p>
<pre><code>$ sudo apt-get install git gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc
</code></pre>
<p>On Ubuntu 10.10:</p>
<pre><code>$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
</code></pre>
<p>On Ubuntu 11.10:</p>
<pre><code>$ sudo apt-get install libx11-dev:i386
</code></pre>
<h3 id="configuring-usb-access">Configuring USB Access</h3>
<p>Under GNU/Linux systems (and specifically under Ubuntu systems),
regular users can't directly access USB devices by default. The
system needs to be configured to allow such access.</p>
<p>The recommended approach is to create a file at
<code>/etc/udev/rules.d/51-android.rules</code> (as the root user).</p> 

<p>To do this, run the following command to download the <a href="51-android.rules">51-android.rules</a> file attached to this site, modify it to include your username, and place it in the correct location:</p>

<pre>
<code>$ wget -S -O - http://source.android.com/source/51-android.rules | sed "s/&lt;username&gt;/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules</code>
</pre>

<p>Those new rules take effect the next time a device is plugged in.
It might therefore be necessary to unplug the device and plug it
back into the computer.</p>
<p>This is known to work on both Ubuntu Hardy Heron (8.04.x LTS) and
Lucid Lynx (10.04.x LTS). Other versions of Ubuntu or other
variants of GNU/Linux might require different configurations.</p>
<h3 id="using-a-separate-output-directory">Using a separate output directory</h3>
<p>By default, the output of each build is stored in the <code>out/</code>
subdirectory of the matching source tree.</p>
<p>On some machines with multiple storage devices, builds are
faster when storing the source files and the output on
separate volumes. For additional performance, the output
can be stored on a filesystem optimized for speed instead
of crash robustness, since all files can be re-generated
in case of filesystem corruption.</p>
<p>To set this up, export the <code>OUT_DIR_COMMON_BASE</code> variable
to point to the location where your output directories
will be stored.</p>
<pre><code>export OUT_DIR_COMMON_BASE=&lt;path-to-your-out-directory&gt;
</code></pre>
<p>The output directory for each separate source tree will be
named after the directory holding the source tree.</p>
<p>For instance, if you have source trees as <code>/source/master1</code>
and <code>/source/master2</code> and <code>OUT_DIR_COMMON_BASE</code> is set to
<code>/output</code>, the output directories will be <code>/output/master1</code>
and <code>/output/master2</code>.</p>
<p>It's important in that case to not have multiple source
trees stored in directories that have the same name,
as those would end up sharing an output directory, with
unpredictable results.</p>
<p>This is only supported on Jelly Bean (4.1) and newer,
including the <code>master</code> branch.</p>
<h2 id="setting-up-a-mac-os-x-build-environment">Setting up a Mac OS build environment</h2>
<p>In a default installation, Mac OS runs on a case-preserving but case-insensitive
filesystem. This type of filesystem is not supported by git and will cause some
git commands (such as <code>git status</code>) to behave abnormally. Because of this, we
recommend that you always work with the AOSP source files on a case-sensitive
filesystem. This can be done fairly easily using a disk image, discussed below.</p>
<p>Once the proper filesystem is available, building the <code>master</code> branch in a modern
Mac OS environment is very straightforward. Earlier branches, including ICS,
require some additional tools and SDKs.</p>
<h3 id="creating-a-case-sensitive-disk-image">Creating a case-sensitive disk image</h3>
<p>You can create a case-sensitive filesystem within your existing Mac OS environment
using a disk image. To create the image, launch Disk
Utility and select "New Image".  A size of 25GB is the minimum to
complete the build; larger numbers are more future-proof. Using sparse images
saves space while allowing to grow later as the need arises. Be sure to select
"case sensitive, journaled" as the volume format.</p>
<p>You can also create it from a shell with the following command:</p>
<pre><code># hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
</code></pre>
<p>This will create a <code>.dmg</code> (or possibly a <code>.dmg.sparseimage</code>) file which, once mounted, acts as a drive with the required formatting for Android development.
<p>If you need a larger volume later, you can also resize the sparse image with the following command:</p>
<pre><code># hdiutil resize -size &lt;new-size-you-want&gt;g ~/android.dmg.sparseimage
</code></pre>
For a disk image named <code>android.dmg</code> stored in your home directory, you can add helper functions to your <code>~/.bash_profile</code>:
<ul>
<li>
To mount the image when you execute <code>mountAndroid</code>:</p>
<pre><code># mount the android file image
function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }
</code></pre>
<p class="note"><strong>Note:</strong> If your system created a <code>.dmg.sparseimage</code> file, replace <code>~/android.dmg</code> with <code>~/android.dmg.sparseimage</code>.</p>
</li>
<li>
<p>To unmount it when you execute <code>umountAndroid</code>:</p>
<pre><code># unmount the android file image
function umountAndroid() { hdiutil detach /Volumes/android; }
</code></pre>
</li>
</ul>
<p>Once you've mounted the <code>android</code> volume, you'll do all your work there. You can eject it (unmount it) just like you would with an external drive.</p>

<h3 id="installing-the-mac-jdk">Installing the JDK</h3>

<p>See <a href="requirements.html">Requirements</a> for the version of Java to use when developing various versions of Android.</p>

<h4 id="installing-required-packages">Installing required packages</h4>
<ul>
<li>
<p>Install Xcode from <a href="http://developer.apple.com/">the Apple developer site</a>.
If you are not already registered as an Apple developer, you will have to
create an Apple ID in order to download.</p>
</li>
<li>
<p>Install MacPorts from <a href="http://www.macports.org/install.php">macports.org</a>.</p>
<p class="note"><strong>Note:</strong> Make sure that <code>/opt/local/bin</code> appears in your path <strong>before</strong> <code>/usr/bin</code>. If not, please add the following to your <code>~/.bash_profile</code> file:</p>
<pre>
<code>export PATH=/opt/local/bin:$PATH</code>
</pre>
<p class="note"><strong>Note:</strong> If you do not have a <code>.bash_profile</code> file in your home directory, create one.</p>
</li>
<li>
<p>Get make, git, and GPG packages from MacPorts: </p>
<pre><code>$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
</code></pre>
<p>If using Mac OS X v10.4, also install bison:</p>
<pre><code>$ POSIXLY_CORRECT=1 sudo port install bison
</code></pre>
</li>
</ul>

<h4 id="reverting-from-make-382">Reverting from make 3.82</h4>
<p>In Android 4.0.x (Ice Cream Sandwich) and earlier, a bug exists in gmake 3.82
that prevents android from building. You can install version 3.81 using
MacPorts with these steps:</p>
<ul>
<li>
<p>Edit <code>/opt/local/etc/macports/sources.conf</code> and add a line that says</p>
<pre><code>file:///Users/Shared/dports
</code></pre>
<p>above the rsync line.  Then create this directory: </p>
<pre><code>$ mkdir /Users/Shared/dports
</code></pre>
</li>
<li>
<p>In the new <code>dports</code> directory, run </p>
<pre><code>$ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
</code></pre>
</li>
<li>
<p>Create a port index for your new local repository: </p>
<pre><code>$ portindex /Users/Shared/dports
</code></pre>
</li>
<li>
<p>Finally, install the old version of gmake with </p>
<pre><code>$ sudo port install gmake @3.81
</code></pre>
</li>
</ul>

<h4 id="setting-a-file-descriptor-limit">Setting a file descriptor limit</h4>
<p>On Mac OS, the default limit on the number of simultaneous file descriptors open is too low and a highly parallel build process may exceed this limit.<br />
</p>
<p>To increase the cap, add the following lines to your <code>~/.bash_profile</code>: </p>
<pre><code># set the number of open files to be 1024
ulimit -S -n 1024
</code></pre>
<h2 id="optimizing-a-build-environment">Optimizing a build environment (optional)</h2>
<p><a name="ccache"></a></p>
<h3 id="setting-up-ccache">Setting up ccache</h3>
<p>You can optionally tell the build to use the ccache compilation tool.
Ccache acts as a compiler cache that can be used to speed up rebuilds.
This works very well if you use <code>make clean</code> often, or if you frequently
switch between different build products.</p>
<p>Put the following in your <code>.bashrc</code> (or equivalent):</p>
<pre><code>export USE_CCACHE=1
</code></pre>
<p>By default the cache will be stored in <code>~/.ccache</code>.
If your home directory is on NFS or some other non-local filesystem,
you will want to specify the directory in your <code>.bashrc</code> file as well:</p>
<pre><code>export CCACHE_DIR=&lt;path-to-your-cache-directory&gt;
</code></pre>
<p>The suggested cache size is 50-100GB.
You will need to run the following command once you have downloaded
the source code:</p>
<pre><code>prebuilts/misc/linux-x86/ccache/ccache -M 50G
</code></pre>
<p>On Mac OS, you should replace <code>linux-x86</code> with <code>darwin-x86</code>:</p>
<pre><code>prebuilts/misc/darwin-x86/ccache/ccache -M 50G
</code></pre>
<p>When building Ice Cream Sandwich (4.0.x) or older, ccache is in
a different location:</p>
<pre><code>prebuilt/linux-x86/ccache/ccache -M 50G
</code></pre>
<p>This setting is stored in the CCACHE_DIR and is persistent.</p>
<h2 id="next-download-the-source">Next: Download the source</h2>
<p>Your build environment is good to go! Proceed to <a href="downloading.html">downloading the source</a>.</p>
