2018年12月25日火曜日

athrill を MSYS2 環境でビルドする

次の現場で tmori/athrill を使いそうなのでとりあえず環境構築までやってみる。

しかし、 athrill リポジトリに格納されているバイナリが、MinGW 用と Linux 用の 2 種類のようで、 そのまま MSYS2 環境で使えない。(何かの共有ライブラリを入れれば動くかもしれないが...)

なので、MSYS2 の gcc を使ってビルドしなおす。

ちなみに、 WSL か docker コンテナを使うのが推奨されているっぽいです。

環境

MSYS2 のベース環境アップグレード

pacman -Syu

MSYS2 MinGW 64bit を再起動してもう一度 pacman -Syu

pacman -Syu

必要パッケージのインストール

pacman -S make mingw-w64-x86_64-gcc git

athrill の取得とビルド

取得

git clone https://github.com/tmori/athrill.git

ビルド

athrill, athrill2, athrill_remote をビルドする。

cd athrill

# athrill のビルド
cd trunk/src/build/target/v850esfk3
make

# athrill2 のビルド
cd ../v850e2m
make

# athrill_remote のビルド
cd ../../../remote/remote_cui_client/
make

動作確認

athrill/bin/windows 内の athrill, athrill2, athrill_remote を叩いてみる。

$ cd PATH/TO/athrill/bin/windows

$ ./athrill
Usage:athrill -m <memory config file> [OPTION]... <load_file>
 -i                             : execute on the interaction mode. if -i is not set, execute on the background mode.
 -r                             : execute on the remote mode. this option is valid on the interaction mode.
 -t<timeout>                    : set program end time using <timeout> clocks. this option is valid on the background mode.
 -m<memory config file>         : set athrill memory configuration. rom, ram region is configured on your system.
 -d<device config file>         : set device parameter.

$ ./athrill2
Usage:athrill -m <memory config file> [OPTION]... <load_file>
 -i                             : execute on the interaction mode. if -i is not set, execute on the background mode.
 -r                             : execute on the remote mode. this option is valid on the interaction mode.
 -t<timeout>                    : set program end time using <timeout> clocks. this option is valid on the background mode.
 -m<memory config file>         : set athrill memory configuration. rom, ram region is configured on your system.
 -d<device config file>         : set device parameter.

$ ./athrill_remote
Usage: athrill_remote <athrill debug command>

ヘルプメッセージが表示されれば OK.

...athrill2 もヘルプの表記は athrill なんですね。

以上。 とりあえず実行可能な状態にはなったのでこれまで。