Table of Contents
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 :
- ActivePerl-5.6.1.638 : used for build system I generally install it in C:\Scripting\Perl ie in a path without spaces.
- JDK 1.5.0.19 : used for emulator
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
-
Anjuta_attach.2.jpg
(45.6 KB) - added by buergi
3 weeks ago.
Image by Audifahrer from old wiki
-
Anjuta_main.2.jpg
(125.8 KB) - added by buergi
3 weeks ago.
Image by Audifahrer from old wiki
