7
edits
m (Work in progress) |
(Work in progress) |
||
Line 4: | Line 4: | ||
== Setup environment (Windows) == | == Setup environment (Windows) == | ||
=== Active Perl === | === Active Perl === | ||
5.6.1 or later, tested with 5.10.1.1007 | 5.6.1 or later, tested with 5.10.1.1007 | ||
Line 10: | Line 10: | ||
http://www.activestate.com/activeperl/downloads/ | http://www.activestate.com/activeperl/downloads/ | ||
=== S60 SDK=== | ===S60 SDK=== | ||
http://forum.nokia.com | http://forum.nokia.com | ||
Line 37: | Line 37: | ||
:http://get.qt.nokia.com/qt/source/qt-symbian-opensource-4.6.2.exe | :http://get.qt.nokia.com/qt/source/qt-symbian-opensource-4.6.2.exe | ||
=== | ===Open C/C++ plug-in=== | ||
http://forum.nokia.com | |||
Used version 1.6 | |||
:http://sw.nokia.com/id/fbe59b85-a621-404b-94d7-94ca818e576a/s60_open_c_cpp_plug_in_v1_6_en.zip | |||
===SVN client=== | ===SVN client=== | ||
Line 43: | Line 48: | ||
:http://tortoisesvn.net/downloads | :http://tortoisesvn.net/downloads | ||
== Patch SDK == | |||
Do the fix described in http://wiki.forum.nokia.com/index.php/KIS001022_-_Open_C:_Initializer_element_is_not_constant_error_on_GCCE_platform to the | |||
/Symbian/9.2/S60_3rd_FP1/EPOC32/include/e32def.h file. | |||
Else libzma won´t compile. (/Symbian/9.2/S60_3rd_FP1/EPOC32/include/e32def.h:2803: error: initializer element is not constant). | |||
TODO perhaps add patch for emulator as well here | |||
==Install sources== | ==Install sources== | ||
Line 71: | Line 85: | ||
are currently not supported on symbian. (And probably support does not make to much sense anyway). | are currently not supported on symbian. (And probably support does not make to much sense anyway). | ||
===TODO=== | Create a new project in carbide.c++ | ||
* File/New/Symbian OS C++ Project | |||
* Empty Project for Symbian | |||
* Project name: zimlib | |||
** Location should point to the xz containng the zimlib code | |||
* In SDK and build configurations select for S60_3rd_FP1: | |||
** Emulator Debug (WINSCW) [S60_3rd_FP1] | |||
** Phone Debug (GCCE) [S60_3rd_FP1] | |||
** Phone Release (GCCE) [S60_3rd_FP1] | |||
* Accept the default settings in the Empty Project Section. | |||
===liblzma= | |||
Used version: | |||
:http://tukaani.org/xz/xz-4.999.9beta.tar.gz | |||
Extract to carbide workspace and rename folder to xz. | |||
(Carbide does not like the - in the folder name.) | |||
Create a new project in carbide.c++ | |||
* File/New/Symbian OS C++ Project | |||
* Empty Project for Symbian | |||
* Project name: xz | |||
** Location should point to the xz containng the bzip2 code | |||
* In SDK and build configurations select for S60_3rd_FP1: | |||
** Emulator Debug (WINSCW) [S60_3rd_FP1] | |||
** Phone Debug (GCCE) [S60_3rd_FP1] | |||
** Phone Release (GCCE) [S60_3rd_FP1] | |||
* Accept the default settings in the Empty Project Section. | |||
There is also an embedded, more lightweight, version available, I have not tried that yet but | |||
may make sense to use it. However, also the regular version is running fine on the mobile | |||
phone. | |||
===libbz2=== | |||
Used version: | |||
:http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz | |||
Extract to carbide workspace bzip2/src. | |||
In Carbide.c++ create a new project bzip2 | |||
* File/New/Symbian OS C++ Project | |||
* Empty Project for Symbian | |||
* Project name: bzip2 | |||
** Location should point to the bzip2 containng the bzip2 code | |||
* In SDK and build configurations select for S60_3rd_FP1: | |||
** Emulator Debug (WINSCW) [S60_3rd_FP1] | |||
** Phone Debug (GCCE) [S60_3rd_FP1] | |||
** Phone Release (GCCE) [S60_3rd_FP1] | |||
* Accept the default settings in the Empty Project Section. | |||
===libzim=== | |||
==Port projects== | |||
Main porting effort is that symbian does not support autoconf. | |||
===Build configuration=== | |||
Symbian uses group/<projectname>.mmp and group/bld.inf to configure the build process. | |||
These files have to be copied from TODO to the projects group directory replacing | |||
the existing files for each of the libraries. Close carbide.c++ before doing this. | |||
When build errors occur later, it's a good idea to check whether the provided group | |||
file are actually used. | |||
Additionally for some of libraries (liblzma) config.h files, for unix builds generated with autoconfs have to be added. Copy them from TODO to into the projects in the symbian directory. ====config.h settings==== | |||
The config.h files have been generate in cygwin with autoconf and have been manually changed until build has been successul. Two changes worth to mention here: | |||
* xz/symbian/config.h | |||
Bool type definition changed to int. Should be checked why necessary and whether safe. | |||
* zimlib/symbian/config.h | |||
Change TODO | |||
===_WIN32 defines === | |||
Some (TODO) of the libs use _WIN32 to define some configurations. While this is not a problem for builds for the device, it causes problems in builds for the emulator, as it defines _WIN32 as well. | |||
Therefore the source files have to be changed so that in case __SYMBIAN32__ is defined _WIN32 is ignored. The following changes have to be done: | |||
* bzip2 | |||
** bzip2/src/bzlib.h | |||
Add | |||
// Symbian compiler defines _WIN32 in builds for emulator. | |||
#ifdef __SYMBIAN32__ | |||
#undef _WIN32 | |||
#endif | |||
before line | |||
#ifdef _WIN32 | |||
** bzip2/src/bzip2.c | |||
add after | |||
#define BZ_LCCWIN32 0 | |||
#if defined(_WIN32) && !defined(__CYGWIN__)&& !defined(__SYMBIAN32__) | |||
TODO removeunzcrash.c nessary? | |||
TODO | |||
* liblzma | |||
** xzsrcliblzmaapilzma.h | |||
Add | |||
// Symbian compiler defines _WIN32 in builds for emulator. | |||
#ifdef __SYMBIAN32__ | |||
#undef _WIN32 | |||
#endif | |||
before | |||
#ifndef LZMA_API_IMPORT | |||
*zimlib | |||
** zimlibincludezimzim.h | |||
Add | |||
// Symbian compiler defines _WIN32 in builds for emulator. | |||
#ifdef __SYMBIAN32__ | |||
#undef _WIN32 | |||
#endif | |||
before | |||
#ifdef _WIN32 | |||
TODO problem in uuid.getpid | |||
=== | |||
==Install on phone== | ==Install on phone== | ||
edits