ruby/nacl
yugui 76bc2d1ed7 Imports Ruby's port to NativeClient (a.k.a NaCl).
Patch by Google Inc. [ruby-core:45073].

* configure.in (RUBY_NACL): New M4 func to configure variables for
  NaCl.
  (RUBY_NACL_CHECK_PEPPER_TYPES): New M4 func to check the old names
  of Pepper interface types.
  (BTESTRUBY): New variable to specify which ruby should be run on
  "make btest". NaCl can run the built binary by sel_ldr, but it need
  rbconfig.rb. So this variable is distinguished from $MINIRUBY.
  
* thread_pthread.c: Disabled some features on NaCl.

* io.c: ditto.

* process.c: ditto.

* signal.c: ditto.

* file.c: ditto.

* missing/flock.c: ditto.

* nacl/pepper_main.c: An example implementation of Pepper application
  that embeds Ruby.

* nacl/example.html: An example of web page that uses the Pepper
  application.

* nacl/nacl-config.rb: Detects variants of NaCl SDK.

* nacl/GNUmakefile.in: Makefile template for NaCl specific build
  process.

* nacl/package.rb: script for packaging a NaCl-Ruby embedding
  application. 

* nacl/reate_nmf.rb: Wrapper script of create_nmf.py

* dln.c (dln_load): Added a hack to call on NaCl.

* util.c (ruby_getcwd): Path to the current directort is not available
  on NaCl.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-17 02:48:59 +00:00
..
GNUmakefile.in Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
README.nacl Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
create_nmf.rb Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
dirent.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
example.html Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
ioctl.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
nacl-config.rb Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
package.rb Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
pepper_main.c Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
resource.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
select.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
signal.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
stat.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
unistd.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00
utime.h Imports Ruby's port to NativeClient (a.k.a NaCl). 2012-05-17 02:48:59 +00:00

README.nacl

=begin
= Native Client port of Ruby

= How to build
== Prerequisites
You need to install the following things before building NaCl port of Ruby.
* Ruby 1.9.3 or later
* Python 2.6 or later
* NativeClient SDK pepper 18 or later
* GNU make

== Steps
(1) Extract all files from the tarball:
     $ tar xzf ruby-X.Y.Z.tar.gz
(2) Set NACL_SDK_ROOT environment vairanble to the path to the Native Client SDK you installed:
     $ export NACL_SDK_ROOT=/home/yugui/src/nacl_sdk/pepper_16
(3) Configure
     $ ./configure --prefix=/tmp/nacl-ruby --host=x86_64-nacl --with-baseruby=/path/to/ruby-1.9.3
(4) Make
     $ make
     $ make package

Now you have ruby.nexe. You can run it by sel_ldr in NaCl SDK.

"make package" installs "pepper-ruby.nexe", an example Pepper application that
embeds Ruby", and libraries to $prefix. You can run it by the following steps:
(5) Publish the $prefix directory on a web server
(6) Visit the example.html on the web server by a browser that implements Pepper 18 or later.
   -- e.g., Chrome 18 implements Pepper 18, Chrome 19 implements Pepper 19, ...

= Copyright
* Copyright 2012 Google Inc. All Rights Reserved.
* Author: yugui@google.com (Yugui Sonoda)
=end