MソースプログラムはシェルまたはGT.M (ダイレクトモード)のどちらか一方から実行されます.
ソースプログラムのコンパイル上でこのセクションでの説明として、GT.MコマンドのZLINKは、オブジェクトモジュールへ ソースコードをコンパイルし、 そして現在のイメージへオブジェクトモジュールを追加します。
Mコマンドがプログラムでまたはダイレクトモードで現イメージの一部ではないルーチンを参照する時には、ランタイムシステムは自動ZLINKもまた実行します。
自動ZLINKの初期化を可能にするMコマンドと関数:
DO
GOTO
ZBREAK
ZGOTO
ZPRINT
$TEXT()
GT.Mはこれらの状況下でのみルーチンをauto-ZLINKs します。:
ルーチンはソースファイルとして同じ名前を持ちます。
ZLINKは$ZROUTINESを使用してルーチンファイルを検索します、もし$ZROUTINESがnullならば現在のディレクトリです。
$ZROUTINESは、ソースとオブジェクトファイルを検索するために、ZLINKとauto-ZLINKによって使われるディレクトリ検索パスを含むread-write特殊変数です。
ZLINKコマンドのための引数がパス名を含むときには、$ZSOURCEはZEDITとZLINKのためにデフォルトとしてそのパス名をメンテナンスします。$ZSOURCEはread-write特殊変数です。
一度ZEDITまたはZLINKコマンドを使うと、$ZSOURCEは部分的なファイル仕様を含むことができます。部分的なファイル仕様は、ディレクトリパス (完全パスまたは相対パス)、ファイル名、ファイル拡張子です。M SETコマンドを持つ$ZSOURCEをセットできます。引数なしZLINKは、ZLINK $ZSOURCEと同等です。
$ZSOURCEと$ZROUTINESの追加情報については、第8章: “固有の特殊変数” を参照してください。
例:
GTM>ZLINK "taxes"
もしZLINKがtaxes.m または taxes.o を見つけた場合は、コマンドは現イメージへルーチンテキストを追加します。ZLINKがtaxes.oを検索できない場合は、またはtaxes.mよりも古いtaxes.oを見つけた場合は、それはtaxes.mをコンパイルし新しいtaxes.oを生成します。それから、イメージへ新しいオブジェクトファイルのコンテンツを追加します。
ディレクトリを特定しないZLINKコマンドは、ファイルを検索するために$ZROUTINESを使用します。$ZROUTINESがnullの時、 ZLINKは現ディレクトリを使います。$ZROUTINESはgtmroutines環境変数の値で初期化します。
リンクされたファイルが明示的なディレクトリを含まれる時、ZLINKとauto-ZLINKはオブジェクトとソースファイルの両方を持つそのディレクトリだけを探します。もしコンパイルが必要とされるならば、ZLINKは、名付けられたディレクトリで新しいオブジェクトファイルを位置付けます。
ディレクトリが$ZROUTINESでパスを検索するために追加されない限りは、引き続き、このオブジェクトファイルを検索するZLINKは、特定されるディレクトリのオブジェクトファイルはけっして発見できないでしょう、また、オブジェクトファイルは検索パスに既にある他のディレクトリへ移動されます。
ZLINKは現在アクティブなルーチンを変更することができません。 (例えば、ルーチンはスタックの ZSHOW "S" で表示される)ZGOTOまたは1つ以上のQUITを使い、Mスタックからそれを最初に削除することにより、現在のアクティブなルーチンをZLINKします。ZGOTOとZSHOW 機能の詳細については、第6章: “コマンド” 内の各項目を参照してください。
ファイル名にパーセント記号 (%)を許すGT.Mの他のエディションとの互換性を維持するために、GT.Mはファイル名の中にパーセントの位置の中にアンダースコア (_) を使用します。
例:
GTM>zlink "_MGR"
ZLINKは、現イメージの中へMルーチン %MGRをリンクします。