Erlang/OTP 17.0 on OSX Mavericks With WX and a Working Observer

written in Erlang

Update April 15 – 2014: Erlang/OTP 17.0 with a working WX library is now also available through Homebrew: brew install wxmac erlang. HT @dhc_

This post is an update of HOWTO: “Erlang R17-RC2 on OSX Mavericks with WX and a working Observer”.

The best Erlang yet

Today’s Erlang/OTP 17.0 release is ‘the best Erlang yet’ and contains two significant language changes: Maps and Named arguments in funs.

Erlang uses wxWidgets, a cross platform GUI library for it’s GUI tools. This build dependency was hard to get working pre-17, especially for 64-bit Erlang. However, 17.0 brings double rainbows and care bears for everyone that reads this HOWTO. So Enjoy!

nonode@nohost

Set correct Xcode path for compilation

As far as I know you need have Xcode install to compile Erlang from source. You can download Xcode via the Mac App Store

If you have multiple versions of Xcode installed (beta’s for example), make sure the Command Line Tools are installed and are pointing to the correct Xcode version.

Initiating an install of the Xcode Command Line Tools:

1
$ xcode-select --install

And verify that the CL-tools point to the correct Xcode install

1
$ xcode-select -s /Applications/Xcode.app/Contents/Developer

Install wxWidgets

wxWidgets is a Cross Platform GUI library that’s used by Erlang for applications like Observer.

Execute this line and get some coffee, walk the dog, take out the trash and/or play with your kids. Compilation takes a while.

1
2
3
4
5
6
$ curl -O http://optimate.dl.sourceforge.net/project/wxwindows/3.0.0/wxWidgets-3.0.0.tar.bz2
$ tar xvjf wxWidgets-3.0.0.tar.bz2
$ cd wxWidgets-3.0.0.tar.bz2
$ ./configure --with-cocoa --prefix=/usr/local
$ make && sudo make install
$ export PATH=/usr/local/bin:$PATH

Check that you got the correct wx-config

1
$ which wx-config

Install kerl

Kerl is a utility that helps you build and manage multiple instances of Erlang/OTP.

1
2
$ curl -O https://raw.github.com/spawngrid/kerl/master/kerl
$ chmod a+x kerl

Create ~/.kerlrc. I use $ vim ~/.kerlrc.

Add these lines:

1
KERL_CONFIGURE_OPTIONS="--disable-debug --without-javac --enable-shared-zlib --enable-dynamic-ssl-lib --enable-hipe --enable-smp-support --enable-threads --enable-kernel-poll --with-wx"

Build & Install Erlang with kerl

1
2
$ kerl update releases
$ kerl build 17.0 17.0

For a 32-bit Erlang prefix kerl build with CPPFLAGS:

1
$ CPPFLAGS="-arch i386" kerl build 17.0 17.0

Install:

1
$ kerl install 17.0 ~/erlang_17_0

Activate:

1
$ . ~/erlang_17_0/activate

And bliss out on your new wx-enabled Erlang:

1
$ erl -s observer start

Comments