Problems building binaries on OS X 10.4


#1

This is with the Ruby that ships with 10.4 (Tiger). We haven’t tried
building our
own Ruby on this platform yet.

The problem is that the .h header files are in
/usr/lib/ruby/1.8/universal-darwin8.0,
while the library files are bundles in
/usr/lib/ruby/1.8/powerpc-darwin8.0

which makes sense. But the extfile build system seems to look in
powerpc-darwin8.0, but not universal… – the RUBY_PLATFORM
var is set to “powerpc-darwin8.0”.

Should we build our own Ruby? Is there a way to configure our build
system to use /usr/bin/ruby? What if we want to build and use a fat
ruby?

Thanks,
Eric


#2

When you (or Apple, in this case) configure and build Ruby, Ruby
records the location of its header files. If you later try to build an
extension, extconf.rb expects to find those header files in the same
place. However, Apple in its wisdom chose not to put them there.

Some folks have been satisfied to create symlinks for the header files
in /usr/lib/ruby/1.8/powerpc-darwin8.0, which works. Most folks, I
think, are simply building their own Ruby. It’s not hard or
time-consuming.


#3

The weird part of this, btw, is that this problem doesn’t show up with
gcc 3.x on Tiger, but it does with gcc 4. I have no idea why.


#4

Some folks have been satisfied to create symlinks for the header files
in /usr/lib/ruby/1.8/powerpc-darwin8.0, which works. Most folks, I
think, are simply building their own Ruby. It’s not hard or
time-consuming.

Where are the header files located generally?

James


#5

Thanks, rm

I agree that it isn’t hard to build my own Ruby. The problem here is
that
this is part of a large build process done by several developers on
many
machines. So in other words, building our own Ruby should be SOP for
each new Mac we bring in.


#6

On 2/6/06, Eric P. removed_email_address@domain.invalid wrote:

powerpc-darwin8.0, but not universal… – the RUBY_PLATFORM
var is set to “powerpc-darwin8.0”.

Should we build our own Ruby? Is there a way to configure our build
system to use /usr/bin/ruby? What if we want to build and use a fat
ruby?

during the ./configure stage, specify --prefix=/usr and it will
install in /usr/bin/ruby and replace the stock ruby.

i.e.

./configure --prefix=/usr
make
sudo make install

done.

aaronk@Mini % which ruby

           ~

/usr/bin/ruby

cheers.