El Capitan用にEmacs 24.5をビルドする
はじめに
これまで10.9 Mavericksを使い続けてきたが、評判がよろしいので手持ちのマシンの1台に10.11 El Capitanをインストールした。 クリーンインストールしたので特に大きな問題は発生していないのだが、前のマシンからコピーしたEmacsでカーソル移動とともに表示が消える現象が発生したので、この度新しくビルドすることにした。
ビルド方法を説明するブログ等はたくさんあるのだが、 /usr/local
の下に一部のファイルが入るなど他のマシンにコピーするには都合の悪い部分がある。
このため、 Emacs.app
を /Applications
にコピーさえすればとりあえず動く状態になるものをビルドすることにした。
なお、他のマシンにはまだコピーしていないのできちんと動くのか不明。 ちなみに、10.9のマシンにコピーしても動かなかった。。。
手順
まずはソースを取得して展開する。
% mkdir ~/build
% cd !$
% curl -LO http://ftp.gnu.org/pub/gnu/emacs/emacs-24.5.tar.xz
% curl -LO ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-24.5-mac-5.11.tar.gz
% tar Jxvf emacs-24.5.tar.xz
% tar zxvf emacs-24.5-mac-5.11.tar.gz
% cd emacs-24.5
パッチを当てて必要ファイルをコピーする。
% patch -p1 < ../emacs-24.5-mac-5.11/patch-mac
% cp -R ../emacs-24.5-mac-5.11/mac mac
% cp ../emacs-24.5-mac-5.11/src/* src
% cp ../emacs-24.5-mac-5.11/lisp/term/mac-win.el lisp/term
% cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
confiugreする。
このとき、 --prefix
を指定し、使用時にEmacs.appがインストールされるであろう場所に各種ファイルがインストールされるようにする。
% ./configure --with-mac --without-x --prefix=/Applications/Emacs.app/Contents/MacOS
このディレクトリは多分作成しておかなければならない。 古いバージョンのEmacsを使っている場合は移動しておくこと。
% mv /Applications/Emacs.app /Applications/Emacs_24.4.app
% mkdir -p /Applications/Emacs.app/Contents/MacOS
ビルドしてインストールする。
% make
% make install
make install
で mac/Emacs.app
が作られるのだが、一部のファイル /Applications/Emacs.app/Contents/MacOS
に入る。
なのでこれをコピーする。
MacOS
の後の /
をつけないと残念なことになるので注意。
% cd mac/Emacs.app/Contents/MacOS
% rsync -avrz -e cp /Applications/Emacs.app/Contents/MacOS/ ./
Emacs.app
の偽物を消して本物をコピーする。
% cd ../../..
% rm -rf /Applications/Emacs.app
% cp -r Emacs.app /Applications/
ついでにYaTeXを入れる
仕事柄 YaTeX をよく使うので Emacs.app
に同梱しておく。
この記事を執筆時点の最新版は1.78.4。
% cd ~/build
% curl -LO https://www.yatex.org/yatex1.78.4.tar.gz
% tar zxvf yatex1.78.4.tar.gz
% cd yatex1.78.4
Makefile
を直接編集する。
...
EMACS = /Applications/Emacs.app/Contents/MacOS/Emacs
PREFIX = /Applications/Emacs.app/Contents/MacOS
EMACSDIR = ${PREFIX}/share/emacs
...
make install
すればOK。
% make install
% make insta-yahtml
おわりに
このメモは後から作成しているため、間違いがあるかもしれない・・・。