Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > building an extension gem and including a library source

Thread Tools

building an extension gem and including a library source

Emmanuel Oga
Posts: n/a
I'm building an extension gem for 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

This makes, wich will be needed by the ruby extension. Then

ruby extconf.rb
cp /var/lib/gems/hpdf/lib # << Path must be correct on your

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

Reply With Quote
Tom M
Posts: n/a
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

Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
gemspec: How to install a Ruby extension into GEM/lib/SOME_DIR/rather than GEM/lib/ IƱaki Baz Castillo Ruby 1 02-28-2011 03:26 PM
RubyGems 0.9.1 calling a gem with gem '<gem>' Austin 7873 Ruby 5 01-27-2007 10:05 PM
Problems building gem with c-extension Stefan Achatz Ruby 0 05-30-2005 05:17 PM
C Library/Source code for building up a VoIP connection ? Martin Maurer UK VOIP 2 05-14-2005 02:08 PM
sqlite-ruby gem not building extension Jim Freeze Ruby 6 05-13-2005 11:18 AM