To remove one possiblility as to why emacs would randomly crash under OS X Mavericks, I decided to build it from scratch under Mavericks itself. This involved jumping through a number of hoops.
Downloading the latest version of emacs source from https://savannah.gnu.org/projects/emacs, using Bazaar. This involved building Bazaar (aka bzr) on one of my FreeBSD boxes and then:
bzr branch bzr://bzr.sv.gnu.org/emacs/trunk
The repository copy takes some time. Once complete, the trunk directory contains this:
BUGS Makefile.in configure.ac lisp/ nt/ COPYING README doc/ lwlib/ oldXMenu/ ChangeLog admin/ etc/ m4/ src/ GNUmakefile autogen.sh* leim/ make-dist* test/ INSTALL build-aux/ lib/ msdos/ INSTALL.BZR config.bat lib-src/ nextstep/
As I was waiting for the repository to be cloned, I started reading the doc for devs, which indicated just jumping straight in like this was not the right thing to do, but it seemed to work OK. Next time I'll try and remember to do it the right way, viz:
cd $DEVHOME bzr init-repo emacs/
The trunk diretory was then copied to the Macbook Pro.
Next, you will note there is no configure
script. To create
it, one has to run ./autogen.sh
, but for that to work you
need autoconf and automake, which are not present by default on Mac
OS X Mavericks (even with XCode installed). So, using this
guide from Jean-Sebastien Delfino, we can build them. To
summarise the steps:
export build=~/dev mkdir -p $build cd $build curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.68.tar.gz tar xzf autoconf-2.68.tar.gz cd autoconf-2.68 ./configure make sudo make install cd $build curl -OL http://ftpmirror.gnu.org/automake/automake-1.11.tar.gz tar xzf automake-1.11.tar.gz cd automake-1.11 ./configure make sudo make install # dunno if you need libtool, but just to be on the safe side... cd $build curl -OL http://ftpmirror.gnu.org/libtool/libtool-2.4.tar.gz tar xzf libtool-2.4.tar.gz cd libtool-2.4 ./configure make sudo make install
Unlike Mr. Delfino, I installed everything in the Max OS X system
directories. (i.e. no --prefix=$build/bin
or some such)
Once these tools were in place, I could run ./autogen.sh
and then the configure
script was built. This is run like:
./configure --build=i686-apple-darwin --with-ns
The required arguments to configure
kindly supplied by David Caldwell's
GitHub site.
At this point, we can now run:
make && sudo make install
The Emacs.app setup is built in the nextstep
directory. I installed it over the existing version; let's see if it
behaves any better.