<html><body><pre>Android NDK How-To:
===================

A collection of tips and tricks for NDK users


How to force the display of build commands:
-------------------------------------------

Do "ndk-build V=1" and actual build commands will be
displayed. This can be used to verify that things are compiled
as you expect them to, and check for bugs in the NDK build system.

(The V=1 trick comes from the Linux kernel build system)


How to force a rebuild of all your sources:
-------------------------------------------

Use GNU Make's "-B" option, as in:

   ndk-build -B


How to store your native sources in a location other than $PROJECT/jni:
-----------------------------------------------------------------------

First, you can simply tell your $PROJECT/jni/Android.mk to include
another Android.mk that are located in different places.

Alternatively, you can define APP_BUILD_SCRIPT in your Application.mk
to point to an alternative Android.mk file.


How to build a project's native files without cd-ing to it:
-----------------------------------------------------------

Sometimes, you may need to rebuild a project's native file without
being able to cd to its top-level path from the command-line. This
is do-able by using the GNU-Make '-C &lt;path&gt;' option, as in:

    ndk-build -C &lt;project-path&gt;


How to store your Application.mk in a location other than $PROJECT/jni:
-----------------------------------------------------------------------

Starting with NDK r4, you can simply place the file under $PROJECT/jni/
and launch the 'ndk-build' script from your project tree.

If you want to use 'ndk-build' but place the file to a different location,
use a GNU Make variable override as:

    ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk

If you're using the legacy $NDK/apps/&lt;name&gt; build method, you can create
a symbolic link to your final Application.mk there. For example, imagine
that you wrote:

  $PROJECT/foo/Application.mk

You can create a symlink like with a command like:

  ln -s $PROJECT/foo  $NDK/apps/&lt;name&gt;

This will make $NDK/apps/&lt;name&gt;/Application.mk point directly to
$PROJECT/jni/Application.mk

Note that generated files will still go under $NDK/out/apps/&lt;name&gt; though.

Windows users: The NDK is only supported on Cygwin, which implements
symbolic links through the "ln -s" command, as in:

    ln -s  &lt;target&gt;  &lt;link&gt;


How to properly add include directories to your module declaration:
-------------------------------------------------------------------

If you define several modules, it is common to need to include one
module's header while compiling another one. For example, consider
the following example:

  $PROJECT/jni/foo/
    Android.mk
    foo.h
    foo.c

  $PROJECT/jni/bar/
    Android.mk
    bar.c

Where the 'bar.c' uses '#include &lt;foo.h&gt;'. You will need to add the
path to the 'foo' module in jni/bar/Android.mk to build it properly.

One is tempted to use the following:

  LOCAL_C_INCLUDES := ../foo

However this will not work because all compilation happens from the
directory where 'ndk-build' is invoked, and include files must be
relative to it.

The correct line is instead:

  LOCAL_C_INCLUDES := $(LOCAL_PATH)/../foo

Which uses a path relative to $(LOCAL_PATH), in the case where you would
need to move 'foo' and 'bar' to a deeper level in the 'sources' hierarchy.

In case you absolutely need it, you can also use NDK_APP_PROJECT_PATH to
point to your project directory:

  LOCAL_C_INCLUDES := $(NDK_APP_PROJECT_PATH)/jni/foo

However, we don't recommend using this, paths relative to $(LOCAL_PATH)
being better.

</pre></body></html>