面倒くさいですな。
makeに-kオプションを付けて、ログを眺めることに。
$ make -k World CROSSCOMPILEDIR=/usr/i586-mingw32msvc/bin >build.log 2>&1
build.log
../../../../config/makedepend/makedepend: warning: InitInput.c (reading /usr/i586-mingw32msvc/include/pthread.h), line 559: # error Please upgrade your GNU compiler to one that supports __declspec.
・・・
fsconvert.c: In function ‘_fs_convert_props’:
fsconvert.c:110: error: ‘SIZE_MAX’ undeclared (first use in this function)
fsconvert.c:110: error: (Each undeclared identifier is reported only once
fsconvert.c:110: error: for each function it appears in.)
make[5]: *** [fsconvert.o] エラー 1
・・・
fbcompose.c:2804: error: expected specifier-qualifier-list before ‘int32_t’
fbcompose.c: In function ‘_gradient_walker_init’:
fbcompose.c:2820: error: ‘GradientWalker’ has no member named ‘num_stops’
fbcompose.c:2821: error: ‘GradientWalker’ has no member named ‘stops’
fbcompose.c:2822: error: ‘GradientWalker’ has no member named ‘left_x’
fbcompose.c:2823: error: ‘GradientWalker’ has no member named ‘right_x’
fbcompose.c:2824: error: ‘GradientWalker’ has no member named ‘stepper’
fbcompose.c:2829: error: ‘GradientWalker’ has no member named ‘spread’
fbcompose.c:2831: error: ‘GradientWalker’ has no member named ‘need_reset’
fbcompose.c: In function ‘_gradient_walker_reset’:
fbcompose.c:2838: error: ‘int32_t’ undeclared (first use in this function)
fbcompose.c:2838: error: (Each undeclared identifier is reported only once
fbcompose.c:2838: error: for each function it appears in.)
fbcompose.c:2838: error: expected ‘;’ before ‘x’
fbcompose.c:2840: error: ‘GradientWalker’ has no member named ‘num_stops’
fbcompose.c:2841: error: ‘GradientWalker’ has no member named ‘stops’
fbcompose.c:2845: error: ‘GradientWalker’ has no member named ‘spread’
fbcompose.c:2848: error: ‘x’ undeclared (first use in this function)
fbcompose.c:2848: error: expected ‘;’ before ‘pos’
fbcompose.c:2853: error: ‘left_x’ undeclared (first use in this function)
fbcompose.c:2861: error: ‘right_x’ undeclared (first use in this function)
fbcompose.c:2894: error: expected ‘;’ before ‘pos’
fbcompose.c:2895: error: expected ‘)’ before ‘pos’
fbcompose.c:2917: error: expected ‘)’ before ‘pos’
fbcompose.c:2919: error: expected ‘;’ before ‘tmp_x’
fbcompose.c:2921: error: ‘tmp_x’ undeclared (first use in this function)
fbcompose.c:2961: error: ‘GradientWalker’ has no member named ‘left_x’
fbcompose.c:2962: error: ‘GradientWalker’ has no member named ‘right_x’
fbcompose.c:2968: error: ‘GradientWalker’ has no member named ‘left_x’
fbcompose.c:2968: error: ‘GradientWalker’ has no member named ‘right_x’
fbcompose.c:2972: error: ‘GradientWalker’ has no member named ‘stepper’
fbcompose.c:2976: error: expected ‘;’ before ‘width’
fbcompose.c:2977: error: ‘GradientWalker’ has no member named ‘stepper’
fbcompose.c:2977: error: ‘width’ undeclared (first use in this function)
fbcompose.c:2980: error: ‘GradientWalker’ has no member named ‘need_reset’
fbcompose.c: In function ‘_gradient_walker_pixel’:
fbcompose.c:2995: error: ‘GradientWalker’ has no member named ‘need_reset’
fbcompose.c:2995: error: ‘GradientWalker’ has no member named ‘left_x’
fbcompose.c:2995: error: ‘GradientWalker’ has no member named ‘right_x’
fbcompose.c:2998: error: ‘GradientWalker’ has no member named ‘left_x’
fbcompose.c:2998: error: ‘GradientWalker’ has no member named ‘stepper’
make[5]: *** [fbcompose.o] エラー 1
→int32_t辺りの未定義が原因。ヘッダの不整合か。
・・・
/usr/i586-mingw32msvc/bin/windres XWin.rc -DPROJECT_NAME="\\\"Xming\\\"" -O coff -o XWin.res
XWin.rc:41:38: error: ../../../../../version.def: No such file or directory
/usr/i586-mingw32msvc/bin/windres: XWin.rc:46: syntax error
/usr/i586-mingw32msvc/bin/windres: preprocessing failed.
make[5]: *** [XWin.res] エラー 1
→xcのさらに上のディレクトリ(笑)にversion.defというカラのファイルを置けばよい
・・・
winmultiwindowicons.c: In function ‘winScaleXBitmapToWindows’:
winmultiwindowicons.c:112: 警告: pointer targets in passing argument 8 of ‘miGetImage’ differ in signedness
winmultiwindowicons.c: トップレベル:
winmultiwindowicons.c:267: error: expected ‘)’ before ‘*’ token
winmultiwindowicons.c: In function ‘winXIconToHICON’:
winmultiwindowicons.c:354: error: ‘uint32_t’ undeclared (first use in this function)
winmultiwindowicons.c:354: error: (Each undeclared identifier is reported only once
winmultiwindowicons.c:354: error: for each function it appears in.)
winmultiwindowicons.c:354: error: ‘icon’ undeclared (first use in this function)
winmultiwindowicons.c:354: error: ‘icon_data’ undeclared (first use in this function)
winmultiwindowicons.c:354: 警告: カンマ演算子の左側の式に効力がありません
winmultiwindowicons.c:367: 警告: implicit declaration of function ‘NetWMToWinIcon’
winmultiwindowicons.c:367: 警告: return makes pointer from integer without a cast
make[5]: *** [winmultiwindowicons.o] エラー 1
→uint32_t辺りの未定義が原因。ヘッダの不整合か。
・・・
rootlessScreen.c: In function ‘RootlessAllocatePrivates’:
rootlessScreen.c:571: error: lvalue required as left operand of assignment
make[5]: *** [rootlessScreen.o] エラー 1
→SCREENRECを左辺値で使ってる箇所を修正でOK
・・・
rootlessWindow.c: In function ‘RootlessCreateWindow’:
rootlessWindow.c:69: error: lvalue required as left operand of assignment
rootlessWindow.c: In function ‘RootlessDestroyFrame’:
rootlessWindow.c:110: error: lvalue required as left operand of assignment
rootlessWindow.c: In function ‘RootlessGetShape’:
rootlessWindow.c:141: 警告: unused variable ‘pScreen’
rootlessWindow.c: In function ‘RootlessEnsureFrame’:
rootlessWindow.c:356: error: lvalue required as left operand of assignment
rootlessWindow.c:373: error: lvalue required as left operand of assignment
rootlessWindow.c: In function ‘RootlessResizeCopyWindow’:
rootlessWindow.c:648: 警告: the address of ‘gResizeDeathBounds’ will always evaluate as ‘true’
rootlessWindow.c: In function ‘RootlessReparentWindow’:
rootlessWindow.c:1301: error: lvalue required as left operand of assignment
rootlessWindow.c:1302: error: lvalue required as left operand of assignment
make[5]: *** [rootlessWindow.o] エラー 1
→WINRECを左辺値で使ってる箇所を修正でOK
・・・
rlAccel.c: In function ‘RootlessAccelInit’:
rlAccel.c:142: error: lvalue required as left operand of assignment
make[6]: *** [rlAccel.o] エラー 1
・・・
左辺値がどうのというのはgcc4系だから出るパターンかな。
$ /usr/i586-mingw32msvc/bin/gcc --version
gcc (GCC) 4.2.1-sjlj (mingw32-2)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
左辺値でキャストを使ってるパターン。
あとはXWin.rcのコンパイルでSyntax Errorになりますな。文字列の結合がエラーになるようで。リソースコンパイラの仕様が変わったのかしらん。X.bmpも入ってなくてエラーになるし。困ったもんですなぁ。xkbcompの下のX.icoもないし。開発者の手元にはシンボリックリンクでも張ってあるのかしらん。
というわけで、動くかどうか分からないXming.exeはできました。
syasuda@syasuda-ubuntu:~/src/Xming_69031/xc$ ls -al programs/Xserver/Xming.exe
-rwxr-xr-x 1 syasuda syasuda 2664004 2010-04-08 18:40 programs/Xserver/Xming.exe
おっとまだタイトルバーの文字化け対策してませんでしたね。明日やってみることにしましょう。
今日のwine上のsakura.exeは不安定極まりない。タブを叩いたり、×ボタンで終了するとウィンドウがどこかへ。プロセスは生きているので・・・なんか変なことしたかなぁ。タグジャンプもきかないときがあるし。
(追記)

実例で学ぶGCCの本格的活用法―高機能コンパイラのオプション・コマンドを一つ一つていねいに解説 (TECHI―Embedded Software)
- 作者: 岸哲夫
- 出版社/メーカー: CQ出版
- 発売日: 2006/07
- メディア: 単行本
- 購入: 3人 クリック: 27回
- この商品を含むブログ (6件) を見る
コメント