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