DreamShell toolchain コンパイル

gcc4.9になったら以前書いた手順でコンパイルできなくなっていた。

対処は、これを参考に該当部分の先頭に(void)を入れればいいのだが、めんどくさい。
(もしかしたら、texinfoのパッケージもインストールする必要があるかもしれない)

Dreamshellのgitを眺めてみたらtoolchainがあり、しかもgcc5.1.0が使えるのでコンパイルしたメモを残す。


cygwinに必要なパッケージ

 make
 gcc-core
 gcc-g++
 wget
 git
 patch
 libjpeg-devel
 libpng-devel
 libiconv
 mkisofs
 
## 以前の手順に含まれていないもの
 texinfo
 bison
 flex

コマンド(Cygwinインストール直後を前提)

#### 指定のディレクトリにダウンロードする。
## ディレクトリ作成
mkdir -p /opt/toolchains

## ディレクトリ移動
cd /opt/toolchains

## KOSをダウンロード
git clone git://cadcdev.git.sourceforge.net/gitroot/cadcdev/KallistiOS

## kos-portsをダウンロード
git clone --recursive git://cadcdev.git.sourceforge.net/gitroot/cadcdev/kos-ports

## GitからDreamShellをダウンロード
git clone https://github.com/DC-SWAT/DreamShell.git




#### Dreamshellの想定するディレクトリ構成に合わせるためリンクを張る。
## ディレクトリ作成
mkdir -p /usr/local/dc/kos

## ディレクトリ移動
cd /usr/local/dc/kos

## リンクの作成
ln -s /opt/toolchains/KallistiOS kos
ln -s /opt/toolchains/kos-ports kos-ports

## ディレクトリ移動
cd /opt/toolchains/KallistiOS

## リンクの作成
ln -s /opt/toolchains/DreamShell ds



#### 必要なソースファイルをダウンロードし、解凍後コンパイルする。
## ディレクトリ移動
cd /opt/toolchains/DreamShell/sdk/toolchain

## ソースファイルのダウンロード
./download.sh

## ソースファイルの解凍
./unpack.sh

## パッチの適用 ※1
make patch

## コンパイル
make build-sh4-binutils
make build-sh4-gcc
make build-arm

※1……makeコマンドでパッチからビルドまでできるのだが、メモリ使用量が半端ないので個別にビルド


あとは、Dreamcast開発環境構築【2】を参考にenviron.shを作成後設定すれば一応扱えるようになる。


コンパイル時間参考
コマンド(実行時間 ※2)
make patch(0m1.335s)
make build-sh4-binutils(41m25.780s)
make build-sh4-gcc(421m31.803s)
make build-arm(251m42.467s)
※2……timeコマンドで計測(real)


コンパイル後に/opt/toolchains以下を圧縮したもの
compiled_Dreamshell.20150711.tar.gz 約1.0GByte
(.gzで終わるファイルをダウンロードする場合、負荷がかかってアクセスできなくなってしまうようなのでファイル名を変更しています。)
lnコマンドでリンクを貼って、environ.shを読み込めば使えるはず。
32bit用にコンパイルされています。64bitのCygwinでは使えません。


参考:
Let’s build a Sega Dreamcast game from scratch – Breakout
Dreamcast開発環境構築【1】
Dreamcast開発環境構築【2】

One thought on “DreamShell toolchain コンパイル

  1. Pingback: Dreamcast開発環境構築【2】 | 備忘録

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*