トップ

NTEmacs 23.1 + IMEパッチ適用ビルドメモ

2009/9/2
2010/2/26更新

CygwinやMSYSを使わずにコンパイルするメモ。

ビルド環境の準備

http://www.mingw.org/ のDownloadsから次のファイルをダウンロードしてインストールする。lzmaは7-Zipで展開できる。

MinGWのmakeのコマンドは"mingw32-make.exe"となっていて長いので、"make.exe"にリネームすると便利。

http://gnuwin32.sourceforge.net/ のDownload→Packagesから次のパッケージのSetupをダウンロードして実行する。

ソースとパッチのダウンロード

http://www.gnu.org/software/emacs/ のDownloadsからFTPサーバーを選んでemacs/emacs-23.1.tar.bz2をダウンロード、http://sourceforge.jp/projects/ntemacsjp/ からEmacs-23.1-IME.patchをダウンロードして展開する。

ここではC:直下にbuildディレクトリを作ってその中に展開して出てきたemacs-23.1とIMEパッチを置いた。

パッチ

CygwinなどでなくWindowsコマンドプロンプトを使ってパッチを適用するときはパッチファイルの改行コードをCRLFにしておかないとpatchがクラッシュするので、何らかのエディタでEmacs-23.1-IME.patchを開いて改行コードを変更して保存しておく。

パッチを適用する。

>cd c:\build\emacs-23.1
>patch -p3 < ..\Emacs-23.1-IME.patch

ビルド

デフォルトの最適化

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

Core 2向けに最適化

>cd c:\build\emacs-23.1\nt
>configure --prefix=c:\emacs --cflags -I/progra~1/gnuwin32/include
  --ldflags -L/progra~1/gnuwin32/lib --no-debug
  --enable-w32-ime --cflags -D_UNICODE --cflags -DRECONVERSION
>make ARCH_CFLAGS="-c -march=core2 -O3 -fno-tree-vectorize -msse4.1
  -mfpmath=sse -pipe"
>make install

--no-debugでデバッグ情報を付けないようにすると3 MBほどバイナリが小さくなる。

今のEmacsソースパッケージはコンパイル済みのelcがすべて同梱されているのでmake bootstrapをしなくてもビルドできるのだが、IMEパッチで追加される lisp/international/w32-ime.el はソースだけしかない状態なので、いきなりmakeをするとエラーになる。make bootstrapしてもいいけれど別にインストール済みのEmacsで M-x byte-compile-file としてw32-ime.elをバイトコンパイルすると早い。

次のDLLは C:\Program Files\GnuWin32\bin からemacs.exeがインストールされたフォルダーにコピーしておく。

ビルドが終わったらbin\runemacs.exeのショートカットをクイック起動など好きな場所に作って完了。

info

infoファイルのコンパイルはGnuWin32のTexInfoでは古すぎてうまくいかない(Cygwinなら大丈夫)。初回のコンパイルではあらかじめコンパイルして入っているinfoファイルがインストールされるので問題ないが、一度でもmake cleanするとinfoファイルが消えてしまうので注意(すでにemacsフォルダーにインストール済みならソースにinfoがコンパイルされていない状態でmake installしても削除されることはない)。