From: Konrad Meyer Date: 2007-09-22T07:03:43+09:00 Subject: Re: CplusRuby - Gluing C and Ruby --nextPart1419151.1mao5Msloi Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Quoth Daniel Berger: >=20 > On Sep 21, 1:01 pm, Michael Neumann wrote: > > Hi all, > > > > I am proud to announce my latest project called CplusRuby. > > Below I pasted it's README for further explanation. > > Alternatively read the following blog article: > > > > http://www.ntecs.de/blog/articles/2007/09/21/cplusruby-gluing-c-and-ruby >=20 > >=20 > First patch! >=20 > C:\Documents and Settings\djberge\My Documents\My Downloads\Ruby>diff - > u cplusruby.orig cplusruby.rb > --- cplusruby.orig Fri Sep 21 15:50:38 2007 > +++ cplusruby.rb Fri Sep 21 15:49:04 2007 > @@ -11,6 +11,10 @@ > # > # Implements a simple ordered Hash > # > +require 'rbconfig' > +require 'win32/process' if RUBY_PLATFORM.match('mswin') > +include Config > + > class OHash < Hash > def []=3D(k, v) > @order ||=3D [] > @@ -146,20 +150,28 @@ > dir =3D File.dirname(file) > mod, ext =3D base.split(".") >=20 > + make =3D RUBY_PLATFORM.match('mswin') ? 'nmake' : 'make' > + > File.open(file, 'w+') {|f| f << self.generate_code(mod) } > Dir.chdir(dir) do > - system("make clean") > + system("#{make} clean") > + > pid =3D fork do > require 'mkmf' > $CFLAGS =3D cflags > $LIBS << (" " + libs) > create_makefile(mod) > - exec "make" > + exec "#{make}" > end > _, status =3D Process.waitpid2(pid) > - raise if status.exitstatus !=3D 0 > + > + if RUBY_PLATFORM.match('mswin') > + raise if status !=3D 0 > + else > + raise if status.exitstatus !=3D 0 > + end > end > - require "#{dir}/#{mod}.so" > + require "#{dir}/#{mod}." + CONFIG['DLEXT'] > end >=20 > def self.generate_code_for_class >=20 > Mostly fixes MS Windows issues, but the DLEXT bit also fixes platforms > that don't generate .so files (OS X, HP-UX). >=20 > Regards, >=20 > Dan Does the C->ruby mapping map between char * and Strings? Thanks, =2D-=20 Konrad Meyer http://konrad.sobertillnoon.com/ --nextPart1419151.1mao5Msloi Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQBG9D+0CHB0oCiR2cwRAm5fAJ4vJodjmvfVBltXxH2lUYm9EZpeSgCfQkW0 hBrZuB6OLZOfTkQINW3cfMY= =1i3A -----END PGP SIGNATURE----- --nextPart1419151.1mao5Msloi--