「Eosの構造」の版間の差分
 (→Eos/src/Tools)  | 
				 (→Eos/src/Objects)  | 
				||
| (2人の利用者による、間の17版が非表示) | |||
| 行6: | 行6: | ||
Eosのホームディレクトリです。$EOS_HOMEの環境変数によって指定されています。  | Eosのホームディレクトリです。$EOS_HOMEの環境変数によって指定されています。  | ||
環境設定ファイル以外のEosに関係したファイル/ディレクトリはすべてこのなかに存在しています。  | 環境設定ファイル以外のEosに関係したファイル/ディレクトリはすべてこのなかに存在しています。  | ||
| + | |||
<pre>  | <pre>  | ||
Eos  | Eos  | ||
</pre>  | </pre>  | ||
| − | === Eos/bin ===  | + | === EosBase ===  | 
| + | Eosにおいて中心的な役割を果たすものです。開発環境も含んだディレクトリです。bin/sbin/lib/hostdependは実行の際に必要、src/include/sbinは開発に必要なものを含んでいます。  | ||
| + | |||
| + | ==== Eos/bin ====  | ||
Eosの[[コマンド]]([[Small Tools]])に関する実行ファイル等があるディレクトリです。  | Eosの[[コマンド]]([[Small Tools]])に関する実行ファイル等があるディレクトリです。  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + |  Eos/bin  | |
| + |  Eos/bin/XXXXXX  | ||
| + |  Eos/bin/wish  | ||
| + |  Eos/bin/ruby  | ||
| + |  Eos/bin/shell  | ||
| + |  Eos/bin/perl  | ||
| − | === Eos/sbin ===  | + | XXXXXXは、それぞれのホストのタイプ($EOS_HOST)毎に異なるディレクトリになっており、コンパイル・リンクされた実体が格納されています。ただし、実際には、Eos/hostdependにあり、是までとの継続性を考慮して、リンクとなっています。  | 
| + | |||
| + | /wish, /ruby, /shell, /perlは、それぞれ、Tcl/Tk, Ruyb, Bash, perl等のシェルスクリプト用のディレクトリです。Eos/binから呼び出されるようになっています。  | ||
| + | |||
| + | ==== Eos/hostdepend ====  | ||
| + | ホストに依存したバイナリが保存されています。詳細は、本頁の[[#Eosのホスト毎の制御]]をご覧下さい。  | ||
| + | |||
| + | ==== Eos/sbin ====  | ||
Eosの[[システムコマンド]]が格納されているディレクトリです。  | Eosの[[システムコマンド]]が格納されているディレクトリです。  | ||
| − | |||
| − | |||
| − | |||
| − | + |  Eos/sbin  | |
| − | Eos/  | + |  Eos/sbin/sed  | 
| + |  Eos/sbin/awk  | ||
| + |  Eos/sbin/config  | ||
| + | |||
| + | /sed, /awkはそれぞれ、sed, awk用のコマンドが格納されています。  | ||
| + | /configには、sbin内で利用する設定ファイルが格納されています。  | ||
| − | === Eos/  | + | ==== Eos/lib ====  | 
| − | + | Eosの[[ライブラリ]]が格納されているディレクトリです。  | |
| − | + |  Eos/lib  | |
| − | + |  Eos/lib/XXXXXX  | |
| − | + |  Eos/lib/*.rb  | |
| − | Eos/  | + |  Eos/lib/*.wish  | 
| − | + | ||
| − | + | XXXXXXは、それぞれ異なるホストタイプ($EOS_HOST)毎のディレクトリになっており、コンパイルされたバイナリがライブラリとして格納されています。  | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | === Eos/src ===  | + | *.rb, *.wishはそれぞれ、ruby, Tcl/Tk用の関数群です。  | 
| + | |||
| + | ==== Eos/include ====  | ||
| + | Eosをコンパイルするためのincludeファイルが格納されているディレクトリです。  | ||
| + | |||
| + |  Eos/include  | ||
| + | |||
| + | |||
| + | ==== Eos/src ====  | ||
EosのObjects/Toolsのソースファイルのディレクトリです。  | EosのObjects/Toolsのソースファイルのディレクトリです。  | ||
| − | + |  Eos/src  | |
| − | Eos/src  | + | |
| − | + | ||
| − | ==== Eos/src/Config ====  | + | ===== Eos/src/Config =====  | 
ソースファイルをコンパイルするためのホストタイプ毎の環境を設定しているディレクトリです。コンパイルのための各ディレクトリのMakefileのテンプレートも存在しています。  | ソースファイルをコンパイルするためのホストタイプ毎の環境を設定しているディレクトリです。コンパイルのための各ディレクトリのMakefileのテンプレートも存在しています。  | ||
| − | |||
| − | |||
| − | |||
| − | + |  Eos/src/Config  | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ===== Eos/src/Objects =====  | |
| + | EosのObjects([[ライブラリ]])のソースコードがあるディレクトリです。ここでコンパイルされるとEos/lib及びEos/includeにコピーされ、Tools等から利用できる様になります。  | ||
| − | ==== Eos/src/Tools ====  | + |  Eos/src/Objects  | 
| + | |||
| + | これより下部のディレクトリ構成は、[[Eos/src/Objects]]を参照して下さい。  | ||
| + | |||
| + | ===== Eos/src/Tools =====  | ||
Eosの[[コマンド]]([[Small Tools]])のソースコードがあるディレクトリです。ここでコンパイル・リンクされたコマンドは、Eos/binのディレクトリにインストールされます。  | Eosの[[コマンド]]([[Small Tools]])のソースコードがあるディレクトリです。ここでコンパイル・リンクされたコマンドは、Eos/binのディレクトリにインストールされます。  | ||
| − | + | ||
| − | Eos/src/Tools  | + |  Eos/src/Tools  | 
| − | + | ||
このディレクトリの下の構造に関しては、[[Eos/src/Tools]]を参照して下さい。  | このディレクトリの下の構造に関しては、[[Eos/src/Tools]]を参照して下さい。  | ||
| − | === Eos/util ===  | + | ==== Eos/util ====  | 
| − | + | Eosのために必要な他のシステムのライブラリが格納されています。過去との継続のために残しています。  | |
| + | 実際の実体は、Eos/hostdepend/XXXXXX/util/XXXXXXのなかに格納されています。  | ||
<pre>  | <pre>  | ||
| 行96: | 行108: | ||
現在、必要となるライブラリは下記の様になります。  | 現在、必要となるライブラリは下記の様になります。  | ||
| − | ==== TclTk ====  | + | ===== TclTk =====  | 
| − | [[Display2]]のようなInterativeなツールのために必要です。[[BLT]]を使って、グラフ等を作成しているアプリケーションでは、Tcl/Tkだけではなく、BLTまで必要です。OpenGL等の三次元グラフィックスを利用しやすくするには、[[vtk]]  | + | [[Display2]]のようなInterativeなツールのために必要です。[[BLT]]を使って、グラフ等を作成しているアプリケーションでは、Tcl/Tkだけではなく、BLTまで必要です。OpenGL等の三次元グラフィックスを利用しやすくするには、[[vtk]]も必要で、[[smolet]]などで必要としています。  | 
| − | ==== Graphics ====  | + | ===== Graphics =====  | 
[[libtif]]、[[libjpg]]など、主として、各種の画像ファイルフォーマット等に対応するために必要です。  | [[libtif]]、[[libjpg]]など、主として、各種の画像ファイルフォーマット等に対応するために必要です。  | ||
| − | ==== MATH ====  | + | ===== MATH =====  | 
[[fftw]]などの数値計算のためのライブラリのために準備しています。  | [[fftw]]などの数値計算のためのライブラリのために準備しています。  | ||
| + | |||
| + | === EosData ===  | ||
| + | ==== Eos/data ====  | ||
| + | Eosのテストなどのためのdataが格納されたディレクトリです。まだ整理が十分とは言えませんので、大きく内容が変更になる可能性があります。  | ||
| + | |||
| + |  Eos/data  | ||
| + | |||
| + | === EosOptional ===  | ||
| + | ==== Eos/doc ====  | ||
| + | Eosのためのドキュメントが格納されているディレクトリです。  | ||
| + | |||
| + |  Eos/doc  | ||
| + | |||
| + | === EosOthers ===  | ||
| + | ==== Eos/others ====  | ||
| + | Eos以外のオープンソースが提供するソースコード等を保管したディレクトリです。  | ||
| + | それぞれのバージョン毎に仕様が異なるために、Eosが保証しているソースコードを保管しています。  | ||
| + | |||
| + |  utilsrc     # ライブラリ等のソースファイル  | ||
| + |  utiltools   # 単独のアプリケーション(インストールが自由で無い場合向け)  | ||
| + | |||
| + | の二つのディレクトリからなっています。  | ||
| + | |||
| + | これらをコンパイルしたライブラリがhostdepend/XXXXXX/util/XXXXXXの下に格納されており、動作を保証しています。  | ||
| + | このファイルは、util/XXXXXXXからリンクが張られており、そちらを利用します。  | ||
| + | |||
| + | |||
| + | ただし、glibcなどのLINUX等が提供するバイナリのバージョンによってはうまく動作しない可能性があります。その場合には、こちらのothersからリンクを設定されているutil/srcXXXXXXの直下でコンパイルし、ライブラリを作成する事になります。  | ||
== Eosのホスト毎の制御 ==  | == Eosのホスト毎の制御 ==  | ||
 Eosでは、ヘテロな環境でも一つのディレクトリで管理し、実行できるような仕組みをとることにしています。  |  Eosでは、ヘテロな環境でも一つのディレクトリで管理し、実行できるような仕組みをとることにしています。  | ||
| + | |||
=== 環境変数による切り替え ===  | === 環境変数による切り替え ===  | ||
Eosのホスト毎の管理は、$EOS_HOSTと$EOS_HOSTDIRの二つの環境変数により、切り替えを行っています。  | Eosのホスト毎の管理は、$EOS_HOSTと$EOS_HOSTDIRの二つの環境変数により、切り替えを行っています。  | ||
| − | |||
=== Eosのホスト毎のファイルの管理方法の変更 ===  | === Eosのホスト毎のファイルの管理方法の変更 ===  | ||
| − | + | 最近、git管理に変えた際に、ホスト毎の切り替えが大変困難になってしまいました。そこで、バイナリ毎にダウンロード出来るようにディレクトリ構成を変更しました。(2013/02/01版より)  | |
| − | + | 以前のものを使われている方は、src直下のツール(Tools)やオブジェクト(Objects)のそれぞれのディレクトリにバイナリが置かれています。現在のものをダウンロードするとそれらは全て下記のホストごとのディレクトリへのリンクに変更になっています。ご注意下さい。  | |
| − | + | 2013/02/01以降は、各ホスト毎のバイナリ等は、すべてEosの直下のhostdependのディレクトリ以下に、$EOS_HOSTDIRに従って保存するように移動しました。これにより、ホストタイプ毎にそのディレクトリをコピーやバックアップすれば済むようになりました。これが現在のダウンロードサイトからダウンロード出来るようにしています。  | |
| − | + | 現在のバージョンのホスト毎のディレクトリ構成  | |
| − | + |  $EOS_HOME/hostdepend/$EOS_HOSTDIR/bin  | |
| − | $EOS_HOME/$EOS_HOSTDIR/bin  | + |                                   lib  | 
| − | + |                                   util  | |
| − | + |                                   src/WORLD/CLASS/NAME/src/  | |
| − | + | ||
| − | + | ||
2014年10月14日 (火) 00:14時点における最新版
ここでは、Eosのシステムとしての構造を説明します。
Eosのディレクトリ構造
Eos
Eosのホームディレクトリです。$EOS_HOMEの環境変数によって指定されています。 環境設定ファイル以外のEosに関係したファイル/ディレクトリはすべてこのなかに存在しています。
Eos
EosBase
Eosにおいて中心的な役割を果たすものです。開発環境も含んだディレクトリです。bin/sbin/lib/hostdependは実行の際に必要、src/include/sbinは開発に必要なものを含んでいます。
Eos/bin
Eosのコマンド(Small Tools)に関する実行ファイル等があるディレクトリです。
Eos/bin Eos/bin/XXXXXX Eos/bin/wish Eos/bin/ruby Eos/bin/shell Eos/bin/perl
XXXXXXは、それぞれのホストのタイプ($EOS_HOST)毎に異なるディレクトリになっており、コンパイル・リンクされた実体が格納されています。ただし、実際には、Eos/hostdependにあり、是までとの継続性を考慮して、リンクとなっています。
/wish, /ruby, /shell, /perlは、それぞれ、Tcl/Tk, Ruyb, Bash, perl等のシェルスクリプト用のディレクトリです。Eos/binから呼び出されるようになっています。
Eos/hostdepend
ホストに依存したバイナリが保存されています。詳細は、本頁の#Eosのホスト毎の制御をご覧下さい。
Eos/sbin
Eosのシステムコマンドが格納されているディレクトリです。
Eos/sbin Eos/sbin/sed Eos/sbin/awk Eos/sbin/config
/sed, /awkはそれぞれ、sed, awk用のコマンドが格納されています。 /configには、sbin内で利用する設定ファイルが格納されています。
Eos/lib
Eosのライブラリが格納されているディレクトリです。
Eos/lib Eos/lib/XXXXXX Eos/lib/*.rb Eos/lib/*.wish
XXXXXXは、それぞれ異なるホストタイプ($EOS_HOST)毎のディレクトリになっており、コンパイルされたバイナリがライブラリとして格納されています。
- .rb, *.wishはそれぞれ、ruby, Tcl/Tk用の関数群です。
 
Eos/include
Eosをコンパイルするためのincludeファイルが格納されているディレクトリです。
Eos/include
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/hostdepend/XXXXXX/util/XXXXXXのなかに格納されています。
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などの数値計算のためのライブラリのために準備しています。
EosData
Eos/data
Eosのテストなどのためのdataが格納されたディレクトリです。まだ整理が十分とは言えませんので、大きく内容が変更になる可能性があります。
Eos/data
EosOptional
Eos/doc
Eosのためのドキュメントが格納されているディレクトリです。
Eos/doc
EosOthers
Eos/others
Eos以外のオープンソースが提供するソースコード等を保管したディレクトリです。 それぞれのバージョン毎に仕様が異なるために、Eosが保証しているソースコードを保管しています。
utilsrc # ライブラリ等のソースファイル utiltools # 単独のアプリケーション(インストールが自由で無い場合向け)
の二つのディレクトリからなっています。
これらをコンパイルしたライブラリがhostdepend/XXXXXX/util/XXXXXXの下に格納されており、動作を保証しています。 このファイルは、util/XXXXXXXからリンクが張られており、そちらを利用します。
ただし、glibcなどのLINUX等が提供するバイナリのバージョンによってはうまく動作しない可能性があります。その場合には、こちらのothersからリンクを設定されているutil/srcXXXXXXの直下でコンパイルし、ライブラリを作成する事になります。
Eosのホスト毎の制御
Eosでは、ヘテロな環境でも一つのディレクトリで管理し、実行できるような仕組みをとることにしています。
環境変数による切り替え
Eosのホスト毎の管理は、$EOS_HOSTと$EOS_HOSTDIRの二つの環境変数により、切り替えを行っています。
Eosのホスト毎のファイルの管理方法の変更
最近、git管理に変えた際に、ホスト毎の切り替えが大変困難になってしまいました。そこで、バイナリ毎にダウンロード出来るようにディレクトリ構成を変更しました。(2013/02/01版より)
以前のものを使われている方は、src直下のツール(Tools)やオブジェクト(Objects)のそれぞれのディレクトリにバイナリが置かれています。現在のものをダウンロードするとそれらは全て下記のホストごとのディレクトリへのリンクに変更になっています。ご注意下さい。
2013/02/01以降は、各ホスト毎のバイナリ等は、すべてEosの直下のhostdependのディレクトリ以下に、$EOS_HOSTDIRに従って保存するように移動しました。これにより、ホストタイプ毎にそのディレクトリをコピーやバックアップすれば済むようになりました。これが現在のダウンロードサイトからダウンロード出来るようにしています。
現在のバージョンのホスト毎のディレクトリ構成
$EOS_HOME/hostdepend/$EOS_HOSTDIR/bin
                                 lib
                                 util
                                 src/WORLD/CLASS/NAME/src/