NTemacs21 CVS + IME.patch を Build する (Win95)

このページはObsolateです。最新記事(for Win2000)は、BuildNtemacsに有ります。<BR>


0. まえがき

Windows上には、Meadow2と云う、素晴らしい、emacsが有ります。でも、私は個人的な趣味で、emacs-21.3.50 をソースからビルドして使ってます。(通称NTEmacs21)

現在の、NTEmacs CVS先端では、image表示もサポートされており、IME.patchを当てれば、不自由を感じません。

ここでは、三好さん/小林さんの IME.patchをあてて、ビルドする方法を、紹介します。

あくまで、私のPCの環境(win95)の上での話ですので、試される場合は、自己責任でお願いします。

因みに、使ったCVSは2004-03-31版、その他のパッケージ類は、2004-04初旬に取得可能だった物です。

- 2004-05-31 2004-05-23版のCVS + emacs-cvs-20040528-IME.patch でビルド - 2004-07-26 2004-07-26版のCVS + emacs-cvs-20040719-IME.patch でビルド

又、CVS Emacs for Microsoft Windowsには、2003-12-28版のCVSで作られた、バイナリが置いてあります。<BR> 2004-07-28 現在、2004-07-09版が置かれています。<BR> IMEパッチは当たってませんので、インライン入力は出来ませんが、日本語は使えます。 お試しだったら、これで充分です。


1. 環境の整備

1.1. MinGW & MSYS をインストール

最初、Cygwin上でビルドを試みましたが、中々上手く行かないので、MSYS上で試したら、あっさり通ってしまいました。

MinGW のダウンロードページ から

- MinGW-3.1.0-1.exe —- MinGW そのもの - MSYS-1.0.10.exe ——- ビルドするための環境(rxvt,gcc,bash等) - msysDTK-1.0.1.exe —- csv が入ってる。別の方法でソースが入手できるなら不要。

を貰って来て、デフォルトでインストールすると、

- C:\MinGW - C:\MSYS

に、必要なファイルがインストールされる。

1.2. Cのヘッダファイル と DLL ファイル

1.2.1. Download

gnuwin32 から以下のものを入手。

- jpeg-6b-3.exe - libpng-1.2.5-1.exe - libungif-4.1.0b1-bin.zip - libungif-4.1.0b1-src.zip - tiff-3.6.1-2.exe - xpm-nox-4.2.0-bin.exe - zlib-1.2.1-1.exe

1.2.2. 展開

- jpeg-6b-3.exe - libpng-1.2.5-1.exe - tiff-3.6.1-2.exe - xpm-nox-4.2.0-bin.exe - zlib-1.2.1-1.exe

は、そのまま起動すると、C:\MinGW 以下の適切な場所に、各ファイルがインストールされる。

- libungif-4.1.0b1-bin.zip

を解凍して、libungif.dll を、C:\MinGW\bin へコピー

- libungif-4.1.0b1-src.zip

を解凍して、gif_lib.h を、C:\MinGW\include へコピー

1.3. MSYSを起動

Desktop の MSYS Icon を叩くと、MSYSが起動して、自動的に bash が立ちあがって home に login する。

mkdir /usr/local

しておく。


2. Build

2.1. CVS から ソースを取得

MSYS上で、

export CVS_RSH="ssh"<BR> cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/emacs co emacs<BR> 1

すると、カレントディレクトリの下に、emacs ディレクトリが出来て、ソースがチェックアウトされる。

以下の様にして、xpm.h を src/X11 ディレクトリに置く。

mkdir emacs/src/X11<BR> cp /MinGW/include/xpm.h emacs/src/X11

2.2. IME patch

小林さんのページから、IMEパッチを頂いて、カレントディレクトリへ置く。

そして、

cd emacs<BR> patch -p0 <../emacs-cvs-yyyymmdd-IME.patch<BR> 2

致命的な、rejが無いか見ておく。

2.3. configure

WindowsNT系(2000,XP)だと、小林さんのページのように <nowiki> <html>

./configure.bat —with-gcc —no-cygwin —prefix \<BR> c:/usr/emacs/current —cflags -DIME_CONTROL —cflags -DRECONVERSION \<BR> —cflags=-DCLIENTEDGE —cflags -I/usr/local/include<BR> </html> </nowiki>

で良いようですが、WIndows9*系の場合、環境用のメモリーが足りませんと怒られるので、 次の様にします。

DOS 窓上で、MSYS の 作業ディレクトリに移動。

<nowiki> <html>

cd emacs<BR> cd nt<BR> configure.bat —cflags=-DMEADOW —cflags=-DIME_CONTROL —with-gcc<BR> </html> </nowiki>

3.<BR>

<nowiki> <html>

emacs-cvs-20040528-IME.patch以降は、<BR> configure.bat —cflags=-DIME_CONTROL —with-gcc<BR> <BR> emacs-cvs-20040714-IME.patch以降は、<BR> configure.bat —cflags=-DIME_CONTROL —cflags=-DRECONVERSION<BR> —cflags=-DCLIENTEDGE —with-gcc<BR> </html> </nowiki> <BR> 無事、configureできたら、DOS窓 から exit

2.4. bootstrap

WinNT系(2000,XP)の、Cygwin 又は、MinGW上で、Configure した場合は、include file のチェックはうまく行くので、そのままMake出来ます。

win9*系で、DOS窓上でconfigureした場合、include ファイルをうまく見付けられないので、次の様にconfig.hを無理矢理書き換えます。

適当なエディターを使って、

emacs/src/config.h の最後を次の様に書きかえる。

<nowiki> <html> /* Start of settings from configure.bat. /<BR>

#define USER_CFLAGS " -DIME_CONTROL"<BR> HAVE_PNG 1<BR> HAVE_JPEG 1<BR> HAVE_GIF 1<BR> HAVE_TIFF 1<BR> HAVE_XPM 1<BR> / End of settings from configure.bat. / <BR> <BR> </html> </nowiki>

MSYS に戻って、

cd nt<BR> make bootstrap <BR>

最近、bootstrap がエラーで止まることが有りますが、構わず<BR> make all で、通ってます。

これで、通りました。

*2.5. インストール**

make INSTALL_DIR=/usr/local/emacs/21.3.50 install

とすれば、

c:\MSYS\1.0\local\emacs\21.3.50<BR> 以下に、インストールされる。

この侭でも大丈夫なはずだけど、変なところに、同じ名前で、バージョン違いのdllが有ったりすると、画像表示がうまく行かないので、DLLもインストール先のディレクトリへコピー。

cp /mingw/bin/libXpm-noX4.dll /usr/local/emacs/21.3.50/bin/libXpm-nox4.dll<BR> cp /mingw/bin/jpeg62.dll /usr/local/emacs/21.3.50/bin/jpeg62.dll<BR> cp /mingw/bin/libpng12.dll /usr/local/emacs/21.3.50/bin/libpng13d.dll<BR> cp /mingw/bin/libtiff3.dll /usr/local/emacs/21.3.50/bin/libtiff3.dll<BR> cp /mingw/bin/libungif.dll /usr/local/emacs/21.3.50/bin/libungif.dll<BR> cp /mingw/bin/zlib1.dll /usr/local/emacs/21.3.50/bin/zlib.dll<BR>


以前、下のように書いてましたが、上記の設定が現在(2004-07-28)は、一番確実です。

cp /mingw/bin/libXpm-noX4.dll /usr/local/emacs/21.3.50/bin/libXpm.dll<BR> cp /mingw/bin/jpeg62.dll /usr/local/emacs/21.3.50/bin/libjpeg.dll<BR> cp /mingw/bin/libpng12.dll /usr/local/emacs/21.3.50/bin/libpng.dll<BR> cp /mingw/bin/libtiff3.dll /usr/local/emacs/21.3.50/bin/libtiff.dll<BR> cp /mingw/bin/libungif.dll /usr/local/emacs/21.3.50/bin/libungif.dll<BR> cp /mingw/bin/zlib1.dll /usr/local/emacs/21.3.50/bin/zlib.dll<BR>


3. 作動の確認

3.1. イメージの確認

windows上で、

c:\MSYS\1.0\local\emacs\21.3.50\bin\runemacs.exe<BR> をダブルクリックして起動。

<nowiki>*scratch*</nowiki> バッファーで、

(eval 'image-type)<BR> を評価して、

(png gif tiff jpeg xpm pbm xbm)

となれば、OK。

3.2. DLL の入れ替え

表示できない画像タイプがあるときは、DLLを入れ替えてみる。

私の場合、

libpng.dll

CVS Emacs for Microsoft Windows でダウンロードした、パッケージから頂きました。

libtiff.dll

何故か、 cygwinのlibtiff.dllで動いてます。

多分、環境に依存すると思うので、うまく行かない場合は、御自分で、色々トライお願いします。


4. 設定

三好さんのNTEmacsページを参考にして下さい。


1.私自身は、MSYS上のcvsを使ってませんので、動作は保証できません。MacOSX(Panther)上のcvsでソースを取得してます。<BR>

2.改行コードが混在してますので、unix2dos、dos2unixを使って、適当に合わせてください。cvsの取得の方法によっても変わります。私の場合、patch は dos2unix。<BR>

3.configure.bat は、unix2dos かな。<BR>