WIKI IN PROGRESS

Introduction

This document provides some help to build the EFL for Symbian on Windows using Carbide_C++ and arm-none-symbianelf(GCCE) toolchain. The current EFL that are ported are evil, eina, eet. The ports are not complete, nor without bugs. So any help is welcome.

Installation and configuration of Symbian toolchain

Before installing the toolchain and SDKs we need to install some software requirements :

please do not install newer Perl version because it MIGHT work but it's not recommended by nokia. If you already have a newer version of Java you can try it because some people have reported it was working fine but if you want to be sure please install the 1.5 version.

Once you have installed requirements you need to create a root folder where will be installed sources, toochains and SDK. Generally I adopt the following tree hierarchy :

C:\devel

+ide

+sdks

+symbian

+toolchains

+arm-symbianelf

+src

+efl

+eina

...

Finally I really recommend to install cygwin or mingw because it will simplify porting.

Choosing Symbian SDK

Choosing a Symbian SDK can be tricky because it will depend on what device you want to run efl and what platform you are using to compile. If you can I really recommend to use Windows XP as host because it seems some sdk doesn't work very well on Windows Vista/Seven at least until v3 FP2.

SDK S60v3MR(3d edition) should be a good compromise and you can download zipped installer here  s60installer.

  • Download and unzip it
  • Default installation path is C:\Symbian\9.1 so please replace it by c:\devel\sdks\symbian. Installer should create a S60_3rd_MR folder where it will put sdk files. Once SDK has been installed you should be proposed to install symbian toolchain in C:\CSL Arm Toolchain so please install it instead in C:\devel\toolchains\arm-symbianelf.

3rd edition SDKs needs a separate plugin(OpenC/C++) to allow the use of posix compatibility layer, you need to download it  here and installer should patch your installed sdk.

Installing Carbide C++ and testing compilation

Normally installing an ide is not mandatory but symbian development is a lot easier when using Carbide.C++ ide. You can download it  here

When you install it please choose the developper edition because it offers more features and install it in C:\devel\ide\Carbide.c++_v2.0. Now before to start porting efl, you need to test that you can compile a simple hello world application, so start carbide and click OK when the select workspace is displayed. Go to File->Import->Symbian OS Bld.inf file and choose C:\devel\sdks\symbian\S60_3rd_MR\S60Ex\helloworldbasic\group\bld.inf. A dialog showing a list of target is shown, click next until you can click on finish.

Once project has been loaded into carbide, select on the left panel helloworldbasic and right-click->Properties->Carbide.c++->Build Configurations Check that emulator debug is selected then exit from this dialog. Now click 'Run' in toolbar(or right-click helloworldbasic->Build Project) and normally emulator should start,deploy and run helloworld application Sometimes application is not started and in this case, on emulator with keypad select Installat. icon and then HelloWorld? icon.

So from now you know how to compile for Symbian platform targetting emulator. To compile for device you only need to change target from project settings (right-click->Properties->Carbide.c++->Build Configurations and choose Phone Debug(GCCE) or Phone Release(GCCE).

Creating symbian makefiles and limitations

To be able to port efl on symbian, it won't be possible to compile and test on emulator because its compiler doesn't accept features used by efl source code (ex. macros with variable arguments) so you will ALWAYS have to choose Phone Debug/Release in Project Settings.

From first experiments, the first module needed to be ported is the posix compatiblity layer called evil because OpenC plugin lack support for fnmatch function used in eet.

cd c:/devel/src/efl/PROTO/evil mkdir symbian; cd symbian

TO BE CONTINUED

cd eet/src/lib find . -name "*.c" -printf "SOURCE %P\r\n" > eet.txt

Attachments