Edit

kc3-lang/SDL/build-scripts/androidbuildlibs.sh

Branch :

  • Show log

    Commit

  • Author : Sam Lantinga
    Date : 2018-01-27 12:05:26
    Hash : 2ceeb993
    Message : Fixed bug 4065 - SDL_wave.c fail to compile in armeabi with ndk r16b Sylvain armeabi is almost deprecated for android-ndk higher that r13b. either it doesn't compile (ICE), or it executes wrongly (using long long for instance). android people advices to use armeabi-v7a (or use r13b).

  • build-scripts/androidbuildlibs.sh
  • #!/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-14 \
      APP_MODULES="SDL2 SDL2_main" \
      $ndk_args