NTEmacsビルド(24.3)
Table of Contents
ビルド方法 (24.3)
ビルドした日
2013.6.30
ソースの入手
GNU ミラーサイト 例えば、ftp://ftp.ring.gr.jp/pub/GNU/emacs/ からダウンロードする
- emacs-24.3.tar.gz
IMEパッチ
gnupack の 概要 又は ダウンロードファイル一覧 から入手する。現時点での最新は emacs-24.3-ime-2013-05-03.patch.tar.gz であった。
ビルドを実行するシェル
Cygwinシェル(bash)を使用し、コマンド自体は MinGW 及び MSYS のものを使用する。
具体的には、.bashrc で
通常このようにしているとしたら、
PATH=/usr/local/bin:/bin:.:$PATH
ビルド時はこのように変更する。(MinGW と MSYS のbinに優先的にパスを通す)
PATH=/cygdrive/c/usr/MinGW/bin:/cygdrive/c/usr/MinGW/msys/1.0/bin:.:$PATH
IMEパッチの適用
emacs-24.3.tar.gz を展開し、パッチを当てる
ディレクトリ emacs-24.3 以下で実行する。
rockers:~/source/emacs-24.3$ patch -b -p1 < emacs-24.3-ime-2013-03-16.patch patching file lib-src/hexl.c patching file lib-src/make-docfile.c patching file lib-src/makefile.w32-in patching file lib-src/ntlib.c patching file lib-src/ntlib.h patching file lisp/cedet/cedet-cscope.el patching file lisp/image.el patching file lisp/international/w32-ime.el patching file lisp/loadup.el patching file lisp/site/site-init.el patching file lisp/site/site-start.el patching file lisp/startup.el (中略) patching file src/w32.c patching file src/w32.h patching file src/w32common.h patching file src/w32fns.c patching file src/w32font.c patching file src/w32font.h patching file src/w32heap.c patching file src/w32heap.h patching file src/w32inevt.h patching file src/w32proc.c patching file src/w32term.c patching file src/w32term.h patching file src/w32xfns.c patching file src/window.c patching file src/xdisp.c rockers:~/source/emacs-24.3$
configure.batの実行/make/make install
nt 以下で下記のように実行する。
$ cd nt $ ./configure.bat --with-gcc --enable-w32-ime --cflags -O3 --cflags -fno-tree-vectorize --cflags -mthreads --cflags -DIME_UNICODE --cflags -DRECONVERSION --cflags -DIMR_DOCUMENTFEED --cflags -DDOCUMENTFEED $ mingw32-make bootstrap $ mingw32-make install INSTALL_DIR=C:/usr/emacs
ビルドオプションについては NTEmacs ビルドオプション検討 を参照のこと。
なお、configure.bat を実行した時に出力されるメッセージで、PNG,JPEG,GIF,TIFF,XPM等の対応がOKか確認すること。 NGの場合は、MinGW及びGnuWin32のインストールを確認する。 NTEmacs_configure.html 参照。
Checking for libxml2.... ...libxml/HTMLparser.h not found, building without libxml2 support
前回のビルドでは気づかなかったが、emacs24からlibxml2をサポートしており、上記メッセージが表示されていた。 libxml2のセットをインストールして再度実行した
Checking for libgnutls... ...gnutls.h not found, building without TLS support.
上記 TLS supportに関しては、省略した。
前までは、–no-cygwin を付けていたが、
cc1.exe: error: unrecognized command line option '-mno-cygwin'
と言われるので、省略した。
これまで RECONVERSION,IMR_DOCUMENTFEED,DOCUMENTFEED の定義はしていなかったが、今回 makeを行うと、これらの関連定義部分でビルドエラーになる。 マクロ切り分けの意味無し。
また、これはconfigure.batをcygwinから実行した際の挙動なのかもしれないが、config.h の USE_W32_IMEとかのdefine部分の最後に ^M が入ってしまい、 マクロを正しく参照できていないと思われるビルドエラーが発生した。 これは手動で除去した。
w32fns.c: In function 'w32_wnd_proc': w32fns.c:4156:28: error: 'IMR_DOCUMENTFEED' undeclared (first use in this function) w32fns.c:4156:28: note: each undeclared identifier is reported only once for each function it appears in w32fns.c: In function 'Fime_get_property': w32fns.c:7690:30: error: 'IME_PROP_COMPLETE_ON_UNSELECT' undeclared (first use in this function) w32fns.c:7698:28: error: 'SCS_CAP_SETRECONVERTSTRING' undeclared (first use in this function) w32fns.c:7698:5: error: initializer element is not constant w32fns.c:7698:5: error: (near initialization for 'setcompstr_map[2].index') mingw32-make[3]: *** [oo-spd/i386/w32fns.o] Error 1 mingw32-make[3]: Leaving directory `D:/home/wurly/source/emacs-24.3/src' mingw32-make[2]: *** [bootstrap-temacs-SH] Error 2 mingw32-make[2]: Leaving directory `D:/home/wurly/source/emacs-24.3/src' mingw32-make[1]: *** [bootstrap-temacs] Error 2 mingw32-make[1]: Leaving directory `D:/home/wurly/source/emacs-24.3/src' mingw32-make: *** [bootstrap-gmake] Error 2
make installが終わった後、binの下に、GnuWin32 のdllを全てコピーする。 (C:/usr/MinGW/bin/以下の、glut32.dll iconv.dll jpeg62.dll libiconv-2.dll libimage.dll libpng12.dll libpng13.dll libpng3.dll librle3.dll libtiff3.dll libungif4.dll libxml2.dll xpm4.dll zlib1.dll)