From: Emmanuel Oga Date: 2007-09-07T14:56:27+09:00 Subject: building an extension gem and including a library source I'm building an extension gem for http://libharu.sourceforge.net/ 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-forum.com/.