mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	unified diff. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
=begin
 | 
						|
 | 
						|
= How to build ruby using Symbian SDK
 | 
						|
 | 
						|
== Requirement
 | 
						|
 | 
						|
(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.
 | 
						|
 | 
						|
    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
 | 
						|
 | 
						|
===================================================================
 | 
						|
--- Epoc32/include/gcce/gcce.h
 | 
						|
+++ Epoc32/include/gcce/gcce.h
 | 
						|
@@ -22,4 +22,6 @@
 | 
						|
 #define IMPORT_C __declspec(dllimport) 
 | 
						|
 #define EXPORT_C __declspec(dllexport)
 | 
						|
+#define IMPORT_D __declspec(dllimport)
 | 
						|
+#define EXPORT_D __declspec(dllexport)
 | 
						|
 
 | 
						|
 
 | 
						|
@@ -79,6 +81,6 @@
 | 
						|
 
 | 
						|
 // __NAKED__ from cpudefs.h
 | 
						|
-#define __NAKED__ __asm
 | 
						|
-#define ____ONLY_USE_NAKED_IN_CIA____ __asm
 | 
						|
+#define __NAKED__ __declspec(naked)
 | 
						|
+#define ____ONLY_USE_NAKED_IN_CIA____ __declspec(naked)
 | 
						|
 
 | 
						|
 // Int64 and Uint64 from nkern\nklib.h
 | 
						|
@@ -94,5 +96,9 @@
 | 
						|
 #endif  /* __cplusplus */
 | 
						|
 
 | 
						|
+#if __GNUC__ < 4
 | 
						|
 typedef struct __va_list { void *__ap; } va_list;
 | 
						|
+#else
 | 
						|
+typedef __builtin_va_list va_list;
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 
 | 
						|
@@ -104,7 +110,13 @@
 | 
						|
 #endif
 | 
						|
 
 | 
						|
+#if __GNUC__ < 4
 | 
						|
 #define va_start(ap, parmN) __builtin_va_start(ap.__ap, parmN)
 | 
						|
 #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
 | 
						|
 
 | 
						|
 
 | 
						|
@@ -139,5 +151,7 @@
 | 
						|
 
 | 
						|
 // Deal with operator new issues here
 | 
						|
+#ifndef __SYMBIAN_STDCPP_SUPPORT__
 | 
						|
 #include "..\symcpp.h"
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 #ifdef __cplusplus
 | 
						|
===================================================================
 | 
						|
 | 
						|
 | 
						|
(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
 | 
						|
 | 
						|
(4) In case dynamic extensions support was enabled repeat (3) for ruby_core_ext.pkg
 | 
						|
 | 
						|
== Known problems
 | 
						|
 | 
						|
Currently gems are not supported.
 | 
						|
Currently signals are supported with reduced functionality (see OpenC release notes.)
 | 
						|
Dynamic extensions could be installed only on internal drive "C".
 | 
						|
 | 
						|
=end
 | 
						|
 |