-sparcabi は、SPARC Compliance Definition に準拠している SPARC プラットフォーム で使われる(SVR4/Solaris 等)。
-intelabi は、System V Application Binary Interface に準拠している Intel プラッ トフォームで使われる(SVR4 等)。
-earlyR6abi は、ベンダが X11R6公式パッチ11 (またはそれ以前のもの)と X11R6公式パッ チ 12(またはそれ以降のもの)の間でバイナリ互換性を保ちたいと考える場合に、 -intelabi に付け加えて使われる。
-functionabi オプションを指定すると、文字列テーブルに関数 ABI が生成される。性能が 大幅に悪化するので、この機構は使わない方が良い。
-arrayperabi を用いると、文字列ごとに別々の配列が生成される。makestrs にコンパイル オプション -DARRAYPERSTR が付けられていた場合には、これがデフォルトの 動作である(こうなっていることはない)。
-defaultabi を使うと、makestrs が -DARRAYPERSTR オプション付きでコンパイルされてい ても、強制的に「通常の」文字列が生成される。makestrs が -DARRAYPERSTR オプション付きでコンパイルされることはまず無いので、ABI オプションが指 定されていないときは、これがデフォルトの動作である。
ワード内には1つ以上の #file ディレクティブを持つことができる。#file の それぞれは 1つ以上の #table ディレクティブを持つことができる。
#prefix ディレクティブは、makestr がそれぞれの定義の前に追加する文字列 を決定する。
#feature ディレクティブは、makestr が機能テストマクロ(例えば、 X[TM]STRINGDEFINES)のために使う文字列を決定する。
#externref ディレクティブは、makestr が外部宣言のために使う文字列を指 定する。これは通常 "extern" になるが、Motif においては "externalref" となる。
#externdef ディレクティブは、makestr が宣言のために使う文字列を指定す る。これは通常空文字列になるが(この場合には、"#externdef " のように末 尾に空白が必要な点に注意すること)、Motif においては "externaldef(_xmstrings)"となる。
#ctmpl ディレクティブは、生成される C 言語のソースのテンプレートとして 使われるファイルの名前を決定する。
#file <filename> ディレクティブのそれぞれは、コマンド行オプション で指定された適切な定義を含む名前によって、対応するヘッダとなる。 全てのヘッダファイルでの定義に対する宣言を含む、1つの C 言語のソースが 標準出力に出力される。
#htmpl ディレクティブは生成される C 言語のヘッダのテンプレートとして使 われるファイルの名前を決定する。
#table <tablename> ディレクティブのそれぞれは、ABI に従って処理される。 ほとんどのプラットフォームにおいては、全てのテーブルは繋げられて、その ファイルに対する最初のテーブルの名前を持つ1つのテーブルになる。 Intel ABI に準拠するため、指定された名前を使って別々のテーブルが生成さ れる。
#ctmpl と #htmpl ディレクティブによって指定されたテンプレートファイル は、テンプレートファイルから適切なファイルへと行ごとにコピーすることに よって処理される。文字列 <<<STRING_TABLE_GOES_HERE>>> を含む行は出力ファイルにはコピーされない。その後に、適切なデータが出力 ファイルにコピーされ、そしてテンプレートファイルの残りの部分が出力ファ イルにコピーされる。
System V Application Binary Interface, Third Edition, ISBN 0-13-100439-5 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ 07632
System V Application Binary Interface, Third Edition, Intel386 Architecture Processor Supplement ISBN 0-13-104670-5 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ 07632
System V Application Binary Interface, Third Edition, SPARC Architecture Processor Supplement ISBN 0-13-104696-9 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ 07632