librelist archives

« back to archive

Universal (fat) binary for OS X Intel

Universal (fat) binary for OS X Intel

Eric Watson
2011-09-29 @ 16:42
For some time now, Shoes has only been available for OS X in a 64-bit 
flavor. Recently, we have added support for building a 32-bit binary 
and/or a "universal" (fat) binary that includes both 32-bit and 64-bit 
intel binaries.

Please help me discover any wrinkles in the OS X build. I want to make 
sure the universal binary runs on all sorts of Snow Leopard/Lion machines 
(I don't think it can run on Leopard or previous, or on ppc). I also want 
to make sure Shoes will *build* on any Snow Leopard/Lion machine 
(following the instructions below).

Download a pre-built (zipped) universal binary:

Build your own Shoes. Here are some notes:

To build a universal binary Shoes, you have to start with universal binary

Most dependencies are installed using Homebrew, We are using a number of custom formulas
for dependencies. These should be brought in automatically, without 
modifying your Homebrew install. They will be built with the appropriate 

However, to build a universal Shoes, you must be running a universal ruby.
We do not install ruby as a dependency, because you already have ruby 
installed. You have to take care of this on your own. For me, this 
involved blowing out my rvm install `rvm implode`, reinstalling rvm, and 
then building like this: `rvm install ruby-1.9.2 -C 

From here, basically, you will be following the instructions on the wiki,,
except that you might have to set an environment variable *first*:

To build universal, use either kind of machine, `export SHOES_OSX_ARCH=universal`
To build 32-bit, use a 32-bit machine, `export SHOES_OSX_ARCH=i386`
To build 64-bit, use a 64-bit machine, you don't have to do anything different.

Note that we don't provide for building a slim 64-bit binary on a 32-bit 
machine, or vice versa.

Thanks for trying on Shoes!