I like the way Aquamacs looks. I don’t use it because it feels different.

One of the many reasons I use Emacs is because it gets rid of the “which editor do I use on this OS” problem for me. I’m constantly switching between multiple OSes and having to remember different key-bindings, different functionality, and different user interfaces for different editors/OSes is a major pain. Yes, I prefer using the keyboard to the mouse even on OS X. And Emacs allows me to memorize only one such set.

Now, I can use Aquamacs on OS X, but I don’t really think it fits my brain. GNU Emacs, on the other hand, gives me the same “classic” feeling of using it on, say, a Linux OS. Also, accessing Aquamacs from the terminal to do a batch compile of elisp modules is a pain. It doesn’t use standard Emacs options and breaks builds for various packages.

Therefore, I ended up removing Aquamacs and installed the build from emacsformacosx.com. But its days were numbered as well. Again, symlinking it and using it in the Terminal is easy, but batch-compiling things fails miserably with errors about architecture dependent locations missing and what-not.

So I decided to build Emacs from the source code. I had all the concerned developer tools and libraries installed so I simply fetched Emacs from the git tree and built two versions–one for the GUI and one for the terminal.

$ git clone git://git.savannah.gnu.org/emacs.git
# Update: The repository URL has changed.
$ git clone git://repo.or.cz/emacs.git
$ cd emacs/

GNU Emacs for the GUI

$ ./configure --with-ns     # <-- No --prefix=...
$ make bootstrap
$ make -j4
$ make install        # Yes without sudo.
$ sudo cp -r nextstep/Emacs.app /Applications/Emacs.app

GNU Emacs for the Console

$ ./configure --prefix=/usr/local --without-x     # with --prefix=...
$ make bootstrap
$ make -j4
$ sudo make install        # With sudo.

If you do not include a --prefix argument to the configure script and use the --with-ns option, you will end up building an application bundle when you type make install. On the other hand, specifying it without using the --with-ns option means you want make install to install it for use with a shell.

Now I have Emacs installed just the way I wanted.

About this entry