最終更新日: 2019-01-03 木 12:10
ホーム | 文書トップ | 目次

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 をインストールする
  • MinGW + MSYS、GnuWin32 Packages をインストールする

ビルドを実行するシェル

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)

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)