How to compile perf for Android
=========================================

I. Set the Android NDK environment
------------------------------------------------

(a). Use the Android NDK
------------------------------------------------
1. You need to download and install the Android Native Development Kit (NDK).
Set the NDK variable to point to the path where you installed the NDK:
  export NDK=/path/to/android-ndk

2. Set cross-compiling environment variables for NDK toolchain and sysroot.
For arm:
  export NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-
  export NDK_SYSROOT=${NDK}/platforms/android-9/arch-arm
For x86:
  export NDK_TOOLCHAIN=${NDK}/toolchains/x86-4.6/prebuilt/linux-x86/bin/i686-linux-android-
  export NDK_SYSROOT=${NDK}/platforms/android-9/arch-x86

This method is not working for Android NDK versions up to Revision 8b.
perf uses some bionic enhancements that are not included in these NDK versions.
You can use method (b) described below instead.

(b). Use the Android source tree
-----------------------------------------------
1. Download the master branch of the Android source tree.
Set the environment for the target you want using:
  source build/envsetup.sh
  lunch

2. Build your own NDK sysroot to contain latest bionic changes and set the
NDK sysroot environment variable.
  cd ${ANDROID_BUILD_TOP}/ndk
For arm:
  ./build/tools/build-ndk-sysroot.sh --abi=arm
  export NDK_SYSROOT=${ANDROID_BUILD_TOP}/ndk/build/platforms/android-3/arch-arm
For x86:
  ./build/tools/build-ndk-sysroot.sh --abi=x86
  export NDK_SYSROOT=${ANDROID_BUILD_TOP}/ndk/build/platforms/android-3/arch-x86

3. Set the NDK toolchain environment variable.
For arm:
  export NDK_TOOLCHAIN=${ANDROID_TOOLCHAIN}/arm-linux-androideabi-
For x86:
  export NDK_TOOLCHAIN=${ANDROID_TOOLCHAIN}/i686-linux-android-

II. Compile perf for Android
------------------------------------------------
You need to run make with the NDK toolchain and sysroot defined above:
For arm:
  make ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} CFLAGS="--sysroot=${NDK_SYSROOT}"
For x86:
  make ARCH=x86 CROSS_COMPILE=${NDK_TOOLCHAIN} CFLAGS="--sysroot=${NDK_SYSROOT}"

III. Install perf
-----------------------------------------------
You need to connect to your Android device/emulator using adb.
Install perf using:
  adb push perf /data/perf

If you also want to use perf-archive you need busybox tools for Android.
For installing perf-archive, you first need to replace #!/bin/bash with #!/system/bin/sh:
  sed 's/#!\/bin\/bash/#!\/system\/bin\/sh/g' perf-archive >> /tmp/perf-archive
  chmod +x /tmp/perf-archive
  adb push /tmp/perf-archive /data/perf-archive

IV. Environment settings for running perf
------------------------------------------------
Some perf features need environment variables to run properly.
You need to set these before running perf on the target:
  adb shell
  # PERF_PAGER=cat

IV. Run perf
------------------------------------------------
Run perf on your device/emulator to which you previously connected using adb:
  # ./data/perf
