This directory contains support files to build libc++ with
the Android NDK for ARM, x86 and MIPS.

You need a recent NDK release, one which provides a version
of the GAbi++ C++ runtime that supports rtti _and_ exceptions.

Build instructions:

  1/ Set NDK to the path of a recent Android NDK install path
     (Use Android NDK r8c or above), e.g.:

      NDK=$HOME/android/ndk-r8c

  2/ From the top-level directory, do:

      $NDK/ndk-build -C android/test

     This is actually equivalent to:

      cd android/test
      $NDK/ndk-build

  3/ To see build commands, use V=1, as in:

      $NDK/ndk-build -C android/test V=1


Android support files:

  include/support/android:
     Android system header wrappers, to add missing declarations

  src/support/android:
     Put the implementation of the missing system functions here.

  android/llvm-libc++/Android.mk:
     Main build file for the library. This builds one static and
     one shared version of the library.

     If modifications are not obvious, read $NDK/docs/ANDROID-MK.html
     for a description of the Android.mk format.

  android/test/jni:
     NDK build project for two test programs that link against the
     static and shared versions of the library.

     See the Android.mk and Application.mk files in this directory
     if you want to add new test files.


Toolchain selection:
  By default, ndk-build tries to build with GCC 4.6, however, experimental
  versions of GCC 4.7 and Clang 3.1 are available with recent NDK releases.

  Use the NDK_TOOLCHAIN_VERSION environment variable to switch to a
  different one, valid examples:


    export NDK_TOOLCHAIN_VERSION=4.6    # this is the default
    $NDK/ndk-build -C android/test

    # This is equivalent, but for GCC 4.7
    $NDK/ndk-build -C android/test NDK_TOOLCHAIN_VERSION=4.7

    # Also equivalent, but for Clang 3.1
    NDK_TOOLCHAIN_VERSION=Clang3.1 $NDK/ndk-build -C android/test
