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 が正しく コンパイラを選択できないので注意.