はちゅにっき

こっちのブログはまったり更新

gcc をソースからインストールする

RedHat Linux 4 を使っているんだけど、個人で gcc 4.6 をインストールしたい場合、どうすればいいの?*1
とかいう意味不明なことを聞かれたので、ためしに手元の環境 (Debian/wheezy) の $HOME 以下に gcc をインストールしてみることに。インストールといっても、結構カンタンで依存モジュールを入れつついつものようにコンパイルしていくだけでした。
需要はまったくなさそうだけど、メモとして。
上述のとおり、実際にインストールするのは RedHat だけれど、手元の環境は Debian なので、これを真似てもインストールできないかもしれません。

パッケージのダウンロード

gcc 本体と gccコンパイルするのに必要なパッケージをダウンロードし、解凍します。

$ wget http://ftp.gnu.org/gnu/m4/m4-latest.tar.bz2
$ wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2
$ wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.bz2
$ wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.6.2/gcc-4.6.2.tar.bz2
$ tar jxvf m4-latest.tar.bz2
$ tar jxvf gmp-5.0.2.tar.bz2
$ tar jxvf mpfr-3.1.0.tar.bz2
$ tar zxvf mpc-0.9.tar.gz
$ tar jxvf gcc-4.6.2.tar.bz2

M4 のインストール

ひたすら $HOME/local/gcc 以下にインストールしていくだけ。
むしろインストールする必要もないんじゃないかと思ってみたり。

$ ./configure --prefix=$HOME/local/gcc
$ make && make install

GMP のインストール

M4 に依存しているため、その依存関係を指定しつつインストール。

$ M4=$HOME/local/gcc/bin/m4 ./configure --prefix=$HOME/local/gcc
$ make && make check && make install

MPFR のインストール

GMP に依存するため、その依存関係を指定しつつインストール。

$ ./configure --prefix=$HOME/local/gcc --with-gmp=$HOME/local/gcc
$ make && make check && make install

MPC のインストール

GMP と MPFR に依存するため、その依存関係を指定しつつインストール。

$ ./configure --prefix=$HOME/local/gcc --with-gmp=$HOME/local/gcc --with-mpfr=$HOME/local/gcc
$ make && make check && make install

gcc のインストール

GMP / MPFR / MPC に依存するため、その依存関係を指定しつつインストール。
また、既存の gcc とぶつからないようにするために、suffix として 46 (gcc のバージョン) を指定。
これで無事にインストールできるはず!?

$ ./configure --prefix=$HOME/local/gcc --with-gmp=$HOME/local/gcc --with-mpfr=$HOME/local/gcc --with-mpc=$HOME/local/gcc --program-suffix=46
$ make && make install

*1:RedHat4 にインストールされている gcc は 3.4.6 らしい