Difference between revisions of "Compiling ScummVM/Maemo"

From ScummVM :: Wiki
Jump to navigation Jump to search
m (Text replacement - "<source lang=" to "<syntaxhighlight lang=")
Tags: Mobile edit Mobile web edit
 
(8 intermediate revisions by 3 users not shown)
Line 19: Line 19:


Then run the following commands to install the SDK:
Then run the following commands to install the SDK:
sudo apt-get update
<syntaxhighlight lang="bash">
sudo apt-get install maemo-sdk
sudo apt-get update
sudo apt-get install maemo-sdk
</syntaxhighlight>


Then run the following commands to build/install the tools and compilers:
Then run the following commands to build/install the tools and compilers:


maemo-sdk reload catalogue
<syntaxhighlight lang="bash">
sudo maemo-sdk --mirror <nowiki>"http://archive.debian.org/debian/"</nowiki> install tools lenny-2009-1
maemo-sdk reload catalogue
sudo maemo-sdk install toolchain arm-2007q3
sudo maemo-sdk --mirror "http://archive.debian.org/debian/" install tools lenny-2009-1
maemo-sdk install rootstrap diablo4.1.2_armel
sudo maemo-sdk install toolchain arm-2007q3
maemo-sdk install rootstrap diablo4.1.2_armel
</syntaxhighlight>


== Install dependencies inside the SDK environment ==
== Install dependencies inside the SDK environment ==
Line 36: Line 40:
and then install the dependencies:
and then install the dependencies:


sb2 -eR apt-get update
<syntaxhighlight lang="bash">
sb2 -eR apt-get install libflac-dev libmad0-dev libmpeg2-4-dev libvorbisidec-dev
sb2 -eR apt-get update
sb2 -eR apt-get install libflac-dev libmad0-dev libmpeg2-4-dev libvorbisidec-dev
</syntaxhighlight>


== Optional: Install git inside SDK environment ==
== Optional: Install git inside SDK environment ==
Line 43: Line 49:
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.
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 [http://nikosapi.org/software/git/git_1.6.2-1_armel.deb here] (thanks [http://talk.maemo.org/showthread.php?t=27352 Nikosapi])
Download the armel git deb from [http://nikosapi.org/software/git/git_1.6.2-1_armel.deb here] (thanks [http://talk.maemo.org/showthread.php?t=27352 Nikosapi]) [http://bashasoliman.com/dump/maemo/git/git_1.6.2-1_armel.deb mirror]


Install it by running:
Install it by running:


  sb2 -eR dpkg -i git_1.6.2-1_armel.deb
<syntaxhighlight lang="bash">
sb2 -eR dpkg -i git_1.6.2-1_armel.deb
</syntaxhighlight>


== Optional: Install libfaad-dev inside SDK environment ==
== 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.
'''Note: this entire step is very optional as no stable games at the time of this writing (v1.8.0) need AAC decoding. 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.
Download these deb files into a temporary directory: [http://bashasoliman.com/dump/maemo/faad/libfaad-dev_2.6.1-3.1+maemo0_armel.deb libfaad-dev] [http://bashasoliman.com/dump/maemo/faad/libfaad0_2.6.1-3.1+maemo0_armel.deb libfaad0] [http://bashasoliman.com/dump/maemo/faad/libfaad2-0_2.6.1-3.1+maemo0_all.deb libfaad2]


  mkdir faad
Install them by running:
  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.
<syntaxhighlight lang="bash">
sb2 -eR dpkg -i libfaad*.deb
</syntaxhighlight>


  sb2 dpkg-buildpackage -b
Delete the libfaad.so from the SDK environment so that it statically links to libfaad.a instead of dynamically linking to libfaad.so (This version of libfaad.so isn't available in maemo-extra and is thus unavailable to maemo-users)
  sb2 -eR dpkg -i ../libfaad*.deb


Then we delete the libfaad.so from the SDK environment so that it statically links to libfaad.a
<syntaxhighlight lang="bash">
 
rm ~/.maemo-sdk/rootstraps/armel/diablo4.1.2_armel/usr/lib/libfaad.so*
  rm ~/.maemo-sdk/rootstraps/armel/diablo4.1.2_armel/usr/lib/libfaad.so*
</syntaxhighlight>


== Ensure Packaging Files Are Available In Source Tree Root ==
== 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:
This requires a symlink from backends/platform/maemo/debian to the root of the scummvm checkout:
ln -s backends/platform/maemo/debian  
<syntaxhighlight lang="bash">
ln -s backends/platform/maemo/debian  
</syntaxhighlight>


== Compile ==
== Compile ==
Line 81: Line 88:
=== Build Package ===
=== Build Package ===


sb2 dpkg-buildpackage -b
<syntaxhighlight lang="bash">
sb2 dpkg-buildpackage -b
</syntaxhighlight>


=== Compile (Without Building Package) ===
=== Compile (Without Building Package) ===


sb2 ./configure --host=maemo
<syntaxhighlight lang="bash">
sb2 make
sb2 ./configure --host=maemo
sb2 make
</syntaxhighlight>

Latest revision as of 15:07, 25 October 2018

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 entire step is very optional as no stable games at the time of this writing (v1.8.0) need AAC decoding. It is included here for posterity.

Download these deb files into a temporary directory: libfaad-dev libfaad0 libfaad2

Install them by running:

sb2 -eR dpkg -i libfaad*.deb

Delete the libfaad.so from the SDK environment so that it statically links to libfaad.a instead of dynamically linking to libfaad.so (This version of libfaad.so isn't available in maemo-extra and is thus unavailable to maemo-users)

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