From: Chris Gehlker Date: 2002-04-12T07:03:15+09:00 Subject: Unix folks, please help me fix the Mac OS X build of Ruby. The way that Ruby currently builds dynamic libraries, library xxx is built as a binary bundle named xxx.bundle. So, for example, if I have a library named Socket, I get Socket.bundle installed in /usr/local/lib/ruby/1.6/powerpc-darwin5.3/ The theoretical problem with this is that it's a deprecated usage of the overloaded selector "bundle" according to Christian Molick from Apple's Developer Tools unit. The practical problem is that if I try to test for the existence of the library using the latest version of gcc that runs on Macs, the test will fail when it shouldn't. As I'm sure you know, Ruby does this test in several places by passing -lxxx to gcc and seeing if it will link. For our specific example, this would be -lSocket. For this test to succeed, the library should be named "libxxx.dylib", or in the specific example, libSocket.dylib. The sad result is that some extensions that should get built for OSX don't because mkmf.rb thinks it didn't already build the library. It's trivial to exchange '.dylib' for '.bundle'. That can be done by merely updating configure.in. It's prepending the 'lib' that's the challenge. I wouldn't be surprised if there is something in CONFIG from the module Config that could be set because I vaguely remember similar prepending in Windows. I dumped it though and none of the names jump out at me. Is there something I'm missing? I hope to do this w/o hacking on Config. -- We ought not to treat living creatures like shoes or household belongings, which when worn with use we throw away. -Plutarch, biographer (c. 46-120)