=begin

= How to build ruby using Symbian SDK

== Requirement

(1) Nokia S60 SDK version 3.1 or later from http://www.forum.nokia.com/Resources_and_Information/Tools/Platforms/S60_Platform_SDKs/ with OpenC plugin installed.

    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
<
---
> @released
18a19
>
21a23
>
24a27,29
> #define IMPORT_D __declspec(dllimport)
> #define EXPORT_D __declspec(dllexport)
>
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 */
<
< 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 */
<
---
> 	} }
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)
<
---
> #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
>


(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).

(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'

(3) Run `makesis ruby.pkg' from symbian\sis directory
     This command will create unsigned installation file ruby.sis. To sign it follow the guidlines from www.symbiansigned.com

== Known problems

Currently gems are not supported.
Currently signals are not supported.

=end

