#!/bin/sh # # Build the Android libraries without needing a project # (AndroidManifest.xml, jni/{Application,Android}.mk, etc.) # # Usage: androidbuildlibs.sh [arg for ndk-build ...]" # # Useful NDK arguments: # # NDK_DEBUG=1 - build debug version # NDK_LIBS_OUT=<dest> - specify alternate destination for installable # modules. # # Note that SDLmain is not an installable module (.so) so libSDLmain.a # can be found in $obj/local/<abi> along with the unstripped libSDL.so. # # Android.mk is in srcdir srcdir=`dirname $0`/.. srcdir=`cd $srcdir && pwd` cd $srcdir # # Create the build directories # build=build buildandroid=$build/android obj= lib= ndk_args= # Allow an external caller to specify locations. for arg in $*; do if [ "${arg:0:8}" == "NDK_OUT=" ]; then obj=${arg#NDK_OUT=} elif [ "${arg:0:13}" == "NDK_LIBS_OUT=" ]; then lib=${arg#NDK_LIBS_OUT=} else ndk_args="$ndk_args $arg" fi done if [ -z $obj ]; then obj=$buildandroid/obj fi if [ -z $lib ]; then lib=$buildandroid/lib fi for dir in $build $buildandroid $obj $lib; do if test -d $dir; then : else mkdir $dir || exit 1 fi done # APP_* variables set in the environment here will not be seen by the # ndk-build makefile segments that use them, e.g., default-application.mk. # For consistency, pass all values on the command line. ndk-build \ NDK_PROJECT_PATH=null \ NDK_OUT=$obj \ NDK_LIBS_OUT=$lib \ APP_BUILD_SCRIPT=Android.mk \ APP_ABI="armeabi-v7a arm64-v8a x86 x86_64" \ APP_PLATFORM=android-16 \ APP_MODULES="SDL2 SDL2_main" \ $ndk_args