Eosの構造

提供: Eospedia
2013年2月8日 (金) 04:37時点における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/Objectsを参照して下さい。。

Eos/src/Tools

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

Eos/src/Tools

このディレクトリの下の構造に関しては、Eos/src/Toolsを参照して下さい。

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

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

MATH

fftwなどの数値計算のためのライブラリのために準備しています。

Eosのホスト毎の制御

 Eosでは、ヘテロな環境でも一つのディレクトリで管理し、実行できるような仕組みをとることにしています。

環境変数による切り替え

Eosのホスト毎の管理は、$EOS_HOSTと$EOS_HOSTDIRの二つの環境変数により、切り替えを行っています。


Eosのホスト毎のファイルの管理方法の変更

 最近、git管理に変えた際に、ホスト毎の切り替えが大変困難になっています。また、バイナリ毎にダウンロード出来るようにディレクトリ構成を変更しました。(2013/02/01版より)

 以前のものを使われている方は、src直下のツール(Tools)やオブジェクト(Objects)のそれぞれのディレクトリにバイナリが丘rていました。現在のものをダウンロードするとそれらは全て下記のホストごとのディレクトリへのリンクに変更になっています。

 各ホスト毎のバイナリ等は、すべてEosの直下のhostdependのディレクトリ以下に、$EOS_HOSTDIRを並べ、移動し、ホストタイプ毎にそのディレクトリをコピーすれば済むように変更しました。

現在のバージョンのホスト毎のディレクトリ構成

 $EOS_HOME/hostdepend/$EOS_HOSTDIR/bin
                                  lib
                                  util
                                  src/WORLD/CLASS/NAME/src/