木曜日, 9月 16, 2010

OS XにCocoa Emacsをインストールした

Snow LeopardにはデフォルトでEmacsがインストールされていますが、コンソールでのみ動作しGUI付きでビルドされていません。やはりGUIを使いたいので別に用意することにします。Snow Leopardで動作するGUI付きEmacsにはCarbon EmacsとCocoa Emacsがあります。ここはCocoa Emacsをインストールすることにします。Cocoa Emacsにはバイナリパッケージもあるようですが、せっかくですので64bitバイナリ・インラインパッチ入りのバイナリを自分でビルドしてみることにします。

EmacsのソースはBazaarで管理されているそうなので、こちらを見ながらBazaarを使ってチェックアウトを試みてみたのですが、何故か全然落ちてきません。さっさと諦めまして、こちらを見ながらGitによるミラーからチェックアウトします。こちらからインラインパッチをダウンロードしてからソースコードにパッチ充てしてみましたが、微妙に不整合が出ます。自力で修正しようかと思いましたがちょっと面倒そう。即座に保留しまして、こちらを参考にCVSでチェックアウトします。CVSのリポジトリはメンテナンスされていない様で、ソースコードは大分古いようですが気にしないことにします。これにパッチを充てようとしますが一箇所だけ不整合が。

diff -p -N -r -x '*.orig' ../emacs-23.1.95/src/Makefile.in src/Makefile.in
*** ../emacs-23.1.95/src/Makefile.in    2010-03-29 04:08:24.000000000 +0900
--- src/Makefile.in     2010-04-06 22:38:39.000000000 +0900
*************** ns_appresdir=@ns_appresdir@/
*** 542,548 ****
  ns_appsrc=@ns_appsrc@
  /* Object files for NeXTstep */
  NS_OBJ= nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
!       fontset.o fringe.o image.o
  #endif  /* HAVE_NS */
  
  #ifdef HAVE_WINDOW_SYSTEM
--- 542,548 ----
  ns_appsrc=@ns_appsrc@
  /* Object files for NeXTstep */
  NS_OBJ= nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
!       fontset.o fringe.o image.o macim.o
  #endif  /* HAVE_NS */
  
  #ifdef HAVE_WINDOW_SYSTEM
これは簡単に直せます。
diff src/Makefile.in.orig src/Makefile.in 
545c545
<  fontset.o fringe.o image.o
---
>  fontset.o fringe.o image.o macim.o
583c583
<   nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
---
>   nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macim.o \
1167a1168
> macim.o: macim.m lisp.h blockinput.h termhooks.h keyboard.h buffer.h $(config_h)
これで
$ ./configure --with-ns
$ make -j2
$ make install
したら無事にビルド完了。

できたnextstep/Emacs.appディレクトリ以下を/Applicationsフォルダにコピーでインストール終了…だと思います。まだ全然使ってないので。

0 件のコメント: