debian で,gccのバージョンを切り替える

debian には gcc-4.0 や gcc-3.4 などのパッケージが用意されている.これらのパッケージは共存出来るようにちゃんんと prefix を付けた形でコンパイルされていて

$ export CC=gcc-4.0
$ export CXX=gcc-4.0

などと環境変数を設定することで,コンパイラを簡単に切り替えることもできる.また,デフォルトで利用されるgcc,つまり /usr/bin/gcc は /usr/bin/gcc-3.3 へのシンボリックリンクになっている.

しかしなぜか alternative には対応していない.もったいない.という経緯で,コンパイラへのリンクを切り替えるスクリプトを作成した.こんな感じ

#!/bin/sh

VER=$1
case "$VER" in
3.3)
        ;;
4.0)
        ;;
3.4)
        ;;
*)
        echo "supported versions are 3.3, 3.4 and 4.0"
        exit -1;
esac

BINDIR=/usr/bin
cd $BINDIR
for x in {gcc,gccbug,gcov,i*-linux-gcc,cpp,i*-linux-cpp,g77,g++}; do
    [ -L $x ] && rm $x
    ln -vs $x-$VER   $x 
done

リンクは

を更新するようにした.ちなみに, i386-linux-gcc なども正しく切り替えておかないと ./configure が正しく コンパイラを選択できないので注意.