Recently I wanted to dust off some old code I’d written for GNU Smalltalk, and found that Homebrew’s formula for it didn’t build cleanly in 64-bit mode, and wouldn’t include LibSDL or Cairo support in 32-bit mode. So I rolled up my sleeves and checked out the git repository. UPDATE: I’ve updated the Homebrew formula in my fork of Homebrew; see below.
It turned out to be straightforward, after I made a few false starts. Here’s how I got it built and working, including SDL and Cairo support.
GNU Smalltalk, when built from Git, depends on
libsigsegv. Fortunately, Homebrew’s formulas for these work well:
$ brew install libffi $ brew install libsigsegv
GNU Smalltalk itself
Check the code out from Git:
$ git clone https://github.com/bonzini/smalltalk.git smalltalk $ cd smalltalk
If you’re on Snow Leopard, you’ll have
autoconf version 2.61 and
automake version 1.10. The GNU Smalltalk source code requests newer
versions of these tools, but will build just fine with the versions
shipped with Snow Leopard’s XCode. Edit
configure.ac so that it has
AC_PREREQ(2.61) instead of
AC_PREREQ(2.63), and edit
Makefile.am so that it has the line
AUTOMAKE_OPTIONS = gnu 1.10.
(These changes are summarised in this patch.)
Makefile.am have been edited, carry on as
you usually would for an autotools project:
$ autoreconf -fvi $ ./configure --prefix=/opt/gnu-smalltalk PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.9/lib/pkgconfig $ make $ make install
PKG_CONFIG_PATH variable definition on the
./configure line is
necessary to let GNU Smalltalk’s configuration script find
which is a keg-only Homebrew formula for Snow Leopard.
2 Oct: I’ve just updated the Homebrew
gnu-smalltalk formula to
follow the steps above. It now builds from git HEAD rather than from a
numbered release. My changes haven’t been accepted into the main
branch of Homebrew yet, but for now you can see my formula