T.Y's Room   研究室

トップページへ | 研究室 目次へ | Ada95 | CSP

GNAT をインストールしてみよう( Solaris 2.5.1 ソースコード版 )

GNAT バイナリパッケージ版のインストール

 GNAT のコンパイル,メイクには,gcc と 一つ前のバージョンの GNAT と GNU make が必要になります.GNAT をインストールするのに GNAT が必要というのも変な感じがしますが仕方ありません.一つ前のバージョンを持っていないので,最初に最新バージョンの GNAT のバイナリパッケージをインストールします.
 以降の解説はバイナリパッケージが /usr/local 下にインストールされている前提で行われています.インストールパスが違う人は注意してください.

 バイナリパッケージのインストールについてはこちらを参考にしてください.

 GNU make のインストールについては,WWW 検索で解説ページを見つけてください.


ソースコードのダウンロード

 無事バイナリパッケージがインストールされたなら,ソースコードをダウンロードしましょう.バイナリパッケージをダウンロードするついでにソースコードもダウンロードしておくのがいいでしょう.

ftp://wuarchive.wustl.edu/languages/ada/compiler/gnat/

ftp://ftp.cdrom.com/pub/languages/ada/compiler/gnat/

ftp://cs.nyu.edu/pub/gnat/

 ここからダウンロードしましょう.このディレクトリから distribに移動し,(移動しなくていい場合もあります)gnat-3.11p-src.tar.gz(バージョン番号は最新のものに置き換えてください)をダウンロードします.ファイルサイズが約 3.5MB ですから,空いているときにダウンロードしましょう.

 リファレンスマニュアルなどが必要な人はついでに gnat-3.11p-docs.tar.gz( 950KB ほどです)もダウンロードしておきましょう.

 GNAT のソースコード以外にも gcc のソースコードが必要です.gcc のソースコードをダウンロードしましょう.
 C++ コンパイラも必要なら,libstdc++, libg++ のソースコードもダウンロードしましょう.

gcc 2.8.1 ( 8.4MB )
ftp://ftp.iij.ad.jp/pub/GNU/gcc/gcc-2.8.1.tar.gz
libstdc++ 2.8.1.1 ( 830KB )
ftp://ftp.iij.ad.jp/pub/GNU/libstdc++/libstdc++-2.8.1.1.tar.gz
libg++ 2.8.1.1a ( 750KB )
ftp://ftp.iij.ad.jp/pub/GNU/libg++/libg++-2.8.1.1a.tar.gz

 上記の他にも GNU ソフトウェアの FTP ミラーサイトは沢山あるので,空いているところやネットワーク的に近いところからダウンロードしましょう.


ファイルを解凍する

 ダウンロードしてきたファイルは圧縮ファイルなので,解凍します.
 ここでは gzip, gunzip など圧縮関連のソフトウェアがインストールされていることを前提とします.インストールされていないなら,インストールしましょう.方法は WWW 検索で容易に見つけることが出来ます.

% su

 普通は make install の手前までは一般ユーザで作業するのですが,make install 中に新規のファイルを作ったりするので,最初からスーパーユーザになっておきます.

# cd /tmp2

 この解説では全てのソースを /tmp2 の下に展開することにしますので,/tmp2 に移動します.

# gtar -xzvf gnat-3.11p-src.tar.gz

 gtar は GNU tar です./bin/tar と区別するためにコマンド名を変更しています.もし,GNU tar がインストールされていないのであれば,以下のコマンドで代用できます.

# gunzip -cd gnat-3.11p-src.tar.gz | tar xvf -

 gnat-3.11p-src というディレクトリが作成され,その中にソースコードインストールするファイルがあります.

# gtar -xzvf gcc-2.8.1.tar.gz
# gtar -xzvf libstdc++-2.8.1.1.tar.gz
# gtar -xzvf libg++-2.8.1.1a.tar.gz


 同様の手順でダウンロードしてきたファイル全てを解凍します.gnat-3.11p-docs.tar.gz はインストール後に解凍しますので,ここでは解凍しません.ドキュメントについての解説はこちらです.


configure 前の準備作業

 gcc に GNAT の機能を組み込む作業を行います.

# cp -r gnat-3.11p-src/src/ada gcc-2.8.1

 GNAT のソースコードを gcc のソースコードのあるディレクトリにコピーします.

# cd gcc-2.8.1
# patch -p0 < ../gnat-3.11p-src/src/gcc-281.dif


 gcc 2.8.1 に GNAT のパッチを当てます.

# cd ada
# touch treeprs.ads a-[es]info.h nmake.ad[bs]


 先ほどコピーした ada ディレクトリ内で以上の作業をします.


gcc, GNAT のコンパイル,メイク

 それでは,gcc をコンパイル,メイクしましょう.

# cd ..
# ./configure --prefix=/usr/local


 gcc のソースディレクトリで configure スクリプトを実行します.インストールパスを /usr/local に固定するので,オプションで指定しておきます.

# gmake CC=gcc CFLAGS="-O2" LANGUAGES="c ada"
# gmake CC=gcc CFLAGS="-O2" LANGUAGES="c ada" bootstrap


 C と Ada のソースをコンパイルできるようにするため,LANGUAGES="c ada" を設定しています.

 ここでのメイク作業は時間がかかるので,昼寝するなり,お茶にするなり,他の仕事をするなりして下さい.(^^;

# gmake CC=gcc CFLAGS="-O2" gnattools
# gmake CC=gcc CFLAGS="-O2" GNATLIBCFLAGS="-O2" gnatlib


 GNAT 関連の実行ファイルやライブラリをコンパイル,メイクしています.
 上記の方法では ネイティブスレッドパッケージがインストールされます.最後のセクションで FSU スレッドパッケージもインストールする方法を紹介していますが,普通に使うのであれば,ネイティブスレッドパッケージだけで十分でしょう.

# gmake LANGUAGES="c ada" install
# exit


 make install してインストール作業は終了です.C と Ada のソースはコンパイルできるようになりました.
 作業が終了したので,スーパーユーザから一般ユーザへ戻ります.

 インストール後に環境変数の設定を行って下さい.バイナリパッケージインストール時に設定しているなら,そのまま何もしなくて結構です.

 この次のセクションでは C++ ソースもコンパイルできるようにしますが,C++ が必要なく,ここでインストールを終了するのであれば,こちらを見てください.


C++ ソースもコンパイルできるようにする

 折角ソースコードから gcc をインストールしたのだから,C++ ソースもコンパイルできるようにしておきましょう.C++ を使わないのであれば,このセクションは無視して下さい.

 注意:GNAT インストール後に新規に圧縮ファイルから gcc のソースディレクトリを用意した場合,必ず configure 前の準備作業を行い,configure スクリプトを prefix オプション付きで実行した後で以下の作業を行って下さい.

% su
# cd /tmp2/gcc-2.8.1
# gmake CC=gcc CFLAGS="-g -O2" LANGUAGES=c++
# gmake CC=gcc LANGUAGES=c++ install


 gcc のソースディレクトリに移動し,C++ 用にメイクします.
 以上で,C++ ソースをコンパイルする機能が組み込まれましたが,ライブラリがないので次にライブラリをインストールします.

# cd ../libstdc++-2.8.1.1
# cp -r ../libg++-2.8.1.1a/* .


 libg++ のファイルを libstdc++ ディレクトリにコピーします.

# ./configure --prefix=/usr/local

 インストールパスを /usr/local に設定して,configure スクリプトを実行します.

# gmake all
# gmake install
# exit


 gmake all で標準 C++ ライブラリと g++ 用ライブラリをメイクします.その後インストールします.

 後はインストールしたライブラリのあるディレクトリ( /usr/local/lib あたり)をライブラリパスに追加しておきましょう.


後始末をしましょう

 無事インストールが終了したならば,後始末をしましょう.

 最後に gnat, gcc, libstdc++, libg++ のソースディレクトリを削除しましょう.ハードディスクの容量に余裕があれば,これらのソースディレクトリはしばらく残して置いて,gcc の動作が安定しているのを確認してから削除するのが良いでしょう.

 それでは,Ada の世界にどっぷり浸かってみて下さい.



トップページへ | 研究室 目次へ | Ada95 | CSP

FSU スレッドパッケージのインストール

 Solaris ではデフォルトでネイティブスレッドパッケージをインストールしますが,FSU スレッドパッケージもインストールできます.大抵はネイティブスレッドパッケージだけで十分なので,必要な人だけ参考にして下さい.FSU スレッドパッケージがいらない場合はこのセクションは無視してください.

 ちなみに GNAT バイナリディストリビューションでデフォルトインストールされるパッケージは Solaris 版がネイティブスレッドパッケージ,Linux 版が FSU スレッドパッケージです.

% su
# cd /usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.8.1/
# rm -rf rts-native/adainclude rts-native/adalib
# mv adainclude adalib rts-native


 バイナリパッケージから rts-native 下にインストールされたネイティブ用ライブラリを削除し,メイクしたネイティブ用ライブラリを rts-native 下に移します.

# mkdir rts-fsu

 FSU スレッドパッケージのインストール先を用意します.バイナリパッケージインストール時にこれらのディレクトリは作成されているはずですが,無いようならば上記のようにして作ってください.

# cd /tmp2/gcc-2.8.1
# rm stamp-gnatlib1
# gmake CC=gcc CFLAGS="-O2" GNATLIBCFLAGS="-O2" THREAD_KIND=fsu gnatlib
# gmake LANGUAGES="c ada" install


 gcc のソースディレクトリに移動します.既にネイティブスレッドパッケージをメイクしているので,stamp-gnatlib1 ファイルを削除しておきます.
 FSU スレッドパッケージをメイクするので,THREAD_KIND=fsu を設定しています.

# cd /usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.8.1/
# mv adainclude adalib rts-fsu


 FSU 用ライブラリを rts-fsu 下に移します.

# cd /usr/local/lib/gcc-lib/sparc-solaris-2.5.1/2.8.1/
# cp libgthread.a libmalloc.a rts-fsu


 バイナリパッケージからインストールされた FSU 用ライブラリを rts-fsu 下にコピーします.

# ln -s rts-native/adainclude .
# ln -s rts-native/adalib .
# exit


 rts-native 下のライブラリを普段使うので,rts-native/adainclude, rts-native/adalib へシンボリックリンクします.


トップページへ | 研究室 目次へ | Ada95 | CSP