NTEmacs22 CVS + IME.patch を Build する

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


私の、会社での環境がWin2000に替わったので、それに合わせてこのページを書き換えました。<BR> 古いWin95用のページは、こちらに置いておきます。<BR>

0. まえがき<BR>
1. 環境の整備<BR>
2. Build<BR>
3. 作動の確認<BR>
4. 設定<BR>
5. Cygwin でのビルド<BR>
6. Links<BR>

私のFont設定 ipaフォントを使ってます。フリーで素晴らしいフォントです。<BR>
スクリーンショット<BR>
バイナリはこちら<BR>

<BR>

0. まえがき

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

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

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

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

因みに、<BR> - CVS は、5日毎(1,6の日)に取得しています。<BR> - IME patch は最新版(最近は emacs-cvs-20050701-IME.patch)です。<BR> - MinGW & MSYS パッケージ類は2004-04初旬に取得可能だった物です。<BR>

最近は、毎5日に順調にBuild出来ています。<BR>

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


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 へコピー

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

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

1.3. MSYSを起動

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


2. Build

2.1. CVS から ソースを取得

MSYS上で、

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

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

2.2. IME patch

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

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

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

2.3. configure

<nowiki> <html> <p class="verse"> cd nt cmd.exe ./configure.bat —with-gcc —no-cygwin \ —prefix d:/cygwin/usr/local/emacs/22.0.50 \ —cflags -DIME_CONTROL —cflags -DRECONVERSION \ —cflags -DUSE_TRANSPARENCY —cflags -DCLIENTEDGE exit </p> </html> </nowiki> <BR>

2.4. bootstrap

make bootstrap
make all

<BR>

最近、bootstrap がエラーで止まることが有りますが、構わず

make all

しちゃってます。<BR><BR>

2.5. インストール

make install

とすれば、

d:/cygwin/usr/local/emacs/22.0.50

以下に、インストールされる。

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

cp /mingw/bin/libXpm-noX4.dll d:/cygwin/usr/local/emacs/22.0.50/bin/libXpm-nox4.dll
cp /mingw/bin/jpeg62.dll d:/cygwin/usr/local/emacs/22.0.50/bin/jpeg62.dll
cp /mingw/bin/libpng12.dll d:/cygwin/usr/local/emacs/22.0.50/bin/libpng13d.dll
cp /mingw/bin/libtiff3.dll d:/cygwin/usr/local/emacs/22.0.50/bin/libtiff3.dll
cp /mingw/bin/libungif.dll d:/cygwin/usr/local/emacs/22.0.50/bin/libungif.dll
cp /mingw/bin/zlib1.dll d:/cygwin/usr/local/emacs/22.0.50/bin/zlib.dll

2.5. 自動化

私の場合、cvsを使わず、tarballでソースを頂いて来ているので、次の2つのファイルを用意して自動化しています。<BR>

CONFIG.BAT (CVSから取得した、emacsの有るディレクトリ)
./configure.bat —with-gcc —no-cygwin —prefix d:/cygwin/usr/local/emacs/22.0.50 —cflags -DIME_CONTROL —cflags -DRECONVERSION —cflags -DUSE_TRANSPARENCY —cflags -DCLIENTEDGE

build_emacs (pathの通ったところ) <nowiki> <html> <p class="verse"> rm -rf emacs
tar zxvf `ls -t emacs-[0-9.]*.tar.gz head —lines=1`
cd emacs
patch -p0 < `ls -t ../emacs-cvs-[0-9]*-IME.patch head —lines=1`
cd nt cmd /c ..\..\config.bat make bootstrap make all make install </p> </html> </nowiki>

emacs/nt<BR> から、build_emacsを起動して、ビルドからインストールまで自動化してます。<BR><BR>

2.6. 最適化ビルド

次の様な shell script を、make_emacs 等として作成しておいて、make の替わりに使っています。<BR> <nowiki><html> <p class="verse"> make ARCH_CFLAGS="-D_X86_=1 -c -mno-cygwin -O3 -mfpmath=sse -march=pentium3" $1 $2 $3 $4 $5 </html></nowiki>

-marchの処は、環境に合わせてください。<BR> 画像の表示や、IMEの表示が大分速くなったような気がします。<BR>


3. 作動の確認

3.1. イメージの確認

windows上で、

d:/cygwin/usr/local/emacs/22.0.50/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ページを参考にして下さい。<BR> YEDO.COMさんのNTEmacsに関する話題や、各種設定メモなどや、<BR> Windows で Unix Likeも大変参考になります。<BR>

imeの設定は、小林さんのページから<BR> 私は、デバッグしやすいように、別ファイル設定ファイルにして読み込んでいます。<BR>


5. Cygwin でのビルド

最初、Cygwinでビルドをトライしていたとき、2箇所問題がありました。<BR>

一つ目は、Windowsと、CygwinでのPathの取り扱いの違いに起因するもので

emacs develop MLでの議論で取り上げられてます。
YEDO.COMさんには、解決法も示されてます。

私も、此処は何とか解決したのですが、<BR>

二つ目は、コンパイルが終わって、dumpするところで、止まってしまっていたのでした。(3月終わりのCVS)<BR> でも、今は、出来るようですね。

小関さんの過負荷な日々(2004-07-19)
YEDO.COMさんでも出来てます。


6. Links

Emacs

Emacs の巣(source)
CVS Emacs for Microsoft Windows

IME-patch

IME-patch の本家、三好さんのNTEmacsページ
CVS版の IME-patch 小林さんのページ

Buildの方法は、

小関さんの「過負荷な日々」を参考にさせていただきました。2003-02-04
と思ったら、逆にリンクされていました。2004-07-19
光栄です。

emacs21-users-jaのこの辺りの議論も参考にさせていただきました。
小関さんの投稿
> ;; 誰かきちんと説明の Web ページを書いてくんないかなあ。
が、このページを書くきっかけだったりします。

<BR>
<BR>

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

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

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