nkeynes@1239 | 1 | # LX_ANDROID_BUILD
|
nkeynes@1239 | 2 | # Defines --with-android, --with-android-ndk, and --with-android-version
|
nkeynes@1239 | 3 | # If specified, checks for a working install, and sets build parameters
|
nkeynes@1239 | 4 | # appropriately for an Android host.
|
nkeynes@1239 | 5 | AC_DEFUN([LX_ANDROID_BUILD], [
|
nkeynes@1239 | 6 | AC_REQUIRE([AC_CANONICAL_HOST])
|
nkeynes@1239 | 7 | AC_ARG_WITH( android, AS_HELP_STRING( [--with-android=SDK], [Specify the location of the Android SDK] ) )
|
nkeynes@1239 | 8 | AC_ARG_WITH( android-ndk, AS_HELP_STRING( [--with-android-ndk=NDK], [Specify the location of the Android NDK] ) )
|
nkeynes@1239 | 9 | AC_ARG_WITH( android-version, AS_HELP_STRING( [--with-android-version], [Specify target Android SDK version]), [], [with_android_version="android-8"] )
|
nkeynes@1239 | 10 |
|
nkeynes@1239 | 11 | if test "x$with_android" != "x"; then
|
nkeynes@1239 | 12 | if test "$with_android" = "yes"; then
|
nkeynes@1239 | 13 | AC_MSG_ERROR( [--with-android option must be given with the path to the Android SDK] )
|
nkeynes@1239 | 14 | fi
|
nkeynes@1239 | 15 | if test "x$with_android_ndk" = "x" -o "x$with_android_ndk" = "xyes"; then
|
nkeynes@1239 | 16 | AC_MSG_ERROR( [--with-android-ndk=/path/to/ndk option must be used with --with-android] )
|
nkeynes@1239 | 17 | fi
|
nkeynes@1239 | 18 |
|
nkeynes@1239 | 19 | ANDROID_SDK_HOME="$with_android"
|
nkeynes@1239 | 20 | ANDROID_NDK_HOME="$with_android_ndk"
|
nkeynes@1239 | 21 | ANDROID_SDK_VERSION="$with_android_version"
|
nkeynes@1239 | 22 |
|
nkeynes@1239 | 23 | AC_CHECK_FILE( [$ANDROID_SDK_HOME/tools/ant/pre_setup.xml], [], [ AC_MSG_ERROR([Android SDK not found in $ANDROID_SDK_HOME]) ])
|
nkeynes@1239 | 24 | AC_CHECK_FILE( [$ANDROID_SDK_HOME/platforms/$ANDROID_SDK_VERSION/sdk.properties], [], [ AC_MSG_ERROR([Android platform version $ANDROID_SDK_VERSION not found in $ANDROID_SDK_HOME]) ])
|
nkeynes@1239 | 25 | AC_CHECK_FILE( [$ANDROID_NDK_HOME/toolchains], [], [ AC_MSG_ERROR([Android NDK not found in $ANDROID_NDK_HOME]) ])
|
nkeynes@1239 | 26 |
|
nkeynes@1239 | 27 | case $host_alias in
|
nkeynes@1239 | 28 | arm-* | "")
|
nkeynes@1239 | 29 | host_alias="arm-linux-androideabi"
|
nkeynes@1239 | 30 | host_cpu="arm"
|
nkeynes@1239 | 31 | host_vendor="unknown";
|
nkeynes@1239 | 32 | host_os="linux-androideabi"
|
nkeynes@1239 | 33 | ANDROID_NDK_BIN=`echo $ANDROID_NDK_HOME/toolchains/arm-*/prebuilt/*/bin`
|
nkeynes@1239 | 34 | ANDROID_GDBSERVER=`echo $ANDROID_NDK_HOME/toolchains/arm-*/prebuilt/gdbserver`
|
nkeynes@1239 | 35 | ANDROID_SYSROOT="$ANDROID_NDK_HOME/platforms/$ANDROID_SDK_VERSION/arch-arm"
|
nkeynes@1239 | 36 | TARGETFLAGS="-ffunction-sections -funwind-tables -fstack-protector -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wno-psabi -Wa,--noexecstack"
|
nkeynes@1239 | 37 | TARGETFLAGS="$TARGETFLAGS -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -march=armv5te -mtune=xscale -msoft-float -mthumb -Os"
|
nkeynes@1239 | 38 | ;;
|
nkeynes@1239 | 39 | i686-*)
|
nkeynes@1239 | 40 | host_alias="i686-android-linux"
|
nkeynes@1239 | 41 | host_cpu="i686"
|
nkeynes@1239 | 42 | host_vendor="android"
|
nkeynes@1239 | 43 | host_os="linux"
|
nkeynes@1239 | 44 | ANDROID_NDK_BIN=`echo $ANDROID_NDK_HOME/toolchains/x86-*/prebuilt/*/bin`
|
nkeynes@1239 | 45 | ANDROID_GDBSERVER=`echo $ANDROID_NDK_HOME/toolchains/x86-*/prebuilt/gdbserver`
|
nkeynes@1239 | 46 | ANDROID_SYSROOT="$ANDROID_NDK_HOME/platforms/$ANDROID_SDK_VERSION/arch-x86"
|
nkeynes@1239 | 47 | TARGETFLAGS=""
|
nkeynes@1239 | 48 | ;;
|
nkeynes@1239 | 49 | *)
|
nkeynes@1239 | 50 | AC_MSG_ERROR([Unsupported android host $host_alias])
|
nkeynes@1239 | 51 | ;;
|
nkeynes@1239 | 52 | esac
|
nkeynes@1239 | 53 |
|
nkeynes@1239 | 54 | AC_PATH_PROG( ANT, [ant] )
|
nkeynes@1239 | 55 |
|
nkeynes@1239 | 56 | CC="$ANDROID_NDK_BIN/${host_alias}-gcc"
|
nkeynes@1239 | 57 | CXX="$ANDROID_NDK_BIN/${host_alias}-g++"
|
nkeynes@1239 | 58 | CPP="$ANDROID_NDK_BIN/${host_alias}-cpp"
|
nkeynes@1239 | 59 | LD="$ANDROID_NDK_BIN/${host_alias}-ld"
|
nkeynes@1239 | 60 | AR="$ANDROID_NDK_BIN/${host_alias}-ar"
|
nkeynes@1239 | 61 | RANLIB="$ANDROID_NDK_BIN/${host_alias}-ranlib"
|
nkeynes@1239 | 62 | STRIP="$ANDROID_NDK_BIN/${host_alias}-strip"
|
nkeynes@1239 | 63 | OBJDUMP="$ANDROID_NDK_BIN/${host_alias}-objdump"
|
nkeynes@1239 | 64 | CPPFLAGS="-fPIC --sysroot=$ANDROID_SYSROOT -I$ANDROID_SYSROOT/usr/include $TARGETFLAGS $CPPFLAGS"
|
nkeynes@1239 | 65 | LDFLAGS="-nostdlib -Wl,--no-undefined -L${ANDROID_SYSROOT}/usr/lib -Wl,-rpath-link,${ANDROID_SYSROOT}/usr/lib -Wl,-allow-shlib-undefined -Wl,-z,noexecstack $LDFLAGS"
|
nkeynes@1239 | 66 | LIBS="$LIBS -liconv -llog -lgcc -lc"
|
nkeynes@1239 | 67 |
|
nkeynes@1239 | 68 | AC_SUBST(ANDROID_SDK_HOME)
|
nkeynes@1239 | 69 | AC_SUBST(ANDROID_NDK_HOME)
|
nkeynes@1239 | 70 | AC_SUBST(ANDROID_SDK_VERSION)
|
nkeynes@1239 | 71 | AC_SUBST(ANDROID_GDBSERVER)
|
nkeynes@1239 | 72 |
|
nkeynes@1239 | 73 | ANDROID_BUILD=yes
|
nkeynes@1239 | 74 | cross_compiling=yes
|
nkeynes@1239 | 75 | fi
|
nkeynes@1239 | 76 |
|
nkeynes@1239 | 77 | AM_CONDITIONAL(GUI_ANDROID, [test "$ANDROID_BUILD" = "yes"])
|
nkeynes@1239 | 78 |
|
nkeynes@1239 | 79 | ])
|