材料
Solaris[ developper ]以上ががインストールされたコンピュータ。
今回は Solaris2.6 / Ultra1 を素材にしました。
gcc のバイナリ・パッケージ
gcc のソース・コード ( ソース・コードから料理する場合のみ )
gzip のバイナリ・パッケージ
gcc が通常圧縮されて配布されているので、 gzip の実行ファイルだけは、別途用意しておきましょう。
メニューは 2 種類あります。
材料の入手
コンパイルされたバイナリ・パッケージやソース・コードを入手しないと話になりませんので、誰かにもらうかお買い物に行きましょう。
下記の場所や雑誌の付録から入手してください。
Web site だとhttp://sunsite.sut.ac.jp/、ftp site だとftp://sunsite.sut.ac.jp/などがあります。
今回は、 http://sunsite.sut.ac.jp/ から gcc-2.8.1.pkg.tar.gz ( バイナリ・パッケージ ) 、gcc-2.8.1.tar.gz ( ソース ) をもってきました。
gzip の料理方法はこちらを参照してください。
パッケージの盛り付け
まず、バイナリ・パッケージを盛り付けて食べられるようにしましょう。ソース・コードから料理する場合も当然必要になります。
すでに gcc がパッケージ・インストールされているなら、pkginfo で確認して pkgrm できれいにしておきましょう。
# pkginfo | grep gcc
utility GNUgcc GNU gcc 2.8.1 SPARC Solaris 2.6
# pkgrm GNUgcc
さて、バイナリ・パッケージのインストールをしましょう。/export/home/compile という場所で作業をしています。ここに先ほどもってきたバイナリー・パッケージがあるものとして、 gzip で解凍し pkgadd でインストールして pkginfo で確認します。
# cd /usr/local/compile
# gzip -dc gcc-2.8.1.pkg.tar.gz | tar xf -
# pkgadd -d /export/home/compile
# pkginfo | grep gcc
これで、パスが /usr/local/bin に貼ってあれば gcc が使用できます。 gcc のバージョンを確認して、適当な C のソース・ファイルでもコンパイルしてみてください。
# gcc -v
# gcc -o pochi pochi.c
これでバリナリー・パッケージの盛り付けは終わりです。ソース・コードから料理の必要がなければ、ここでおしまい。お疲れ様でした。
使用した素材はどっかバックアップをとっておいてハードディスクからは消してしましょう。
# rm -r GNUgcc gcc-2.8.1.pkg.tar.gz
ソースコードからのお料理の準備
ソース・コードからお料理する場合は、下記の実行ファイルがあった方がよいと思いわれます。
http://sunsite.sut.ac.jp/ や ftp://sunsite.sut.ac.jpなどから、バイナリ・パッケージととってきたり、ソース・コードでとってきて盛り付けした gcc で、あらかじめお料理しておいた方がよいようです。必須ではないようですが、あった方がいいでしょ ?
パスは C-Shell の時、以下のように設定します。
# set path=(/usr/bin /usr/sbin /usr/ccs /usr/ccs/bin /usr/local/bin . )
とってきたソース・ファイルを gzip で解凍します。/export/home/compile という場所で作業をしています。そこに先ほどもってきたソース・ファイルがあるものとして解凍します。解凍が終了したら、 gcc-2.8.1 のディレクトリへ移動します。
# cd /usr/local/compile
# gzip -dc gcc-2.8.1.tar.gz | tar xf -
# cd gcc-2.8.1
下準備
./configure という優れものを利用して Makefile を作成します。
この時、 ./configure のオプションはいっぱいありますが、基本的にデフォルトでお料理をしましょう。
# ./configure --build=sparc-sun-solaris2.6
ここで ./configure --build=sparc-sun-solaris2 みたいにシステムのマイナーバージョンを省略して書くと make でコケます。これでえらく悩んでしまいました。 fj.sys.sun のみなさんのおかげで泥沼から脱出できました。
INTEL 版 Solaris だと 'CPU' 部分が 'i386' や 'i486' や 'i586' になるんでしょうね。
さてコンパイル
あとは INSTALL に書かれている手順で料理しちゃいましょう。
make stage1 で[ *** にアクセスできません]だのエラーを吐きますが、 (ignored) との事で、気にしなくてもいいそうです。
make stage2 でも[ *** にアクセスできません]だのエラーを吐きますが、 (ignored) との事で、気にしなくてもいいそうです。
make compare で特にエラーがでなければ、できあがりです。
# make
# make stage1
# make CC="stage1/xgcc -Bstage1/" CFLAG="-g -O"
# make stage2
# make CC="stage2/xgcc -Bstage2/" CFLAG="-g -O"
# make compare
盛り付け前に
バイナリ・パッケージをインストールしてあるので、作成した gcc をインストールすると pkginfo の情報とあわなくなるので pkgrm で消してしまいしょう。みなさんは、どうしてますか ?
# pkginfo | grep gcc
utility GNUgcc GNU gcc 2.8.1 SPARC Solaris 2.6
# pkgrm GNUgcc
さぁ、盛り付け
/usr/local へ作成した gcc の stage2 をインストールします。
# make CC="stage2/xgcc -Bstage2/" CFLAG="-g -O" install
後片付け
ソース・コードなどはバックアップしておいて作業した生ごみは必要がなければ消してしまいましょう。
# cd /usr/local/compile
# rm -r gcc-2.8.1 gcc-2.8.1.tar.gz