Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
building an extension gem and including a library source
Emmanuel Oga
9/7/2007 5:56:00 AM
I'm building an extension gem for
http://libharu.source...
My
intent is to help the spread of the library by uploading it to rubyforge
(it is already uploaded and working for the windows version, check: gem
install hpdf on win)
In LINUX, this library and the ruby extension is very easy to setup in
the traditional way. Just untar and run:
/configure --cflags=-fPIC
make
This makes libharu.so, wich will be needed by the ruby extension. Then
ruby extconf.rb
make
cp hpdf.so /var/lib/gems/hpdf/lib # << Path must be correct on your
system
That's all. The problem comes when i try to package the gem with
rubygems. I have no problems with the gem specification, but for the
extconf.rb i made a horrible hack that, tough works, is very, very ugly,
and dependes on "sh" and "sudo" to work properly, wich i don't know if
will always be available:
--------------------------------------------------------------------------
# First build the library. Horrible hack!
source_dir= File.join(File.dirname(__FILE__), './libharu')
system("cd #{source_dir}; sudo sh ./configure --cflags=-fPIC; make")
# From now on is ok
require 'mkmf'
$CPPFLAGS = $CPPFLAGS + " -I./libharu/include"
$LDFLAGS = $LDFLAGS + " -L./libharu"
$LIBS = $LIBS + " -lhpdf -lpng -lz"
create_makefile 'hpdf'
--------------------------------------------------------------------------
How can i change the gem spec or the extconf.rb file to avoid the use of
sh and sudo? I tought of moving all the .c and .h files to the same dir,
but i don't know if i will need special flags to compile the whole thing
!
--
Posted via
http://www.ruby-...
.
1 Answer
Tom M
9/7/2007 1:39:00 PM
0
Are you using the Gem::Specifications#extesions method? in your
gemspec? This builds the extension when you install the gem
automatically. You just say
spec.extensions = ["ext/[whatever]/extconf.rb"]
in your gemspec
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
building an extension gem and including a library source
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password