ツール群への近道

ロスコンパイルのツール群をインストールするというのは、多くの開発者たちの心に恐怖を植え付けるものだ。コンパイラC言語ライブラリとリンカに加えサポートライブラリとユーティリティをコンパイルすると考えただけでも手に余る。幸運にも現代はインターネットの時代であり、そのような苦痛をすでに経てしかもその努力を共有している誰かがいるということだ。
gccの場合その誰かとはDan Kegelだ。Danはスクラッチで起こした見事なスクリプトを持っている。このスクリプトは必要なソースをダウンロードしてきて、必要に応じてパッチを当て、完璧なツール群をビルドしてしまう−しかも多くの異なるCPUに対応している。私は以前Danのスクリプトを使って、MIPSベースのLinksys WRT54Gのクロスコンパイルツール群をビルドしたことがあったが、非常に簡単だった。私が少なくとも一人から聞いたことには、DanのスクリプトはNSLU2にも使えるバイナリを作成できるツール群をビルドすることができるということだった。私はDanのスクリプトを強くお勧めするが、この文章の目的を鑑みて私は近道を進むことにする。

LinksysはGPLライセンスの要求に従い、ソースコードの公開について少しはがんばっているように見える。Linksysのデバイスの多くは内部でLinuxを動かしているが、GPLによる公開度には大きな差がある。いくつかのデバイスは完璧なビルド環境が含まれている一方、NSLU2のように完璧とはいえない場合もある。
NSLU2に付属のCDには大量のソースが収められているが、ツール群は含まれていない。幸運なことに、Linksysからは、同じIntel IXP425を使ったLinuxベースのデバイス−WRV54G ワイヤレス-G VPNブロードバンドルータが発売されている。Linsysはこの製品についてはツール群をリリースしているので、これを使うことにする。125MB(!)のファイルをダウンロードして、あなたのシステムのホームディレクトリにuntarしよう。
私の場合、ディレクトリツリーの最上位はこんな感じ;
/home/jbuzbee/gp1_code_2.03
このディレクトリの中に、toolchain.tgzというファイルがあるだろう。このファイルはルートディレクトリに解凍するように作られているように見えるのだが、私はビルド環境を私のホームディレクトリに置いておきたかったので、上記のユニuntarすることにした。このファイルをuntarすると、必要なコンパイラ、リンカ、includeファイルなどなどが出てくるだろう。
各種バイナリはusr/local/oenrg/armsaeb/binディレクトリに入れられ、すべてarmv4b-hardhat-linux-が頭に付いている。私は$PATHにこのディレクトリを追加して、コンパイルのたびにディレクトリのフルパスをタイピングしなくてすむようにした。