emacs-24.4 emacs mac port版の自家ビルド

Emacs 24.4が公開されてから半年ほど経過していますが、MacEmacs-Jpで配布されているバイナリは依然として24.3のまま。ewwを使ってみたいけど、日本語パッチがあたっていないと不便だし……などと考えていたところ、Emacs Mac Port版が良さそうだという情報を得ました。

Emacs-24.4.90-mac-5.4まではgithubでXin Xu(railwaycat)氏が公開していたのですが、Emacs 24.4.91-mac-5.5からはYamamoto Mitsuharu氏が公開しています。

railwaycat版:https://github.com/railwaycat/homebrew-emacsmacport

Yamamoto Mitsuharu版:http://www.math.s.chiba-u.ac.jp/~mituharu/emacs-mac.git

railwaycat氏はバイナリも公開してくれていたんですが、Yamamoto版はパッチのみ公開なので自分でビルドする必要があります。とは言っても、configure & makeだけなのでビルドは楽ですし不満はありません……ある一点を除いては。Yamamoto版ではself-containedなバイナリを作ってくれません。つまり、Emacs.appは/Applicationsディレクトリにインストールされるのですが、elispなどの周辺ファイルは/usr/local以下にインストールされます。それを回避してself-containedバイナリを作るために、自家ビルドしてみました。

curl -O http://ftp.gnu.org/gnu/emacs/emacs-24.4.tar.gz
curl -O ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-24.4.91-mac-5.5.tar.gz
curl -O ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-hires-icons-1.0.tar.gz
tar zxvf emacs-24.4.tar.gz
tar zxvf emacs-24.4.91-mac-5.5.tar.gz
tar zxvf emacs-hires-icons-1.0.tar.gz

cd emacs-24.4
patch -p1 < ../emacs-24.4.91-mac-5.5/patch-mac
cp -R ../emacs-24.4.91-mac-5.5/mac .
cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
cp ../emacs-hires-icons-1.0/etc/images/* ./etc/images/
cp ../emacs-24.4.91-mac-5.5/src/* ./src/
cp ../emacs-24.4.91-mac-5.5/lisp/term/mac-win.el ./lisp/term/
CC="clang -fobjc-arc"

以上で準備完了。self-containedでなくてもよければ以下でインストール完了します。

./configure --with-mac --enable-mac-app
make
sudo make install

一方、self-containedにしたければ、まずは以下のrailwaycat氏のスクリプトをダウンロード。

curl -O https://raw.githubusercontent.com/railwaycat/emacs-mac-port/master/build-emacs.app.sh

ファイル中のバージョン番号が「24.4.90」のようになっていると思うので、それを「24.4」に修正して

sh build-emacs.app.sh

でビルドできます。buildディレクトリの中にEmacs.appが入っているので、/Applicationsにコピーor移動してインストール完了です。

後日談

railwaycat氏のREADMEを読むと、「今後はhomebrew-emacsmacportに注力するぜ」と書かれており、以上のビルドは以下のbrewコマンドで解決できてしまいました。(また、self-containedバイナリについても、Yamamoto版パッチ公開から数日遅れでrailwaycat氏のgithubページで公開してくれていたのでした。うーむ。)

brew tap railwaycat/emacsmacport
brew install emacs-mac

あるいはcaskを使っているなら以下でもOK。

brew cask install emacs-mac