I’ve been getting the urge to do a full Emacs reboot lately. Inspired partly by the interesting things going on in Emacs 24, I’ve been wanting to rebuild my whole working Emacs working environment–evolved over the course of years–throw away the cruft, upgrade assorted extensions, and maybe learn a few things along the way.
Oddly, there doesn’t seem to be an up-to-date PPA for Emacs 24, so I’ll build from source. To begin, I’ll grab the Emacs source code:
`$ bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk emacs
Now to generate the configure script:
$ cd emacs
This verifies I have the needed GNU automake stack, and spits out an executable configure script. GNU configure scripts will tell you what compile options they support if you pass the –help argument:
$ ./configure --help
As you might imagine for a project under constant development for several decades, Emacs has a lot of compile options. Many of them are already enabled by default.
I’m intrigued to see an option to build with cutting-edge GTK3 libraries. I think I’ll try that, so I need to grab the libraries first:
$ sudo apt-get install libgtk-3-dev
I also need a few extra graphics-related development libraries to satisfy build requirements:
$ sudo apt-get install libgif-dev libxpm-dev
I don’t see any other options I want to tweak, so I’ll just configure with the GTK3 option:
$ ./configure --with-x-toolkit=gtk3
After that process it’s time to build Emacs. I’ll kick off the build, and then go get a cup of coffee:
What’s interesting about watching the Emacs build process is that the vast majority of the time is spent byte-compiling Lisp files. This underscores the fact that Emacs is really an editor built in Lisp, with just a small kernel of C code powering the Lisp machine at its core.