emacs23.1のビルド

emacs上でWindowsIMEを利用するためには、emacsIMEパッチを当ててコンパイルする必要があると知りました。
ちょっと興味があったので、emacs23.1のコンパイルを行ってみることにします。
作業の内容の殆どは、「NTEmacs 23.1 + IMEパッチ適用ビルドメモ」の通りに行っています。

ビルド環境の準備

emacsのビルドを行うために、コンパイラGNU関連のツールを導入します。

MinGWのインストール
  1. http://sourceforge.net/projects/mingw/files/ より、以下の2つをダウンロードします。
    • MinGW-5.1.6.exe
    • mingw32-make-3.80.0-3.tar.gz
  2. MinGW-5.1.6.exeを実行しインストールを行います。(インストール先 C:\MinGW
  3. mingw32-make-3.80.0-3.tar.gzを展開し、展開されたbin/mingw-make.exeを、C:\MinGW\bin以下にコピーし、既存のmingw-make.exeを上書きします。
GNUWin32関連のインストール
  1. http://gnuwin32.sourceforge.net/packages.html より、以下のComplete packageをダウンロードします。
    • coreutils-5.3.0
    • giflib-4.1.4-1
    • jpeg-6b-4
    • libpng-1.2.37
    • patch-2.5.9-7
    • tiff-3.8.2-1
    • xpm-3.5.1-1
    • zlib-1.2.3
  2. ダウンロードした各Complete Packageを実行してインストールします。
GNU EmacsIMEパッチのダウンロード
  1. http://ftp.gnu.org/pub/gnu/emacs/ より、emacs-23.1.tar.gzをダウンロードします。
  2. C:\build以下にemacs-23.1.tar.gzを展開します。
  3. http://sourceforge.jp/projects/ntemacsjp/ から、23.1用のIMEパッチ、Emacs-23.1-IME.patch.gzをダウンロードします。
  4. C:\build以下にEmacs-23.1-IME.patch.gzを展開します。
パスの追加

ビルドを行うのに、C:\MinGW\binとC:\Program Files\GnuWin32\binにパスを通しておきます。

パッチの適用

emacs23.1のソースにIMEパッチを適用します。

C:\>cd c:\build\emacs-23.1
C:\build\emacs-23.1>patch -p3 < ..\Emacs-23.1-IME.patch
patching file lib-src/makefile.w32-in
patching file lisp/loadup.el
patching file nt/configure.bat
patching file src/keyboard.c
patching file src/w32.c
patching file src/w32fns.c
patching file src/w32term.c
patching file src/w32term.h
patching file src/window.c
patching file lisp/international/w32-ime.el

emacsのビルド

1. configureを行います

C:\>cd c:\build\emacs-23.1\nt
C:\build\emacs-23.1\nt>configure --prefix=c:\emacs --cflags -I/progra~1/gnuwin32/include --ldflags -L/progra~1/gnuwin32/lib --no-opt --no-debug --enable-w32-ime --cflags -D_UNICODE --cflags -DRECONVERSION

2. makeを実行します。以下のエラーで止まります。

C:\build\emacs-23.1\nt>mingw32-make
...
...
...
mingw32-make[1]: *** No rule to make target `../lisp/international/w32-ime.elc', needed by `DOC'.  Stop.
mingw32-make[1]: Leaving directory `c:/build/emacs-23.1/lib-src'
mingw32-make: *** [all-other-dirs-gmake] Error 2

3. w32-ime.elをバイトコンパイルします。すでにインストール済みのemacsを利用します。

C:\build\emacs-23.1\nt>cd C:\build\emacs-23.1\lisp\international
C:\build\emacs-23.1\lisp\international>emacs -batch -f batch-byte-compile w32-ime.el

4. 再度、makeを実行します。

C:\build\emacs-23.1\lisp\international>cd c:\build\emacs-23.1\nt
C:\build\emacs-23.1\nt>mingw32-make

5. インストールを行います。

C:\build\emacs-23.1\nt>mingw32-make install

6. c:\emacsにインストールが行われます。

.emacsに設定を追加

IMEを利用するために、.emacsに以下のコードを追加します。

(set-language-environment "Japanese")
(w32-ime-initialize)
(setq default-input-method "W32-IME")
(setq-default w32-ime-mode-line-state-indicator "[--]")
(setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))