GCC4.5以降のバージョンでは、gmp, mpfr, mpcの三つのライブラリが事前にインストールされており、ビルドするときにそれらを--with-gmp=のようにして指定する必要があるという(AVR-GCC4.5導入編)。よって、まずは、gmp, mpfr, mpcの三つをインストールすることから始める。
##########gmpのインストール(1.1.9)##########
gmp : GMP (The GNU MP Bignum Library) は多倍長計算を非常に高速に行うライブラリ(GMPの使い方より)。gccに必要のようである。
cd ~/12step/build/
tar jxvf gmp-5.0.5.tar.bz2
cd gmp-5.0.5
./configure --prefix=$HOME/12step/tools/gmp
make
make check
make install
###########mpfrのインストール(1.1.9)###################
cd ~/12step/build
tar zxvf mpfr-3.1.1.tar.gz
cd mpfr-3.1.1
./configure --prefix=$HOME/12step/tools/mpfr --with-gmp=$HOME/12step/tools/gmp
make
make check
make install
###########mpcのインストール(1.1.9)###################
cd ~/12step/build/
tar zxvf mpc-0.9.tar.gz
cd mpc-0.9
./configure --prefix=$HOME/12step/tools/mpc --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr
make
make check
make install
###########gccのインストール(1.1.9)###################
はまった。参考にさせていただいていたサイトのgccのビルドの項目のうち、./configureの--with-mpcの記述を変更したら、うまくいった。おそらく、--with-mpc=/usr/local/mpcではなくて、--with-mpc=$HOME/12step/tools/mpcであろう。
cd ~/12step/build/
tar zxvf gcc-4.7.1.tar.gz
cd gcc-4.7.1
./configure --target=h8300-elf -disable-nls --disable-threads --disable-shared --disable-werror --enable-languages=c --prefix=$HOME/12step/tools --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr --with-mpc=$HOME/12step/tools/mpc
make
ここで、またはまった。libgcc.mvars: No such file or directoryというエラーが出る。このエラーはすでにネット上で多く報告されている。gcc-4.3.x以降ではビルドの際に,ビルドディレクトリと ソースディレクトリを別にしないと「libgcc.mvarsが無い」というエラーになって しまうとのこと。ここにも。ここには、「v4.3以降は、ソースディレクトのトップ以外のディレクトリでビルドしないと以下のエラーになる仕様だそうです」とわざわざ書いてある。
そこで、GCCのディレクトリを消去して
cd ~/12step/build/
tar zxvf gcc-4.7.1.tar.gz
cd gcc-4.7.1
mkdir build
cd build
../configure --target=h8300-elf -disable-nls --disable-threads --disable-shared --disable-werror --enable-languages=c --prefix=$HOME/12step/tools --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr --with-mpc=$HOME/12step/tools/mpc
make
としてみた。すると、今度はlibssp/ssp.cに関連するエラーが出て、止まってしまった。
そこで、ググると、2010-12-26 MacでH8開発環境構築 - 12ステップ本を試すでは、
--disable-libssp
がはいっていた。そこで、
cd ~/12step/build/
tar zxvf gcc-4.7.1.tar.gz
cd gcc-4.7.1
mkdir build
cd build
../configure --target=h8300-elf -disable-nls --disable-threads --disable-shared --disable-werror --enable-languages=c --prefix=$HOME/12step/tools --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr --with-mpc=$HOME/12step/tools/mpc --disable-libssp
make
としてみた。どうやらこれでうまくいくようだ。
あとはインストール
make install
###############確認###################
tree ~/12step
##############パスを通す(注意)######################
後々判明したが、わざわざパスを通さなくてもMakefileに~/12step/tools/binに読み込むように記述を行うため、このパートはスキップすればよい。メモのために一応残しておくが。
# $HOME/12step/tools/binにはパスを通しておく。とよい。
vim ~/.bash_profile
#前
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
#後
#export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH=$HOME/12step/tools/bin:/opt/local/bin:/opt/local/sbin:$PATH設定ファイルの変更を反映させる
source ~/.bash_profile
これで、例えば、h8と打ちかけてTabキーを押すと以下のようになる。
【参考文献】
坂井 弘亮『12ステップで作る組込みOS自作入門』カットシステム 2010