mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-11-04 01:34:38 +00:00 
			
		
		
		
	This script relies on string indexes in parameter expansions, which
aren't suppored by /bin/sh (e.g. dash).
Based on a patch by Roflcopter4:
https://github.com/joncampbell123/dosbox-x/pull/3850
Signed-off-by: Stephen Kitt <steve@sk2.org>
(cherry picked from commit bbfd5b3fb2)
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |