Eosの構造
ここでは、Eosのシステムとしての構造を説明します。
目次
Eosのディレクトリ構造
Eos
Eosのホームディレクトリです。$EOS_HOMEの環境変数によって指定されています。 環境設定ファイル以外のEosに関係したファイル/ディレクトリはすべてこのなかに存在しています。
Eos
Eos/bin
Eosのコマンド(Small Tools)に関する実行ファイル等があるディレクトリです。
Eos/bin Eos/bin/XXXXXX Eos/wish
XXXXXXは、それぞれのホストのタイプ($EOS_HOST)毎に異なるディレクトリになっています。
Eos/sbin
Eosのシステムコマンドが格納されているディレクトリです。
Eos/sbin
Eos/lib
Eos/lib
Eos/include
Eos/include
Eos/data
Eosのテストなどのためのdataが格納されたディレクトリです。
Eos/data
Eos/doc
Eosのためのドキュメントが格納されているディレクトリです。
Eos/doc
Eos/src
EosのObjects/Toolsのソースファイルのディレクトリです。
Eos/src
Eos/src/Config
ソースファイルをコンパイルするためのホストタイプ毎の環境を設定しているディレクトリです。コンパイルのための各ディレクトリのMakefileのテンプレートも存在しています。
Eos/src/Config
Eos/src/Objects
EosのObjects(ライブラリ)のソースコードがあるディレクトリです。ここでコンパイルされるとEos/lib及びEos/includeにコピーされ、Tools等から利用できる様になります。
Eos/src/Objects
これより下部のディレクトリ構成は、Eos/src/Objectsを参照して下さい。。
Eos/src/Tools
Eosのコマンド(Small Tools)のソースコードがあるディレクトリです。ここでコンパイル・リンクされたコマンドは、Eos/binのディレクトリにインストールされます。
Eos/src/Tools
Eosのために必要な他のシステムのライブラリが格納されています。
Eos/util
Eosのために必要な他のシステムのライブラリが格納されています。
Eos/util Eos/util/src Eos/util/srcXXXXXX Eos/util/XXXXXX
srcにはダウンロードしてきたソースコードのtgzファイルをおいています。ただし、再配布が困難であるため、gitの中にはアップロードしていません。srcXXXXXは、それらをホストタイプ毎に解凍したものが置かれます。それぞれのディレクトリにMakefileが用意されています。
$ make Init $ make Config $ make All
の順に実行すればコンパイルされるはずです。ただ環境に応じて、必ずしもコンパイルできない場合があります。
現在、必要となるライブラリは下記の様になります。
TclTk
Display2のようなInterativeなツールのために必要です。BLTを使って、グラフ等を作成しているアプリケーションでは、Tcl/Tkだけではなく、BLTまで必要です。OpenGL等の三次元グラフィックスを利用しやすくするには、vtkも必要で、smoletなどで必要としています。
Graphics
libtif、libjpgなど、主として、各種の画像ファイルフォーマット等に対応するために必要です。
MATH
fftwなどの数値計算のためのライブラリのために準備しています。
Eosのホスト毎の制御
Eosでは、ヘテロな環境でも一つのディレクトリで管理し、実行できるような仕組みをとることにしています。
環境変数による切り替え
Eosのホスト毎の管理は、$EOS_HOSTと$EOS_HOSTDIRの二つの環境変数により、切り替えを行っています。
Eosのホスト毎のファイルの管理方法の変更
最近、git管理に変えた際に、ホスト毎の切り替えが大変困難になっています。また、バイナリ毎にダウンロード出来るように変更することを考えています。
そのため、ディレクトリの構成を大きく変更する予定です。
各ホスト毎のバイナリ等は、すべてEosの直下に$EOS_HOSTDIRを並べ、移動し、ホストタイプ毎にそのディレクトリをコピーすれば済むように変更する予定です。いずれかの段階で大きな変更があると思いますが、ご協力をお願いします。
想定しているホスト毎のディレクトリ構成
$EOS_HOME/$EOS_HOSTDIR/bin lib util src/WORLD/CLASS/NAME/src/