android: update to use gcc 4.6, available starting with NDK r8
authorHans-Christoph Steiner <hans@eds.org>
Fri, 19 Oct 2012 14:38:08 +0000 (10:38 -0400)
committerHans-Christoph Steiner <hans@eds.org>
Fri, 19 Oct 2012 14:38:08 +0000 (10:38 -0400)
android/README
make/Makefile.android

index 9f36257..4a91e14 100644 (file)
@@ -9,9 +9,9 @@ Building olsrd for Android
 --------------------------
 
 In order to build olsrd and the plugins for Android, you will need to
-download the free (as in beer, and mostly as in speech) Android NDK
-(the pud plugin requires NDK r8, everything else you can build with r6
-or maybe earlier):
+download the free (as in beer, and mostly as in speech) Android NDK.  NDK r8
+or later is the best to have.  Almost everything can be built with NDK r6
+or maybe earlier. The pud plugin requires NDK r8.
 
 http://developer.android.com/sdk/ndk/index.html
 
@@ -21,6 +21,12 @@ Once you have that installed, run this in your terminal:
 
 Then you can find olsrd in the root, and the plugin files in lib/*/*.so*
 
+If using NDK older than r8, you will need to set the NDK_COMPILER_VERSION to
+4.4.3 since the default compilter version, 4.6, was not included until NDK r8.
+Here's how:
+
+  make OS=android NDK_BASE=/path/to/your/android-ndk-r8 \
+       NDK_COMPILER_VERSION=4.4.3 build_all
 
 Android App
 -----------
index 340f411..0fecbf3 100644 (file)
@@ -92,14 +92,18 @@ INSTALL_LIB =       install -D -m 755 $(PLUGIN_FULLNAME) $(LIBDIR)/$(PLUGIN_FULLNAME);
 UNINSTALL_LIB =        rm -f $(LIBDIR)/$(PLUGIN_FULLNAME); \
                /sbin/ldconfig -n $(LIBDIR)
 
+# Android NDK setup
 HOST = arm-linux-androideabi
-NDK_BASE = /opt/android-ndk
-CURRENT_SYSTEM := $(shell uname -s | tr A-Z a-z)
-NDK_TOOLCHAIN_BASE = $(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(CURRENT_SYSTEM)-x86
-
-NDK_PLATFORM_VERSION = 4
-NDK_SYSROOT = $(NDK_BASE)/platforms/android-$(NDK_PLATFORM_VERSION)/arch-arm
-CROSS_COMPILE = $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-
+NDK_BASE ?= /opt/android-ndk
+NDK_PLATFORM_LEVEL ?= 4
+NDK_ABI=arm
+NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_LEVEL)/arch-$(NDK_ABI)
+NDK_UNAME=$(shell uname -s | tr '[A-Z]' '[a-z]')
+# if you are using NDK older than r8, you must use 4.4.3:
+#NDK_COMPILER_VERSION=4.4.3
+NDK_COMPILER_VERSION=4.6
+NDK_TOOLCHAIN=$(NDK_BASE)/toolchains/$(NDK_ABI)-linux-androideabi-$(NDK_COMPILER_VERSION)/prebuilt/$(NDK_UNAME)-x86
+CROSS_COMPILE = $(NDK_TOOLCHAIN)/bin/$(HOST)-
 
 CC = $(CROSS_COMPILE)gcc --sysroot="$(NDK_SYSROOT)"
 LD = $(CROSS_COMPILE)ld