NDK Development: ---------------- This document describes how one can modify the NDK and generate new experimental release packages for it. I. Getting the sources: ======================= The sources live at android.git.kernel.org, You can get them with the following: mkdir myndk cd myndk git clone git://android.git.kernel.org/platform/ndk.git . If you intend to contribute patches, you might want to use the "repo" tool instead. Follow the instructions at source.android.com and download the full Android sources to your tree. II. Prebuilt binaries: ====================== The source tree does not contain the prebuilt binaries for the cross-compiler and other stuff that are necessary to generate machine code with the NDK. The easiest way to get them is to use the following script: build/tools/rebuild-all-prebuilt.sh: It will download all source packages from the Internet, unpack, patch and build them for you. In the end, the binaries will be located under the following: build/prebuilt/$HOST_TAG/ Where $HOST_TAG corresponds to your system (e.g. windows, darwin-x86 or linux-x86) rebuild-all-prebuilt.sh is really a wrapper script around many other scripts under build/tools. Use --help to get proper usage and options for each one of these tools. Things you can do with them include: II.1: Download the toolchain sources and package them: ------------------------------------------------------ build/tools/download-toolchain-sources.sh --package This downloads the toolchain sources from android.git.kernel.org and packages them into a file like /tmp/android-ndk-toolchain-<date>.tar.bz2 This is useful is you want to modify rebuild-all-prebuilt.sh to support different prebuilts or toolchains. To use the package, to rebuilt binaries: build/tools/rebuild-all-prebuilt.sh --toolchain-src=<package> You can also directly unpack the sources into a target source directory with: build/tools/download-toolchain-sources.sh <src-dir> II.2.: Build the cross-compiler only: ------------------------------------- build/tools/build-gcc.sh <src-dir> <ndk-dir> <toolchain-name> src-dir = unpacked toolchain source directory ndk-dir = target NDK install location (e.g. your 'myndk' top-level directory) toolchain-name = toolchain name (arm-eabi-4.2.1 / arm-eabi-4.4.0 / x86-4.2.1) II.3.: Build the gdbserver binary only: --------------------------------------- build/tools/build-gcc.sh <gdbserver-src-dir> <ndk-dir> <toolchain-name> II.4.: Package all prebuilt binaries for easier redistribution / unpacking: --------------------------------------------------------------------------- Build everything into a target directory: build/tools/rebuild-all-prebuilt.sh --package This will create a package named /tmp/android-ndk-prebuilt-<date>-<system>.tar.bz2 This package is to be unpacked directly in your NDK top-level directory, i.e. cd myndk tar xjf <package>