Eosの構造

提供: Eospedia
2012年10月8日 (月) 07:50時点におけるAdmin (トーク | 投稿記録)による版

移動: 案内検索

ここでは、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/Tools

Eosのコマンド(Small Tools)のソースコードがあるディレクトリです。ここでコンパイル・リンクされたコマンドは、Eos/binのディレクトリにインストールされます。

Eos/src/Tools

Eosのために必要な他のシステムのライブラリが格納されています。

Eos/util

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

libtiflibjpgなど、主として、各種の画像ファイルフォーマット等に対応するために必要です。

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/