Difference between revisions of "Compiling ScummVM/Windows CE"

Jump to navigation Jump to search
WIP save
m (→‎ScummVM: more libz doc)
(WIP save)
Line 20: Line 20:
=== Compilers ===
=== Compilers ===


Versions before 0.9.0 use the Embedded Visual C development environment.
Versions before 0.9.0 use the Microsoft Embedded Visual C development environment.
More specifically you can use either
More specifically you can use either
[http://www.microsoft.com/downloads/details.aspx?familyid=f663bf48-31ee-4cbe-aac5-0affd5fb27dd&displaylang=en evc3] or  
[http://www.microsoft.com/downloads/details.aspx?familyid=f663bf48-31ee-4cbe-aac5-0affd5fb27dd&displaylang=en evc3] or  
Line 27: Line 27:
Most of the following instructions for building with VS2005 adhere to these builds as well.
Most of the following instructions for building with VS2005 adhere to these builds as well.


For the current 0.9.0 branch and the trunk there are two ways to compile:
 
For versions equal to 0.9.0 or 0.9.1 there are two ways to compile:


* 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. More on this [[#Compiling using the GCC toolchain|later]]).
* 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_ScummVM/Windows_CE/Old_GCC|on this page]]).
 
Version 0.10.0 builds with the VLC GCC cross compiler.
 
 
For the current builds (trunk), official ScummVM releases use the [http://cegcc.sf.net/ cegcc] GCC cross compiler. We try not to break builds with VS2005 but this can in no way be guaranteed as we do not longer use those tools. With some minor tweaking the code should be able to compile with VS tools too.


The former is used for building the 0.9.0 branch.
 
The migration from evc to VS is mandatory, as C++ templates introduced  
Now you may be asking yourselves why we have been through so many compiler changes. There are absolutely critical reasons for switching between them.  
For example, the migration from evc to VS is mandatory, as C++ templates introduced  
through core code evolution in the trunk of ScummVM
through core code evolution in the trunk of ScummVM
cause the evc compilers to crash with 'Internal compiler error'.
cause the evc compilers to crash with 'Internal compiler error'.
Line 40: Line 47:
leading to workarounds in the source and compilation of specific files with
leading to workarounds in the source and compilation of specific files with
no optimizations at all.
no optimizations at all.
Also, note that [http://msdn.microsoft.com/vstudio/express/ Visual Studio Express] does
Also, note that [http://msdn.microsoft.com/vstudio/express/ Visual Studio Express] (which is free) does
not support Windows CE.
not support Windows CE (at least at the time of writing this).
 
Further, the latest change from our semi-custom VLC GCC port to cegcc is mandated because building dlls which are required by the plugins is broken in the former. Fortunately we do not perceive any more compiler changes in the future. CEGCC is well maintained and even if it is not updated in the future (which seems unlikely) it is a darn good wince cross compiler as it is :-)
The latter method (GCC) is slated to be used for building PocketScumm, starting with the next major release (0.10.0).
As such, the trunk currently contains only the necessary Makefile for building with GCC.
It does not contain any VS2005 project files, athough we may in the future opt to
also provide project files for it as well.


=== Libraries ===
=== Libraries ===
116

edits

Navigation menu