Skip to content
Docker Image configuration and auxiliary files for NDK r14b toolchains for building the Android port for ScummVM
Shell Dockerfile
Branch: master
Clone or download
Latest commit 830d13d Oct 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
library-rules Use Debian 10.1 as base and target SDK 28 Oct 20, 2019
Dockerfile Use Debian 10.1 as base and target SDK 28 Oct 20, 2019
README.md README info updates Oct 20, 2019
cleanup-all-libraries-src-android.sh Added support for cross-compiled iconv 1.16 Oct 6, 2019
compile-libraries-android-arm.sh Replaced some api version and ndk version literals with env vars Oct 6, 2019
compile-libraries-android-arm64.sh Replaced some api version and ndk version literals with env vars Oct 6, 2019
compile-libraries-android-x86.sh Replaced some api version and ndk version literals with env vars Oct 6, 2019
compile-libraries-android-x86_64.sh Replaced some api version and ndk version literals with env vars Oct 6, 2019
compile-libraries.sh Dockerfile, initial readme and auxialliary scripts, patches and libra… Oct 3, 2019
configure-freetype.patch Dockerfile, initial readme and auxialliary scripts, patches and libra… Oct 3, 2019
docker-compose.override.yml Dockerfile, initial readme and auxialliary scripts, patches and libra… Oct 3, 2019
docker-compose.yml Dockerfile, initial readme and auxialliary scripts, patches and libra… Oct 3, 2019
macros-flac-1.3.3.patch Dockerfile, initial readme and auxialliary scripts, patches and libra… Oct 3, 2019
patch-mpeg2dec-confac.patch Use Debian 10.1 as base and target SDK 28 Oct 20, 2019
patch-x86-vorbis-clang.patch Dockerfile, initial readme and auxialliary scripts, patches and libra… Oct 3, 2019
setenv-android-build-arm64-v8a.sh Removed --disable-mt32emu from configure examples Oct 11, 2019
setenv-android-build-armeabi-v7a.sh Removed --disable-mt32emu from configure examples Oct 11, 2019
setenv-android-build-armeabi.sh Removed --disable-mt32emu from configure examples Oct 11, 2019
setenv-android-build-x86.sh Removed --disable-mt32emu from configure examples Oct 11, 2019
setenv-android-build-x86_64.sh Removed --disable-mt32emu from configure examples Oct 11, 2019
setenv-android.sh Dockerfile, initial readme and auxialliary scripts, patches and libra… Oct 3, 2019

README.md

scummvm-android

Docker Image configuration and auxiliary files for NDK r14b toolchains for building the Android port for ScummVM

Based on the work of Colin Snover (csnover), Cameron Cawley (ccawley2011) and Le Philousophe (lephilousophe).

Base docker image is now:

Debian 10.1

JDK used is from Debian Unstable (sid):

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-8u232-b09-1-b09)

Cross-compiled libraries are:

Basic instructions:

  • Install docker ("Docker Engine - Community" should work fine). Tested with version 19.03.2, build 6a30dfc on Linux Ubuntu x64 16.04.6 LTS

  • Install docker-compose on your system. Tested with version 1.24.1, build 4667896b

  • Build the image with:

docker build -t "scummvm/scummvm-android:latest" -f "./Dockerfile" .
  • Edit "docker-compose.override.yml" and replace the placeholder paths with your native system's paths, properly.

  • Run the container with:

docker-compose run --rm android
  • From within the container, navigate to /data/sharedrepo, where the scummvm repo should be mounted. Then run the "setenv-android.sh" script. This script has to be run only once per container session.
cd /data/sharedrepo
source $ANDROID_USR_OPT_PATH/setenv-android.sh
  • Then run the following sequence of commands, using the appropriate "setenv-android-build-xxxxx.sh" script and setting the proper target architecture as the "--host" argument depending on the architecture you are targetting (supported target architecture values are: android-arm, android-arm-v7a, android-arm64-v8a, android-x86 and android-x86_64). Example:
source $ANDROID_USR_OPT_PATH/setenv-android-build-arm64-v8a.sh
make clean; ./configure --enable-engine=testbed --host=android-arm64-v8a --enable-verbose-build --enable-debug
make -j$(nproc)
  • The output APK will be created as ScummVM-debug.apk in the current folder. Make sure to move or copy this file elsewhere before running "make clean" and starting to build for another architecture.

TODO:

  • Test adding support for more third party libraries (eg. OpenSSL, also: more updated libjpeg-turbo (2.0.3+))
  • Test possible transition to building with gradle without losing minimum API support
  • Organize the files better in a folder structure
  • Create another Dockerfile and script assets for the setup to build the old Android SDL port (uses SDL 1.2)
  • Create another Dockerfile and script assets for the setup to build the non-SDL port with the most recent version of NDK (this will probably result to the loss of supported older devices)
  • Experiment with possible SDL2 integration (?)

Reference links:

You can’t perform that action at this time.