2009-01-14 20:55:41 -05:00
=begin
= How to build ruby using Symbian SDK
== Requirement
2009-09-26 15:34:53 -04:00
(1) Nokia S60 SDK version 3.2 or later from http://www.forum.nokia.com/Resources_and_Information/Tools/Platforms/S60_Platform_SDKs/ with the latest OpenC plugin installed.
2009-01-14 20:55:41 -05:00
Note: if you want to build dynamic extensions support you need to install the latest version of GCC compiler from http://www.codesourcery.com/gnu_toolchains/arm/portal/release643. After that you need to apply a patch below to a header file (SDK_ROOT)\epoc32\include\gcce\gcce.h
11c11
2009-02-04 12:31:44 -05:00
<
2009-01-14 20:55:41 -05:00
---
> @released
18a19
2009-02-04 12:31:44 -05:00
>
2009-01-14 20:55:41 -05:00
21a23
2009-02-04 12:31:44 -05:00
>
2009-01-14 20:55:41 -05:00
24a27,29
2009-02-04 12:31:44 -05:00
> #define IMPORT_D __declspec(dllimport)
2009-01-14 20:55:41 -05:00
> #define EXPORT_D __declspec(dllexport)
2009-02-04 12:31:44 -05:00
>
2009-01-14 20:55:41 -05:00
81,82c86,87
< #define __NAKED__ __asm
< #define ____ONLY_USE_NAKED_IN_CIA____ __asm
---
> #define __NAKED__ __declspec(naked)
> #define ____ONLY_USE_NAKED_IN_CIA____ __declspec(naked)
92,96c97,98
< namespace std {
< extern "C" {
< #endif /* __cplusplus */
2009-02-04 12:31:44 -05:00
<
2009-01-14 20:55:41 -05:00
< typedef struct __va_list { void *__ap; } va_list;
---
> namespace std { extern "C" {
> #endif
97a100,104
> #if __GNUC__ < 4
> typedef struct __va_list { void *__ap; } va_list;
> #else
> typedef __builtin_va_list va_list;
> #endif
100,102c107
< } /* extern "C" */
< } /* namespace std */
2009-02-04 12:31:44 -05:00
<
2009-01-14 20:55:41 -05:00
---
> } }
105a111
> #if __GNUC__ < 4
107,109c113,119
< #define va_arg(ap, type) __builtin_va_arg(ap.__ap, type)
< #define va_end(ap) __builtin_va_end(ap.__ap)
2009-02-04 12:31:44 -05:00
<
2009-01-14 20:55:41 -05:00
---
> #define va_arg(ap, type) __builtin_va_arg(ap.__ap, type)
> #define va_end(ap) __builtin_va_end(ap.__ap)
> #else
> #define va_start(ap, parmN) __builtin_va_start(ap, parmN)
> #define va_arg(ap, type) __builtin_va_arg(ap, type)
> #define va_end(ap) __builtin_va_end(ap)
> #endif
140,141c150,152
< // Deal with operator new issues here
< #include "../symcpp.h"
---
> #ifndef __SYMBIAN_STDCPP_SUPPORT__
> #include "../symcpp.h"
> #endif
151a163
2009-02-04 12:31:44 -05:00
>
2009-01-14 20:55:41 -05:00
(2) If you want to build from SVN source, following command line binaries are required that are not a part of Symbain SDK.
* sed
* ruby 1.8
* svn
== How to compile and install
(1) Execute symbian\configure.bat on your build directory (symbian is default).
2009-02-04 12:31:44 -05:00
(2) Run the following commands from symbian\group directory
'bldmake bldfiles'
'abld makefile gcce'
'abld build gcce urel ruby'
'abld freeze gcce ruby'
'abld build gcce urel'
2009-01-14 20:55:41 -05:00
2010-03-14 12:26:06 -04:00
(3) Run 'makesis ruby.pkg' from symbian\sis directory
2009-02-04 12:31:44 -05:00
This command will create unsigned installation file ruby.sis. To sign it follow the guidlines from www.symbiansigned.com
2010-03-14 12:26:06 -04:00
(4) In case dynamic extensions support was enabled repeat (3) for ruby_core_ext.pkg
2009-01-14 20:55:41 -05:00
== Known problems
Currently gems are not supported.
2009-09-26 15:34:53 -04:00
Currently signals are supported with reduced functionality (see OpenC release notes.)
2010-03-14 12:26:06 -04:00
Dynamic extensions could be installed only on internal drive "C".
2009-01-14 20:55:41 -05:00
=end