ruby/symbian
nobu 0be716237d * symbian/pre-build (COMSPEC): should not overridden.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-16 02:51:22 +00:00
..
README.SYMBIAN * symbian/README.SYMBIAN: symbian support added. great appreciate 2009-01-15 01:55:41 +00:00
configure.bat * symbian/pre-build (COMSPEC): should not overridden. 2009-01-16 02:51:22 +00:00
missing-aeabi.c * symbian/README.SYMBIAN: symbian support added. great appreciate 2009-01-15 01:55:41 +00:00
missing-pips.c * symbian/README.SYMBIAN: symbian support added. great appreciate 2009-01-15 01:55:41 +00:00
pre-build * symbian/pre-build (COMSPEC): should not overridden. 2009-01-16 02:51:22 +00:00
rubyu.def * symbian/README.SYMBIAN: symbian support added. great appreciate 2009-01-15 01:55:41 +00:00
setup * symbian/README.SYMBIAN: symbian support added. great appreciate 2009-01-15 01:55:41 +00:00

README.SYMBIAN

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

(3) Run `bldmake bldfiles'

(4) Run `abld build gcce urel'

(5) Run `makesis ruby.pkg'

    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