= AVR用GCCを自分でビルドしてみる = == 概要 == 目新しいことはありません。 [http://www.nongnu.org/avr-libc/ AVR Libcのサイト]にある、[http://www.nongnu.org/avr-libc/user-manual/install_tools.html GCC等のビルド方法の解説ページ]に従ってビルドします。 最終的に、`/usr/local/avr`以下にすべてのファイルをインストールすることにします。 == 準備 == ディレクトリを作成します。 スーパーユーザでmake installを行うと悲しいことが起きる可能性があるので、スーパーユーザで作業しなくて済むように、あらかじめchownで自分の物にしておきます。 {{{ % sudo mkdir /usr/local/avr % sudo chown 自分 /usr/local/avr % cd /usr/local/avr }}} == binutils == * [http://sources.redhat.com/binutils/ このあたりからbinutils-2.20.1aをもらってきます。] * [http://distribute.atmel.no/tools/opensource/avr-gcc/binutils-2.20.1/ ここからパッチファイルをもらってきます。] パッチを当てないと、アセンブラが最近のチップで導入された命令を知らないため、GCCのビルドでエラーになります。 {{{ % tar xvzf binutils-2.20.1a.tar.bz2 % cd binutils-2.20.1 % patch -p0 < パッチファイル % mkdir build % cd build % ../configure --prefix=/usr/local/avr --target=avr --disable-nls --disable-werror % make % make install }}} パスを通しておきましょう。 {{{ % export PATH=/usr/local/avr/bin:$PATH }}} == GCC == * [http://gcc.gnu.org/ このあたりからGCC 4.5.1をもらってきます。] GCCそのものの実装のために、GMP、MPFR、MPCというライブラリが必要です。 OSに付属のパッケージがあれば、開発用のパッケージを選んでインストールしておきます。 {{{ % tar xvjf gcc-4.5.1.tar.bz2 % cd gcc-4.5.1 % mkdir build % cd build % ../configure --prefix=/usr/local/avr --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2 % make % make install }}} == AVR Libc == * [http://download.savannah.gnu.org/releases/avr-libc/ このあたりからAVR Libcをもらってきます。] {{{ % tar xvjf avr-libc-1.8.0.tar.bz2 % cd avr-libc-1.8.0 % mkdir build % cd build % ../configure --prefix=/usr/local/avr --build=`../config.guess` --host=avr % make % make install }}} == 後片付け == 必要に応じて、もらってきたアーカイブファイル、展開したソースなどを削除します。 最後に、必要に応じて、`/usr/local/avr`ディレクトリ以下をrootの持ち物に変更します。 {{{ % sudo chown -R root.root /usr/local/avr }}} ''(2012/9/21 - sgk)''