I'm wrapping a library with swig, and I'd like to also implement some
rubyisms for it in a regular ruby file. So I have:
ext/sndfile/extconf.rb
ext/sndfile/sndfile.i
ext/sndfile/sndfile.h
lib/sndfile.rb
I'd like to have lib/sndfile.rb require the shared library. In the past
I've done this with require 'foo.so', which worked great on linux but it
occurs to me that it's not very cross-platform. (On my iBook for example
the output is sndfile.bundle)
Is there an elegant way to require the shared library and not the ruby
lib? Or do I just need to name my shared library something else? (or
vice versa) I'd like people to just be able to do
require 'sndfile'
this might help you:
require 'rbconfig'
[RUBY_PLATFORM, RUBY_VERSION] # => ["i686-linux", "1.8.3"]
Config::CONFIG["DLEXT"] # => "so"
···
On Tue, Nov 15, 2005 at 04:52:16AM +0900, Hans Fugal wrote:
I'm wrapping a library with swig, and I'd like to also implement some
rubyisms for it in a regular ruby file. So I have:
ext/sndfile/extconf.rb
ext/sndfile/sndfile.i
ext/sndfile/sndfile.h
lib/sndfile.rb
I'd like to have lib/sndfile.rb require the shared library. In the past
I've done this with require 'foo.so', which worked great on linux but it
occurs to me that it's not very cross-platform. (On my iBook for example
the output is sndfile.bundle)
--
Mauricio Fernandez
Hi,
At Tue, 15 Nov 2005 04:52:16 +0900,
Hans Fugal wrote in [ruby-talk:165742]:
I'd like to have lib/sndfile.rb require the shared library. In the past
I've done this with require 'foo.so', which worked great on linux but it
occurs to me that it's not very cross-platform. (On my iBook for example
the output is sndfile.bundle)
".so" is handled specically as the platform dependent suffix,
i.e., ".bundle" on MacOSX.
···
--
Nobu Nakada
So it does. I wonder what I fat-fingered when I thought I tried this in
irb. Thank you both for your answers.
···
On Tue, 15 Nov 2005 at 12:03 +0900, nobuyoshi nakada wrote:
".so" is handled specically as the platform dependent suffix,
i.e., ".bundle" on MacOSX.