Saturday, July 17, 2010

windres: can't open icon file `icons\emacs.ico'

MinGW / MSYS の環境を作り直して、久しぶりに Emacs の emacs-23 ブランチをビルドしてみたら、make all や make bootstrap で emacs.exe を作るときに windres がコケるようになってた。

$ make bootstrap (的なコマンドライン)
(略)
windres -O coff --include-dir ../nt -o oo-spd/i386/emacs.res ../nt/emacs.rc
rm oo-spd/i386/temacs0.a
rm: cannot lstat `oo-spd/i386/temacs0.a': No such file or directory
make[2]: [oo-spd/i386/temacs0.a] Error 1 (ignored)
ar -rsc oo-spd/i386/temacs0.a oo-spd/i386/emacs.o
windres: can't open icon file `icons\emacs.ico': No such file or directory
make[2]: *** [oo-spd/i386/emacs.res] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/c/Users/yu-ji/home/src/wc/emacs/emacs-23/src'
make[1]: *** [bootstrap-temacs] Error 2
make[1]: Leaving directory `/c/Users/yu-ji/home/src/wc/emacs/emacs-23/src'
make: *** [bootstrap-gmake] Error 2

(並列に走ってる部分なので余計なメッセージも混ざってますが…)

使ったのは binutils-2.20.51-1-mingw32-bin.tar.lzma で、以前の環境で正常だったはずの binutils-2.20-1-mingw32-bin.tar.gz の windres に戻しても同様にコケる。

=== modified file 'nt/emacs.rc'
--- nt/emacs.rc 2010-05-08 04:46:44 +0000
+++ nt/emacs.rc 2010-07-17 07:33:02 +0000
@@ -1,5 +1,5 @@
-Emacs ICON   icons\emacs.ico
-32649 CURSOR icons\hand.cur
+Emacs ICON   icons/emacs.ico
+32649 CURSOR icons/hand.cur
 1 24 "emacs.manifest"

 #ifndef VS_VERSION_INFO

emacsclient.rc のほうは直さなくてもいいみたい。なんでしょうね…。MinGW / MSYS の環境作りでなにか忘れてるのかなぁ。