|
|
- #!/bin/bash
- #
- # 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
|