You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.6 KiB
74 lines
1.6 KiB
#!/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
|
|
|