XEmacs on MS-Windows - コンパイル

ソースコードの入手

現在 21.4 の Windows 版は ftp で配布されているソースコードとは分 かれて開発されています。21.4 の Windows 版のソースコードは以下の ように CVS からタグ名、windows-21-4 を指定して取得できます。

cvs -z 3 -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs checkout -r windows-21-4 xemacs
    

Naitve

MSVC でのコンパイルはソースの中の nt/README を読んで必要になるラ イブラリを用意すれば出来ると思います。

Cygwin

以下の記述は最新の Cygwin では当てはまらないものもあります。現在 の環境を確認して処理してください。

Cygwin の配布には XEmacs のコンパイルに必要なライブラリは一通り 揃っていますが XPM は X を要求するものになっているので、以下のよ うに、X を使わないものが有効になるようにします。

$ cd /usr/lib
$ ln -sf libXpm-noX.a libXpm.a
$ ln -sf libXpm-noX.dll.a libXpm.dll.a
    

compface ライブラリは Cygwin の標準では入っていないので X-FACE を使いたい場合は自分でコンパイルしてインストールしてください。

IME サポートを有効にするためにautoconf で configure を作り直して ください。それから configure の引数に Mule サポートが組み込まれ るように、また Drag and Drop の機能を使う場合はそのように指定し ます。X のライブラリーをインストールしている場合は --with-x=noを 指定して、X サポートでコンパイルされないようにします。

コンパイル時に XEmacs からのメッセージを表示するため環境変数 CYGWIN に tty を設定します。この設定を有効にするには一度、Cygwin 関連のアプリケーションを全て終了する必要があります。

また、コンパイル時に mule-base パッケージが必要になりますので、 /usr/local/lib/xemacs 以下に(prefixを指定する場合は適切なディレ クトリに)パッケージを展開してからコンパイルをして下さい。

$ autoconf
$ ./configure --with-mule --with-dragndrop --with-x=no
$ make
    

Cygwin でのコンパイルでは xemacs.exe をダンプする所でうまくいか ない場合が多いようで、今ひとつ安定していません。また、コンパイル が出来てもサブプロセスが起動できないなどの問題のあるものが出来上 がる場合もあるようです。とりあえずここでダンプの方法をいくつか紹 介しますのでうまくいかない場合は色々試してみてください。

  1. 通常のダンプ方法

    何も指定しない場合、ダンプに失敗することが多いようです。どの ような要因が関係するのかはいまいち解りません。 src/sheap-adjust.h を一度消してからやり直すとうまくいく場合 もあります。

  2. src/unexcw.c を変更する

    src/unexcw.c の先頭で、“#define NO_DEBUG”としておくとダン プが成功する場合もあります。ただしこうしてしまうと、出来上がっ た実行ファイルが GDB でデバッグできなくなってしまいます。

  3. Portable Dumper を使う

    configure の引数に -pdump を指定します。うちの環境ではこれで ダンプが失敗したことはないですが、出来上がった XEmacs からは サブプロセスが起動できません。

Mingw

Mingw でのコンパイルは基本的には出来ませんが、Cygwin からのクロ スコンパイルがサポートされています。

コンパイルに必要な各種ライブラリを用意します。コンパイル済のバイ ナリが、xemacs の ftp サイト、あるいはそのミラーの aux/mingw/mingw-libs-O2.exe にあります。ヘッダファイルとライブラ リをそれぞれ /usr/include/mingw/ および/usr/lib/mingw/ に入れて ください。

コンパイルをするディレクトリは Cygwin と Windows と両方から同じ パスでアクセスできる必要があります。例えば、Cygwin では

/home/user/build/xemacs-21.4
    

Windows からは、

C:\home\user\build\xemacs-21.4
    

というようになるようにします。

Cygwin と同様に autoconf の実行し、環境変数 CYGWIN へ tty を追加 します。

configure には、Mingw へのクロスコンパイル、Mule、Drag and Drop の有効化、パッケージをインストールするディレクトリなどの情報を渡 します。また、PostgreSQL と GDBM はCygwin のものを検出してそれと リンクしてしまうので、無効になるようにします。

以下の実行例は C:\Program Files\XEmacs の中にパッケージを入れた 場合のものです。

$ autoconf
$ ./configure  'i586-pc-mingw32' '--with-mule' '--with-dragndrop' '--with-x=no' \
'--package-path=C:/Program Files/XEmacs/site-packages;C:/Program Files/XEmacs/mule-packages;C:/Program Files/XEmacs/xemacs-packages' \
'--without-database' '--without-postgresql'
$ make
    

XEmacs on MS-Windows