build-scripts/androidbuildlibs.sh
changeset 11262 8e5441ab6c63
child 11836 a42b155124a3
equal deleted inserted replaced
11261:2d458a198021 11262:8e5441ab6c63
       
     1 #!/bin/sh
       
     2 #
       
     3 # Build the Android libraries without needing a project
       
     4 # (AndroidManifest.xml, jni/{Application,Android}.mk, etc.)
       
     5 #
       
     6 # Usage: androidbuildlibs.sh [arg for ndk-build ...]"
       
     7 #
       
     8 # Useful NDK arguments:
       
     9 #
       
    10 #  NDK_DEBUG=1          - build debug version
       
    11 #  NDK_LIBS_OUT=<dest>  - specify alternate destination for installable
       
    12 #                         modules.
       
    13 #
       
    14 # Note that SDLmain is not an installable module (.so) so libSDLmain.a
       
    15 # can be found in $obj/local/<abi> along with the unstripped libSDL.so.
       
    16 #
       
    17 
       
    18 
       
    19 # Android.mk is in srcdir
       
    20 srcdir=`dirname $0`/..
       
    21 srcdir=`cd $srcdir && pwd`
       
    22 cd $srcdir
       
    23 
       
    24 
       
    25 #
       
    26 # Create the build directories
       
    27 #
       
    28 
       
    29 build=build
       
    30 buildandroid=$build/android
       
    31 obj=
       
    32 lib=
       
    33 ndk_args=
       
    34 
       
    35 # Allow an external caller to specify locations.
       
    36 for arg in $*
       
    37 do
       
    38   if [ "${arg:0:8}" == "NDK_OUT=" ]; then
       
    39 	obj=${arg#NDK_OUT=}
       
    40   elif [ "${arg:0:13}" == "NDK_LIBS_OUT=" ]; then
       
    41 	lib=${arg#NDK_LIBS_OUT=}
       
    42   else
       
    43     ndk_args="$ndk_args $arg"
       
    44   fi
       
    45 done
       
    46 
       
    47 if [ -z $obj ]; then
       
    48   obj=$buildandroid/obj
       
    49 fi
       
    50 if [ -z $lib ]; then
       
    51   lib=$buildandroid/lib
       
    52 fi
       
    53 
       
    54 for dir in $build $buildandroid $obj $lib; do
       
    55     if test -d $dir; then
       
    56         :
       
    57     else
       
    58         mkdir $dir || exit 1
       
    59     fi
       
    60 done
       
    61 
       
    62 
       
    63 # APP_* variables set in the environment here will not be seen by the
       
    64 # ndk-build makefile segments that use them, e.g., default-application.mk.
       
    65 # For consistency, pass all values on the command line.
       
    66 ndk-build \
       
    67   NDK_PROJECT_PATH=null \
       
    68   NDK_OUT=$obj \
       
    69   NDK_LIBS_OUT=$lib \
       
    70   APP_BUILD_SCRIPT=Android.mk \
       
    71   APP_ABI="all" \
       
    72   APP_PLATFORM=android-12 \
       
    73   APP_MODULES="SDL2 SDL2_main" \
       
    74   $ndk_args