Open main menu

Difference between revisions of "Compiling ScummVM/Windows CE"

m
Minor formatting edits. Previous change added the GCC compiler rebuild procedure :-)
m (Minor formatting edits. Previous change added the GCC compiler rebuild procedure :-))
Line 30: Line 30:


* Using [http://msdn.microsoft.com/windowsmobile/downloads/tools/install/default.aspx Microsoft Visual Studio 2005], or
* Using [http://msdn.microsoft.com/windowsmobile/downloads/tools/install/default.aspx Microsoft Visual Studio 2005], or
* Using the [http://download.videolan.org/pub/testing/wince/ Windows CE GCC cross compiler] developed by the [http://www.videolan.org/vlc/ VLC] team ('''do not''' rush to download and install this compiler. It needs to be rebuilt first.).
* Using the [http://download.videolan.org/pub/testing/wince/ Windows CE GCC cross compiler] developed by the [http://www.videolan.org/vlc/ VLC] team ('''do not''' rush to download and install this compiler. It needs to be rebuilt first. More on this [[#Compiling using the GCC toolchain|later]]).


The former is used for building the 0.9.0 branch.
The former is used for building the 0.9.0 branch.
The migration from evc to VS is mandatory, as C++ templates introduced  
The migration from evc to VS is mandatory, as C++ templates introduced  
through core code evolution in the branch
through core code evolution in the trunk of ScummVM
cause the evc to compilers to crash with 'Internal compiler error'.
cause the evc to compilers to crash with 'Internal compiler error'.
Unfortunately the migration is not completely successful as VS2005 (no service packs) introduces
Unfortunately the migration is not completely successful as VS2005 (no service packs) introduces
Line 107: Line 107:
header files live, and the linker's ''additional library directories''
header files live, and the linker's ''additional library directories''
to the *.lib files directory (-ies).
to the *.lib files directory (-ies).
For ScummVM 0.9.1, the VS2005 files assume that the directories "lib"
For ScummVM 0.9.1, the VS2005 files assume that the directories <tt>lib</tt>
and "libinclude" are situated in "backends/wince/missing".
and <tt>libinclude</tt> are situated in <tt>backends/wince/missing</tt>.


* Open the Project
* Open the Project
For versions older than 0.9.1, project files can be found in directories  
For versions older than 0.9.1, project files can be found in directories  
"dists/msevc3" and "dists/msevc4" of the source tree.
<tt>dists/msevc3</tt> and <tt>dists/msevc4</tt> of the source tree.
For 0.9.1 the project files are in "dists/msvc8-wince".
For 0.9.1 the project files are in <tt>dists/msvc8-wince</tt>.
Open "PocketScumm.vcw" or "PocketScumm.sln", whatever is applicable.
Open <tt>PocketScumm.vcw</tt> or <tt>PocketScumm.sln</tt>, whatever is applicable.
In the workspace that opens you should be able to see several projects,
In the workspace that opens you should be able to see several projects,
the main one being the "scummvm" project and the others being the
the main one being the "scummvm" project and the others being the
Line 179: Line 179:
==== GCC ====
==== GCC ====


Checkout the GCC source:
Checkout the [http://gcc.gnu.org/ GCC] source:
  svn -q checkout -r {20050511} svn://gcc.gnu.org/svn/gcc/trunk gcc
  svn -q checkout -r {20050511} svn://gcc.gnu.org/svn/gcc/trunk gcc
(Note the date. It does not match the date in the VLC patches. Also, later revisions
(Note the date. It does not match the date in the VLC patches. Also, later revisions
Line 185: Line 185:


Now come the patches.
Now come the patches.
:* First aaply the VLC [http://download.videolan.org/pub/testing/wince/patches/ VLC patch] (maybe a little fuzz here as well).
:* First aply the VLC [http://download.videolan.org/pub/testing/wince/patches/ GCC patch] (maybe a little fuzz here as well).
:* Then, patch <tt>gcc/stor-layout.c</tt> with the patch described [http://gcc.gnu.org/ml/gcc-patches/2006-10/msg01115.html here].
:* Then, patch <tt>gcc/stor-layout.c</tt> with the patch described [http://gcc.gnu.org/ml/gcc-patches/2006-10/msg01115.html here].
:* Finally, in <tt>gcc/config/arm/arm.h</tt>, stick the following define somewhere (before the architecture define is OK):
:* Finally, in <tt>gcc/config/arm/arm.h</tt>, stick the following define somewhere (before the architecture define is OK):
Line 250: Line 250:


* Build
* Build
cd into backends/platform/wince/ and type make dist.
cd into <tt>backends/platform/wince/</tt> and type <tt>make dist</tt>.
116

edits