しゅうのマイクロマウス研修キット製作研修

番外編 Part2 レッツ、ビルド! – しゅうのマイクロマウス研修

番外編 Part2 レッツ、ビルド! - しゅうのマイクロマウス研修 しゅうのマイクロマウス研修

こんにちは、しゅうです。

前回はソースやパッケージなどの準備をしていきました。今回は、それらをビルドしていきます。

復習

前回作成したディレクトリの確認をします。以下のようにダウンロードしたものを展開してsourceフォルダに入れておいて、prefixとbuildのフォルダがあれば問題ないです。

RX-ToolChain (この名前と場所は任意で問題ありません)
+source
|  +gcc (ダウンロードしたもの)
|  +newlib (ダウンロードしたもの)
|  +binutils (ダウンロードしたもの)
+prefix
+build

また、今回の記事内の各コマンドで[Path_To_RX]とかかれているところは、上記のsourceなどが入っているディレクトリまでのパスに置き換えましょう。

ビルド!

binutils

初めにbinutilsのビルドをします。buildディレクトリに移動してbinutilsフォルダを作りましょう。

$ cd /[Path_To_RX]/RX-ToolChain/build
$ mkdir binutils

makeなどを実行する前に、各種ファイルに権限を付与していきます。

$ sudo chmod +x /[Path_To_RX]/RX-ToolChain/source/binutils/configure
$ sudo chmod 777 /[Path_To_RX]/RX-ToolChain/source/binutils/missing
$ sudo chmod 777 /[Path_To_RX]/RX-ToolChain/source/binutils/bfd
$ sudo chmod 777 /[Path_To_RX]/RX-ToolChain/source/binutils/bfd/po
$ sudo chmod 777 binutils

この他にも、Permission deniedなどのエラーが出るかもしれないので、その時は同じように権限を付与して再度実行してください。次にbuild/binutilsに移動してmakeのconfigをします。

$ cd binutils
$ /[Path_To_RX]/RX-ToolChain/source/binutils/configure --target=rx-elf --prefix=/[Path_To_RX]/RX-ToolChain/prefix --enable-maintainer-mode --disable-werror
$ sudo chmod 777 /[Path_To_RX]/RX-ToolChain/source/binutils/install-sh
$ sudo chmod 777 /[Path_To_RX]/RX-ToolChain/source/binutils/mkinstalldirs

そのままmakeをしましょう。

$ make
$ make install

完了したら、.bashrcや.zshrcなどに、今作ったbinへのPathを通しましょう。

$ vim ~/.zshrc

export PATH="$PATH:/[Path_To_RX]/RX-ToolChain/prefix/bin"

gcc

binutilsが無事インストールできたら、次はgccのビルドに進みます。先ほど書き加えた$PATHがちゃんと出ることを確認したらbuildディレクトリに移動しましょう。

$ cd /[Path_To_RX]/RX-ToolChain/build
$ mkdir gcc
$ cd gcc
$ sudo chmod +x /[Path_To_RX]/RX-ToolChain/source/gcc/configure

そして次のコマンドでconfigしましょう。たくさんオプションつけまくっています!–with-gmp=/usr/localとしているところ、includeディレクトリなどのヘッダーファイルが直接入っているところを指定しなくても大丈夫らしいです。僕は最初gmp.hがあるところを指定していたのにconfig側から「ないよ!」って言われて三日三晩悩んでいました・・・mpfrとmpcも同様につけておきましょう。

$ /[Path_To_RX]/RX-ToolChain/source/gcc/configure --target=rx-elf --prefix=/[Path_To_RX]/RX-ToolChain/prefix --enable-languages=c,c++ --disable-shared --with-newlib --enable-lto --disable-libstdcxx-pch CC=gcc --disable-multilib --disable-nls --disable-libmudflap --with-system-zlib --disable-libssp --disable-libgomp --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local

無事終えたら

$ sudo chmod +x /[Path_To_RX]/RX-ToolChain/source/gcc/libiconv/build-aux/install-sh
$ sudo chmod +x /[Path_To_RX]/RX-ToolChain/source/gcc/move-if-change
$ sudo chmod +x /[Path_To_RX]/RX-ToolChain/source/gcc/install-sh
$ make all-gcc
$ make install-gcc

newlib

gccが無事インストールされたらnewlibのビルドを行います。ディレクトリと権限を付与して行って

$ cd /[Path_To_RX]/RX-ToolChain/build
$ mkdir newlib
$ cd newlib
$ sudo chmod +x /[Path_To_RX]/RX-ToolChain/source/newlib/configure

configureとmakeをしていきます。

$ /[Path_To_RX]/RX-ToolChain/source/newlib/configure --target=rx-elf --prefix=/[Path_To_RX]/RX-ToolChain/prefix CC=gcc
$ sudo chmod +x /[Path_To_RX]/RX-ToolChain/source/install-sh
$ make
$ sudo make install

gcc全体

最後に、gccを全てmakeしていきましょう

$ cd /[Path_To_RX]/RX-ToolChain/build/gcc
$ chmod +x /[Path_To_RX]/RX-ToolChain/source/gcc/libgcc/mkheader.sh
$ make
$ sudo make install

まとめ

今回はダウンロードしたもののビルドを行いました。これであとはPi:Coのためのソースコードなどと、書き込み時に必要なものを用意すれば無事書き込みができます!ただその前に、今回はUSB通信では書き込みは行わず、UART通信を用いるのでPi:CoをUARTに対応させないといけません。
なので、次回のブログはUARTのための半田づけやシリアル通信モジュールの準備を行っていきます。

タイトルとURLをコピーしました