#!/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.
#


# 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="SDL3" \
    $ndk_args
