AE環境変数:実行可能ライブラリと共有ライブラリ
register_ae関数を使用して実行可能パスを設定し、NZAE_EXECUTABLE_PATH 環境変数を設定することができる。 このセクションには、AE-ENV を使用した AE の例が記載されている。
シンプルなC言語AE
この例では、単純なC言語AEがhelloaeという実行ファイルにコンパイルされる。 AEエクスポートディレクトリは/nz/export/aeにあります。 コンパイルすると、ホスト用に1つ、SPU用に1つのバージョンが生成される:
/nz/export/ae/applications/dev/david/host/helloae
/nz/export/ae/applications/dev/david/spu/helloae
AE環境変数は、AEシステムに実行可能ファイルの場所を指し示す:
NZAE_HOST_ONLY_NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/host/hel
loae
NZAE_SPU_ONLY_NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/spu/hello
ae
AE-ENV キー名は、ルートとロケーション接頭辞の 2 つの部分で構成される。 前の例では、ルートはNZAE_EXECUTABLE_PATHである。 接頭辞は NZAE_HOST_ONLY と NZAE_SPU_ONLY である。
NZAE_HOST_ONLY ロケーション接頭辞を持つ変数は、ホスト上でのみ表示されます。 ロケーショ ン接頭辞は取り除かれ、ホストはその値を受け取る:
NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/host/helloae
同様に、NZAE_SPU_ONLYロケーション接頭辞を持つ変数は、SPUからのみ見える。 ここでもロケーションプレフィックスが取り除かれ、SPUが受信する:
NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/spu/helloae
共有ライブラリを使ったシンプルなC言語AE
この例では、AE helloaeは共有ライブラリーのディレクトリを使用する。 アプリケーションのLinuxLD_LIBRARY_PATHを設定する。 AE ランタイムシステムも LD_LIBRARY_PATH を使用するため、変更することができる。 まず、共有ライブラリを AE Export ディレクトリツリーに配置します。
/nz/export/ae/applications/dev/david/libhost/lib*.so
/nz/export/ae/applications/dev/david/libspu/lib*.so
このコードでは、AEランタイムシステムがLD_LIBRARY_PATHにディレクトリを追加する方法を示します:
NZAE_HOST_ONLY_NZAE_APPEND_LD_LIBRARY_PATH=/nz/export/ae/applications/dev/david/l
ibhost
NZAE_SPU_ONLY_NZAE_APPEND_LD_LIBRARY_PATH=/nz/export/ae/applications/dev/david/li
bspu
これらの AE-ENV 定義は、2 つの接頭辞とルートで構成される。 ルートはLD_LIBRARY_PATHである。 最初に指定しなければならない接頭辞は、前述したロケーショ ン接頭辞である。 2つ目は付加接頭辞NZAE_APPENDで、AEにこの値を既存の値に付加するよう指示する。 キーに値がない場合は、新しい値が作成される。 追記する際、AE システムは最初にターゲットキー名の AE-ENV を検索する。 見つからない場合、AEシステムはOSのプロセス環境を検索する。
同じ手法で、PATHやCLASSPATHを含むあらゆる環境変数に追加することができる。 プリペンド接頭辞 NZAE_PREPEND を使用すると、AE-ENV または OS 環境変数のプリペンドを行うことができます。 ロケーション接頭辞は、付加接頭辞または前置接頭辞の前に指定しなければならない。 追加または前置された値は、コロン(:)文字で区切られる。 接頭辞は、AEプログラマーに、プロセスが実行される環境を大きく制御させる。 変数の割り当ては最初のパスで行われる。 アペンドとプリペンドのオペレーションは、すべての割り当てが処理された後のセカンドパスで実行される。