2018年5月9日水曜日

PC-98 エミュレータにもなる Dosbox-X 0.82.7 WIP (2018-05-06版) が OS X (Mountain Lion) でビルドできた話

前回 0.82.6 が出てビルドした のにすぐ3日後に最新版 v0.82.7 がリリースされたのでそのビルドもやってみたらできました。ここで言う v0.82.7 とは DOSBox-X menu rewrite WIP BETA 2018-05-06 17:54 のことです。

(※追記) 0.82.7 は最新版ではなく、最新版は依然として 0.82.6 のままだった。0.82.7 は次のマイナーバージョンアップの前のベータ版(?)ということだろう、WIPというのはそういうことだな。変更の内容から見て最新版が0.82.6なのはわかるんだけれども、いずれにせよ Mac 用に 0.82.7 をビルドする意味はほぼ(全く)ない。

前々回のパッチには間違いがあった のでなおした。__APPLE__ または __MACH__ のどちらかなのではなくて、どちらも定義されてないとだめ、というのを他人の作品を見て理解した。
--- src/dos/drive_local.cpp.orig 2018-05-03 23:47:07.000000000 +0900
+++ src/dos/drive_local.cpp 2018-05-09 01:18:51.000000000 +0900
@@ -31,6 +31,9 @@
 #include "inout.h"
 #ifndef WIN32
 #include <utime.h>
+# if defined(__APPLE__) && defined(__MACH__)
+# include <sys/syslimits.h>
+# endif
 #else
 #include <sys/utime.h>
 #include <sys/locking.h>
上記のパッチをさしあたりここでは drive_local-OSXMountainLion.patch となづけた。パッチの適用はいまいちやりかたがわかってないのであまり書きたくないのだけど、文脈上避けられない。

あとは前回とほぼ同じだが、/foo/local の下で make をやるとかってに /foo を見にいくのかもしれんという気づきを得たので /usr/include をインクルードするのをやめた。結果はおなじである。たぶんCPPFLAGSのX11のインクルードも不要だろう。解凍したソースコードのルートディレクトリで以下のように入力した:
$ ./autogen.sh
$ patch -b -p5 < drive_local-OSXMountainLion.patch
$ ./build-debug      # 内部SDLのビルドだけ成功,本体のmakeは失敗
$ CC=gcc-mp-5 CXX=g++-mp-5 \
CPPFLAGS='-I/opt/local/include -I/opt/X11/include' \
./configure --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib \
--with-sdl-prefix=/usr/local/src/dosbox-x-dosbox-x-wip-20180506-1805/\
vs2015/sdl/linux-host/lib \
--prefix=$HOME
$ make -j5
$ make install
もちろんこれは私の環境のための備忘録なので、たとえば XQuartz や MacPorts が入ってない環境の人はこれとだいぶ違う ./configure になるでしょう。


0 件のコメント:

コメントを投稿