GBA development tools on Mac OS X


世の中には Mac OS X 上での GBA ソフト開発用に GCC や Binutils やライブラリをまとめて提供しているパッケージファイルもある(過去に書いたページ参照)が, 勉強がてら,UNIX USER 2003/6〜9に掲載された西田さんの記事「Linuxから目覚めるぼくらのゲームボーイ!」にならい,自前で Mac OS X に Binutils と GCC をインストールしてみた。

私が試した組み合わせは以下の通りだ。

ビルド環境
ビルド対象
Mac OS X 上での GBA ソフト開発に興味を抱いている方の参考になれば幸いだ。
ちなみに「Linuxから目覚めるぼくらのゲームボーイ!」の著者である西田さんは,普段 Mac OS X どっぷりの生活をされているとのことなので,開発環境の準備については,そのうちご本人から解説があるかもしれない。

1. 準備

まず, Mac OS X 10.3 のパッケージに含まれる開発環境である Xcode をインストールしておくこと。
その後「ソフトウェア・アップデート」でパッチを適用し,1.0.1 以上にバージョンアップしておこう。

あとは「アプリケーション」フォルダ直下の「ユーティリティ」フォルダにある「ターミナル」で作業を行う。
「ターミナル」は開発作業で多用することになるので自分好みにカスタマイズしておくとよいだろう。

開発用エディタとして,vi (というか vim) を使う人は,日本語版 vim を作成し,インストールするのもよいだろう。
参考:http://member.nifty.ne.jp/poseidon/osx2t.html

2. Binutils のインストール

(1) ソースの準備

http://www.gnu.org/directory/binutils.html
から Stable リリースのソースを入手する。
(2003/11/23 時点では,Version 2.14。http://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz )

Safari でダウンロードしてもよいが,ここは連載記事にあるように,コマンドラインで get してみよう。
昔の Mac OS X には wget が入っていたが,最近は代わりに curl が入っているので活用するとよいだろう。
また,ついでに,各種ソースを展開するためのフォルダ $(HOME)/src も作っておこう。
$ cd
$ mkdir src
$ cd src
$ curl -O http://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz

tar でアーカイブを展開する。
$ tar zxvf binutils-2.14.tar.gz

これで,カレントディレクトリに binutils-2.14 というフォルダが作成され,その中にすべてのファイルが展開される。

(3) ARM 用 Binutils のビルド/インストール

binutils-2.14 フォルダに ARM 用の作業フォルダを作成し,カレントディレクトリを移動する。
$ cd binutils-2.14
$ mkdir build_arm
$ cd build_arm

ARM ビルド用のコンフィグレーションを行う。一字一句間違わないように指定しよう。
$ ../configure --prefix=/usr/local/gnu --program-suffix=-arm --target=arm-gba-elf

ビルドは make 一発だ。
$ make

sudo を使って,インストールする。
$ sudo make install

この後 gcc をビルドする前に,作業中のターミナル画面(正確にはシェル)でパスの設定を行っておく事。
必要に応じて,$(HOME)/.profile の PATH 設定を書き直しておこう。
$ export PATH=/usr/local/gnu/bin:$PATH

(4) PowerPC 用 Binutils のビルド/インストール

ここで,UNIX USER 2003/7 P.88 の実行例2 にあるとおり,ネイティブ環境用に Binutils を作ろうとした。
作業用フォルダを作成して,configure してみたが,powerpc-apple-darwin7.0.0 は(まだ???)サポートされておらず,ビルドできなかった。
$ ../configure --prefix=/usr/local/gnu
creating cache ./config.cache
checking host system type... powerpc-apple-darwin7.0.0
checking target system type... powerpc-apple-darwin7.0.0
checking build system type... powerpc-apple-darwin7.0.0
*** This configuration is not supported in the following subdirectories:
     bfd binutils ld gas opcodes gprof
    (Any other directories should still work fine.)
checking for powerpc-apple-darwin7.0.0-ar... no
checking for ar... ar
checking for powerpc-apple-darwin7.0.0-as... no
checking for as... as
checking for powerpc-apple-darwin7.0.0-dlltool... no
checking for dlltool... dlltool
checking for powerpc-apple-darwin7.0.0-ld... no
checking for ld... ld
checking for powerpc-apple-darwin7.0.0-nm... no
checking for nm... nm
checking for powerpc-apple-darwin7.0.0-ranlib... no
checking for ranlib... ranlib
checking for powerpc-apple-darwin7.0.0-windres... no
checking for windres... windres
checking for powerpc-apple-darwin7.0.0-objcopy... no
checking for objcopy... objcopy
checking for powerpc-apple-darwin7.0.0-objdump... no
checking for objdump... objdump
checking for powerpc-apple-darwin7.0.0-ar... no
checking for ar... ar
checking for powerpc-apple-darwin7.0.0-as... no
checking for as... as
checking for powerpc-apple-darwin7.0.0-dlltool... no
checking for dlltool... dlltool
checking for powerpc-apple-darwin7.0.0-ld... no
checking for ld... ld
checking for powerpc-apple-darwin7.0.0-nm... no
checking for nm... nm
checking for powerpc-apple-darwin7.0.0-ranlib... no
checking for ranlib... ranlib
checking for powerpc-apple-darwin7.0.0-windres... no
checking for windres... windres
checking whether to enable maintainer-specific portions of Makefiles... no
updating cache ./config.cache
creating ./config.status
creating Makefile

しかしながら,OS 標準 の as や ld 等が使えるので,PowerPC 版の Binutils は作成せず,このまま GCC のビルドを行う事にした。

2. GCC のビルド/インストール

(1) ソースの入手

http://www.gnu.org/software/gcc/gcc.html
から入手する。
2003/11/23 現在の安定バージョンは,Version 3.3.2 であった。
ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-3.3.2/gcc-core-3.3.2.tar.bz2


Binutils と同じ要領でダウンロードする。
$ cd ..
$ cd ..
$ curl -O ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-3.3.2/gcc-core-3.3.2.tar.bz2


ソースファイルを展開する。ここも Binutils と同じだが,圧縮方式が違うので tar のオプションに注意。
$ tar jxvf gcc-core-3.3.2.tar.bz2

ARM ビルド用フォルダの作成。
$ cd gcc-3.3.2
$ mkdir build_arm
$ cd build_arm

ARM ビルド用のコンフィグレーションを行う。
ターゲットシステムを指定するだけでなく,インストール場所,コマンド名の後ろにつける文字列,共用ライブラリを作成しない,スレッド,NLSをサポート しない,という指定もしている。
また,configure を実行する前に,環境変数 PATH の先頭に /usr/local/gnu/bin があること,を確認しておくとよいだろう。
$ echo $PATH
$ ../configure --target=arm-gba-elf \
--prefix=/usr/local/gnu \
--program-suffix=-arm \
--disable-shared \
--disable-threads \
--disable-nls


ARM 用 GCC のビルド
$ make

インストール
$ sudo make install

シンボリックリンクの作成(Binutils のコマンド群と似た,短い名前でコマンド起動できるようにする)
$ cd /usr/local/gnu/bin
$ sudo ln -s arm-gba-elf-gcc gcc-arm

PowerPC ビルド用フォルダの作成
$ cd
$ cd src
$ cd gcc-3.3.2
$ mkdir build_powerpc
$ cd build_powerpc

PowerPC ビルド用のコンフィグレーション
$ ../configure --prefix=/usr/local/gnu

PowerPC 用 GCC のビルド
$ make

インストール
$ sudo make install

バージョンを確認しておく。
$ gcc -v
$ gcc -b arm-gba-elf -v
$ gcc-arm -v

これで,めでたく UNIX USER の記事を追試できるようになった(ハズ)。

(執筆中)



Back to Home

Copyright (C) 2003 by gbcube