Update build instructions.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12025 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/README.android b/README.android
index d0e28ee..e86c9fe 100644
--- a/README.android
+++ b/README.android
@@ -1,35 +1,45 @@
 
 How to cross-compile for Android.
 
-This is known to work at least for Android 3.0 running on a Motorola
-Xoom.  Other configurations and toolchains might work, but haven't
-been tested.  Feedback is welcome.
+This is known to work at least for Android 2.3.4 running on a (rooted,
+AOSP build) Nexus S.  It has also worked in the past on a
+un-messed-with Motorola Xoom, although I haven't tested it recently.
+Other configurations and toolchains might work, but haven't been
+tested.  Feedback is welcome.
 
-You need the android-ndk-r5c native development kit.  Install it
+You need the android-ndk-r6 native development kit.  Install it
 somewhere.  Then do this:
 
-# Maybe not all of these are necessary -- I'm just being cautious.
-#
-export AR=/path/to/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar
-export CPP=/path/to/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-cpp
-export LD=/path/to/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ld
-export CXX=/path/to/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++
-export CC=/path/to/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
 
-# Configure.  This will build a Valgrind that needs to go in
-# /data/local/Inst on the device and that uses /data/local/tmp
-# as the tmp dir on the device.  This means it can operate on
-# non-rooted (production) devices.
+# Modify this (obviously).
 #
+export NDKROOT=/path/to/android-ndk-r6
 
-cd trunk
+
+# And then (unmodified)
+#
+export AR=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar
+export CPP=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-cpp
+export LD=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ld
+export CXX=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++
+export CC=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
+
+
+# Then cd to the root of your Valgrind source tree.
+#
+cd /path/to/valgrind/source/tree
+
+
+# Do configuration stuff.  Don't mess with the --prefix in the
+# configure command below, even if you think it's wrong.
+
 ./autogen.sh
 
-CPPFLAGS="--sysroot=/path/to/android-ndk-r5c/platforms/android-3/arch-arm" \
-   CFLAGS="--sysroot=/path/to/android-ndk-r5c/platforms/android-3/arch-arm" \
+CPPFLAGS="--sysroot=$NDKROOT/platforms/android-3/arch-arm" \
+   CFLAGS="--sysroot=$NDKROOT/platforms/android-3/arch-arm" \
    ./configure --prefix=/data/local/Inst \
    --host=armv7-unknown-linux --target=armv7-unknown-linux \
-   --with-tmpdir=/data/local/tmp
+   --with-tmpdir=/sdcard
 
 
 # At the end of the configure run, a few lines of details
@@ -44,8 +54,9 @@
 
 
 # Build, and park the install tree in `pwd`/Inst
-make
-make install DESTDIR=`pwd`/Inst
+#
+make -j2
+make -j2 install DESTDIR=`pwd`/Inst
 
 
 # To get the install tree onto the device:
@@ -55,4 +66,25 @@
 adb push Inst /
 
 # To run (on the device)
-/data/local/Bin/valgrind [the usual args etc]
+/data/local/Inst/bin/valgrind [the usual args etc]
+
+
+# Once you're up and running, a handy modify-V-rebuild-reinstall
+# command line (on the host, of course) is
+#
+mq -j2 && mq -j2 install DESTDIR=`pwd`/Inst && adb push Inst /
+#
+# where 'mq' is an alias for 'make --quiet'.
+
+
+# One common cause of runs failing at startup is the inability of
+# Valgrind to find a suitable temporary directory.  On the device,
+# there doesn't seem to be any one location which we always have
+# permission to write to.  The instructions above use /sdcard.  If
+# that doesn't work for you, and you're Valgrinding one specific
+# application which is already installed, you could try using its
+# temporary directory, in /data/data, for example
+# /data/data/org.mozilla.firefox_beta.
+#
+# Using /system/bin/logcat on the device is helpful for diagnosing
+# these kinds of problems.