summaryrefslogtreecommitdiff
path: root/symbian/README.SYMBIAN
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-15 01:55:41 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-15 01:55:41 +0000
commit5932de4991e48ffcae71be6885ecdf9f10dd8f02 (patch)
treeb6122adb67ee8c306e158d92f276b5b0c088823d /symbian/README.SYMBIAN
parentc6af6b1b947f8b367c22904bd5b31079784059f6 (diff)
* symbian/README.SYMBIAN: symbian support added. great appreciate
to <alexandre.zavorine at symbian.com>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'symbian/README.SYMBIAN')
-rw-r--r--symbian/README.SYMBIAN98
1 files changed, 98 insertions, 0 deletions
diff --git a/symbian/README.SYMBIAN b/symbian/README.SYMBIAN
new file mode 100644
index 0000000000..4a8f782c7e
--- /dev/null
+++ b/symbian/README.SYMBIAN
@@ -0,0 +1,98 @@
+=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
+