Difference between revisions of "Compiling ScummVM/Android"

From ScummVM :: Wiki
Jump to navigation Jump to search
m
(forgot MAD)
Line 17: Line 17:


= Optional libraries =
= Optional libraries =
* [http://svn.xiph.org/branches/lowmem-branch/Tremor/ Tremor] (lowmem branch) to play ''.ogg'' audio files
* [http://www.underbit.com/products/mad/ MAD] to play ''.mp3'' audio files
* [http://www.underbit.com/products/mad/ MAD] to play ''.mp3'' audio files
* [http://svn.xiph.org/branches/lowmem-branch/Tremor/ Tremor] (lowmem branch) to play ''.ogg'' audio files
* [http://flac.sourceforge.net/ FLAC] to play lossless ''.flac'' files
* [http://flac.sourceforge.net/ FLAC] to play lossless ''.flac'' files


Line 68: Line 68:


  ./autogen.sh --host=arm --prefix=/opt/android/3rd-android-4-armeabi --enable-low-accuracy --enable-64kHz-limit
  ./autogen.sh --host=arm --prefix=/opt/android/3rd-android-4-armeabi --enable-low-accuracy --enable-64kHz-limit
and finally build & install it:
make
make install
=== MAD ===
Get a tarball of the latest stable version [http://sourceforge.net/projects/mad/files/libmad/ here] (v0.15.1b as of this writing) and extract it.
configure it:
./autogen.sh --host=arm --prefix=/opt/android/3rd-android-4-armeabi --enable-speed --enable-fpm=arm --disable-aso


and finally build & install it:
and finally build & install it:

Revision as of 20:10, 18 February 2011

Compiling ScummVM for Android

This page describes how you build Android packages from the ScummVM source tree.

Mandatory tools

Use the SDK Manager to install:

  • Android SDK Tools
  • Android SDK Platform-tools
  • SDK Platform Android 1.6, API 4
  • SDK Platform Android 2.2, API 8

Set the ANDROID_SDK environment variable to the root directory of the SDK, and ANDROID_NDK to the root directory of the NDK.

Optional libraries

  • Tremor (lowmem branch) to play .ogg audio files
  • MAD to play .mp3 audio files
  • FLAC to play lossless .flac files

Again, you have two options:

Precompiled binaries

Get this archive and extract it to e.g. /opt/android.

Build the libraries yourself

Here's a a simple script to set up a shell for crosscompiling:

#!/bin/sh

PREFIX=${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
export CC=${PREFIX}gcc
export CXX=${PREFIX}g++
export AS=${PREFIX}gcc
export LD=${PREFIX}gcc
export AR=${PREFIX}ar cru
export RANLIB=${PREFIX}ranlib
export STRIP=${PREFIX}strip
export OBJCOPY=${PREFIX}objcopy

export MACHDEP="--sysroot=$ANDROID_NDK/platforms/android-4/arch-arm -g -mandroid -mthumb-interwork"

export CFLAGS="${MACHDEP} -Os -Wall -mandroid -msoft-float -march=armv5te -mtune=xscale"

export CXXFLAGS="${CFLAGS}"

export LDFLAGS="${MACHDEP}"

echo "./configure --host=arm --prefix=/opt/android/3rd-android-4-armeabi"

Save it to a file (like android-4-eabi.sh) and run

. ./android-4-eabi.sh

in your shell. Build systems should now use the correct tools.

Tremor

Get a SVN checkout (r17852. as of this writing):

svn co http://svn.xiph.org/trunk/Tremor

configure it:

./autogen.sh --host=arm --prefix=/opt/android/3rd-android-4-armeabi --enable-low-accuracy --enable-64kHz-limit

and finally build & install it:

make
make install

MAD

Get a tarball of the latest stable version here (v0.15.1b as of this writing) and extract it.

configure it:

./autogen.sh --host=arm --prefix=/opt/android/3rd-android-4-armeabi --enable-speed --enable-fpm=arm --disable-aso

and finally build & install it:

make
make install

FLAC

Get a tarball of the latest stable version here (v1.2.1 as of this writing) and extract it.

configure it:

./configure --prefix=/opt/android/3rd-android-4-armeabi --disable-largefile --disable-thorough-tests --disable-doxygen-docs --disable-xmms-plugin --disable-cpplibs --disable-ogg --disable-oggtest --disable-rpath

and build & install the required parts:

make -C src/libFLAC
make -C src/libFLAC install
make -C include install

Compiling

The Android port can be compiled with the configure script. The most basic way to accomplish this is to run:

./configure --host=android --enable-plugins --default-dynamic
make

The script supports various arguments, which you can use to en- or disable features, see ./configure --help.

If you want support for additional libraries, you need cross-compiled binaries. If you followed the above description and have those libraries in /opt/android/3rd-android-4-armeabi, the configure command line would look like this:

./configure --host=android  --enable-plugins --default-dynamic --with-tremor-prefix=/opt/android/3rd-android-4-armeabi --with-mad-prefix=/opt/android/3rd-android-4-armeabi --with-flac-prefix=/opt/android/3rd-android-4-armeabi