Mac OS XやUbuntuでSuperH開発環境(binutils, gcc)を構築する.

題名通りです./usr/sh-hitachi-elf ディレクトリ下にSuperH(SH)用の環境をインストールします.
GCCBinutilsのコンパイルの際に,ビルド用のディレクトリをわざわざ作っていますが,これは必須です.やらないとコンパイルできません.
GMP,MPFR,MPCは多倍長浮動小数点用のライブラリです.今回gcc 4.7を使ったので最新版をインストールしておきます.
configureの際に--target=sh-hitachi-elfを--target=h8300-hms-elfすればH8用にもできます(そのときは/usr/h8300-hms-elfをインストール先にするとよい).

こちらのサイトを参考にさせて頂きました.というかほとんど変わらないです.

ディレクトリ構成

usr
|---sh-hitachi-elf
|   |----bin       <-ここにsh-hitachi-elf-gccとか
|   |----include   <-ここに*.hとか
|   |----lib
|   |----libexec
|   |----sh-hitachi-elf
|   |----share
|---src
|   |----binutils-2.22.tar.gz
|   |----newlib-1.20.0.tar.gz
|   |----gmp-5.0.5.tar.bz2
|   |----mpfr-3.1.0.tar.gz
|   |----mpc-0.9.tar.gz
|   |----gcc-4.7.0.tar.gz
|   |
|   |----binutils-2.22
|   |----newlib-1.20.0
|   |----gmp-5.0.5
|   |----mpfr-3.1.0
|   |----mpc-0.9
|   |----gcc-4.7.0
|   |
|   |----gcc       <-ビルド用ディレクトリ
|   |----binutils  <-ビルド用ディレクトリ

ディレクトリの作成,ソースディレクトリへの移動

$ sudo mkdir /usr/sh-hitachi-elf
$ cd /usr/src/

Binutilsのインストール

$ sudo wget http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.gz
$ sudo tar zxvf binutils-2.22.tar.gz
$ sudo mkdir binutils
$ cd binutils
$ sudo ../binutils-2.22/configure --prefix=/usr/sh-hitachi-elf/ --target=sh-hitachi-elf
$ sudo make
$ sudo make install
$ cd ..

GMPのインストール

$ sudo wget ftp://ftp.gmplib.org/pub/gmp-5.0.5/gmp-5.0.5.tar.bz2
$ sudo tar zxvf gmp-5.0.5.tar.bz2
$ cd gmp-5.0.5
$ sudo ./configure --prefix=/usr/sh-hitachi-elf/
$ sudo make
$ sudo make install
$ cd ..

MPFRのインストール

$ sudo wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.gz
$ sudo tar zxvf mpfr-3.1.0.tar.gz
$ cd mpfr-3.1.0/
$ sudo ./configure --prefix=/usr/sh-hitachi-elf/ --with-gmp-lib=/usr/sh-hitachi-elf/lib/ --with-gmp-include=/usr/sh-hitachi-elf/include/
$ sudo make
$ sudo make install
$ cd ..

MPCのインストール

$ sudo wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
$ sudo tar zxvf mpc-0.9.tar.gz
$ cd mpc-0.9/
$ sudo ./configure --prefix=/usr/sh-hitachi-elf/ --with-mpfr-lib=/usr/sh-hitachi-elf/lib/ --with-mpfr-include=/usr/sh-hitachi-elf/include/
$ sudo make
$ sudo make install
$ cd ..

GCCのインストール

$ sudo wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.7.0/gcc-4.7.0.tar.gz
$ sudo tar zxvf gcc-4.7.0.tar.gz
$ sudo wget ftp://sources.redhat.com/pub/newlib/newlib-1.20.0.tar.gz
$ sudo tar zxvf newlib-1.20.0.tar.gz
$ sudo cp -r newlib-1.20.0/newlib/ gcc-4.7.0/
$ sudo cp -r newlib-1.20.0/libgloss/ gcc-4.7.0
$ sudo mkdir gcc
$ cd gcc
$ sudo ../gcc-4.7.0/configure --prefix=/usr/sh-hitachi-elf/ --target=sh-hitachi-elf --with-gmp-lib=/usr/sh-hitachi-elf/lib/ --with-gmp-include=/usr/sh-hitachi-elf/include/ --with-mpfr-lib=/usr/sh-hitachi-elf/lib/ --with-mpfr-include=/usr/sh-hitachi-elf/include/ --with-mpc-lib=/usr/sh-hitachi-elf/lib/ --with-mpc-include=/usr/sh-hitachi-elf/include/ --enable-languages=c,c++ --with-newlib --with-headers=newlib/libc/include/
$ sudo make
$ sudo make install