Compiling ScummVM/Maemo
Compiling ScummVM for Maemo
This page describes how you build Maemo packages from the ScummVM source code tree.
Preparation
Compilation should be done on a Linux machine running Debian/Ubuntu.
For other operating systems, a Linux virtual machine running Debian/Ubuntu can be used instead.
The process is based on this document.
Download and Install Maemo SDK
Note: The following instructions are based on an attempt in a fresh Debian 5 (lenny) i386 install
Add the following line to /etc/apt/sources.list:
deb http://maemo-sdk.garage.maemo.org/download/host debian-lenny free
Then run the following commands to install the SDK:
sudo apt-get update sudo apt-get install maemo-sdk
Then run the following commands to build/install the tools and compilers:
maemo-sdk reload catalogue sudo maemo-sdk --mirror "http://archive.debian.org/debian/" install tools lenny-2009-1 sudo maemo-sdk install toolchain arm-2007q3 maemo-sdk install rootstrap diablo4.1.2_armel
Install dependencies inside the SDK environment
You'll need to install the maemo extras repo to the rootstrap. Add the following line to ~/.maemo-sdk/rootstraps/armel/diablo4.1.2_armel/etc/apt/sources.list
deb http://repository.maemo.org/extras/ diablo free non-free
and then install the dependencies:
sb2 -eR apt-get update sb2 -eR apt-get install libflac-dev libmad0-dev libmpeg2-4-dev libvorbisidec-dev
Optional: Install git inside SDK environment
The ScummVM makefile has an optional dependency on git. It uses it as part of populating the version. The git installed on the host operating system is not visible to the SDK environment.
Download the armel git deb from here (thanks Nikosapi) mirror
Install it by running:
sb2 -eR dpkg -i git_1.6.2-1_armel.deb
Optional: Install libfaad-dev inside SDK environment
Note: this step is very optional as no stable games currently need AAC decoding (as of 1.8.0). It is included here for posterity.
The libfaad version that's in maemo-extras is outdated and so we need to use the Lenny one (without the debian patches that make it unbuildable in maemo) and without dynamically linking to it so that it doesn't become a runtime dependency that's not available in maemo-extras.
mkdir faad cd faad apt-get source libfaad-dev cd faad2-2.6.1/ sb2 ./bootstrap
Remove these lines from debian/patches/00list: 02_public-headers, 99_autotools-regenerated. These patches make it unbuildable in maemo.
sb2 dpkg-buildpackage -b sb2 -eR dpkg -i ../libfaad*.deb
Then we delete the libfaad.so from the SDK environment so that it statically links to libfaad.a
rm ~/.maemo-sdk/rootstraps/armel/diablo4.1.2_armel/usr/lib/libfaad.so*
Ensure Packaging Files Are Available In Source Tree Root
This requires a symlink from backends/platform/maemo/debian to the root of the scummvm checkout:
ln -s backends/platform/maemo/debian
Compile
Depending on what you want, choose one of the following. If you're not sure, choose the first one.
Build Package
sb2 dpkg-buildpackage -b
Compile (Without Building Package)
sb2 ./configure --host=maemo sb2 make