Android NDK Installation

Introduction:
-------------

Please read docs/OVERVIEW.html to understand what the Android NDK is and is not.
This file gives instructions on how to properly setup your NDK.


I. Requirements:
----------------

The Android NDK currently requires a Linux, OS X or Windows host operating system.

Windows users will need to install Cygwin 1.7 or later (http://www.cygwin.com) to
use the NDK. Note that running it under MSys or Cygwin 1.5 is not supported.

You will need to have the Android SDK and its dependencies installed. The NDK
cannot generate final application packages (.apk files), only the shared library
files that can go into them.


IMPORTANT:
  The Android NDK can only be used to target system images using
  the Cupcake (1.5) or later releases of the platform.

  This is due to subtle toolchain and ABI related changed that make
  it incompatible with 1.0 and 1.1 system images.

The NDK requires GNU Make 3.81 or later being available on your development
system. Earlier versions of GNU Make might work but have not been tested.

You can check this by running 'make -v' from the command-line. The output
should look like:

          GNU Make 3.81
          Copyright (C) 2006  Free Software Foundation, Inc.
          ...

On certain systems, GNU Make might be available through a different command like
'gmake' or 'gnumake'. For these systems, replace 'make' by the appropriate command
when invoking the NDK build system as described in the documentation. You might
also want to define the GNUMAKE environment variable to point to it.

The NDK also requires a Nawk or GNU Awk executable being available on your
development system. Note that the original 'awk' program doesn't implement
the 'match' and 'substr' functions used by the NDK build system.


II. Preparing your installation prebuilt cross-toolchain binaries:
------------------------------------------------------------------

Previous releases required you to run the 'build/host-setup.sh' script to
configure the NDK. However, this step has been removed in release 4 (a.k.a. r4).

The auto-detection and sanity checks that were performed by the script have
been moved into the NDK makefiles (and are now performed each time you invoke
GNU Make).
