Version 1 (modified by 8 years ago) ( diff ) | ,
---|
tecsgen コマンドリファレンス
《名前》
tecsgen -- TECS ジェネレータ
《使用方法》
% tecsgen [OPTION] CDL-File
《説明》
TECS ジェネレータ tecsgen は、TECS コンポーネント記述 (TECS CDL) ファ イルを入力として、TECS のインタフェースコードやセルの記憶域を定義する コードを生成します.
以下のオプションを指定できます.
-D, --define=def
import_C でヘッダファイルを取込む際の C のプリプロセッサに与え る define を定義します.ここで指定されたものは tecsgen の出力 Makefile.templ のコンパイルコマンドの引数に引き継がれます.
-G, --generate-region=path
コード生成するリージョンを限定します.指定されたリージョンのみ コード生成されます.複数のリージョンを指定することができます. コード生成するリージョンからコード生成しないリージョンへの結合 は、エラーとなります.
-I, --improt-path=path
import で取込む CDL ファイルのパス、および import_C でヘッダファ イルを取込む際に C のプリプロセッサに与える include パスを指 定します. tecsgen の引数で指定された CDL ファイルを取込む際にも、このオ プションで指定されたパスをサーチします. ここで指定されたものは tecsgen の出力 Makefile.templ のコンパ イルコマンドの引数に引き継がれます.
-L, --library-path=path
(obsolete) ruby のライブラリパスを指定します.環境変数 RUBYLIB でも指定できます.tecsgen/tecslib へのパスが指定される必要が あります. tecsgen.rb のパスから tecsgen/tecslib へのパスを求めるため、通 常このオプションを指定する必要はなくなりました (V1.2.1.4). TECS ジェネレータに付属していないプラグインを呼び出す場合には、 このオプションでプラグインの所在を指定する必要があります(Ruby 1.8 では不要)。
-R, --RAM-initializer generate RAM initializer
RAM の初期値を設定するための初期化コードが生成されます.本オプ ションが指定された場合 RAM 領域は未初期化変数として出力される ため、初期化コードを実行する必要があります.初期化コード INITIALIZE_TECS() (global_tecsgen.h にマクロ定義) を呼び出 すことにより初期化されます. RAM only オプション -r が指定された場合、本オプションは無視さ れます.
-U, --unoptimize
最適化を無効にします.
-c, --cpp=cpp_cmd
C プリプロセッサコマンドを指定します.デフォルトでは 'gcc -E -D TECSGEN' です. 環境変数 TECS_CPP により指定することができます.
-d, --dryrun
処理を実行しますがインタフェースコードは生成されません.TECS コンポーネント記述の文法誤りをチェックすることができます.
-f, --force-overwrite
出力を強制上書きします.デフォルトでは、内容に変化のあった出力 ファイルのみ更新します.
-g, --gen=dir
インタフェースコードなどを生成するディレクトリを指定します.デ フォルトでは、カレントディレクトリの下の 'gen' ディレクトリに 出力されます.
-i, --idx_is_id
すべての celltype で指定子 idx_is_id が指定されたものとして扱 います.
-k, --kcode=code
文字コードを指定します.code は euc, sjis, none, utf8 のいずれ かを指定可能です. 通常 LANG 環境変数で指定します。
-o, --old-mode
古い TECS 仕様のコードを生成します. 古い仕様では int8_t -> tecs_int8 などに変換されました.
-r, --ram
RAM のみで動作するコードを生成します.デフォルトでは attribute など ROM (const)領域に配置するコードが生成されます.
-s, --show-tree
パースツリーを表示します. tecsgen のデバッグに使用します.
-t, --generator-debug
tecsgen のデバッグする場合に使用します.パーサーが取込んだトー クンを逐次表示します.コード生成段階で内部エラーが発生した場合 には、スタックトレースを表示します. factory はコード生成時にエラーが発生することがあります.その場 合、どのfactory でエラーが発生したかを知るための情報が表示され ます.
-u, --unique-id
idx_is_id により付与される ID (整数)は、デフォルトでは各セル タイプごとに 1 から始まる番号が割付けられます.本オプションが 与えられた場合、すべてのセルで異なる ID が割付けられます.
-v, --verbose
いくらかの情報を出力します. ・プロトタイプ宣言されているが、存在しないセル ・ロードするプラグイン ・through により実行される ruby スクリプト ・C プリプロセッサコマンド ・セルタイプごとの実施された最適化
-y, --yydebug
tecsgen のパーサー部をデバッグするために使用します.bnf.tab.rb のかわりに bnf-deb.tab.rb が使用されます.
--no-banner
バナーを表示しません.
--version
tecsgen の version を表示します.
--generate-all-template
すべてのセルタイプのテンプレートを生成します. デフォルトでは tecsgen は、セルが一つも生成されないセルタイプ、 再利用されているセルタイプ(import時、山括弧文字列 <file.cdl> 指定されている)のテンプレートを生成しません.
--generate-no-template
テンプレートを生成しません(セルタイプ、 Makefile とも).
--generate-all-template と同時指定された場合、このオプションが 優先されます.
--no-default-import-path
デフォルトで tecsgen/tecs へのパスを -I に加えます.このオプショ ンを指定すると、その -I の指定を抑止します.
--c-suffix=c C program suffix (default: c)
生成する C 言語のファイルの拡張子を指定します.C++ コンパイラ を使用する場合には C++ の拡張子を指定します.
--h-suffix=h C program header suffix (default: h)
生成する C 言語のヘッダファイルの拡張子を指定します.
以下のものが出力されます.
・ヘッダファイル (global_tecsgen.h, CELLTYPE_tecsgen.h, CELLTYPE_factory.h) ・セルタイプtecsgenコード (CELLTYPE_tecsgen.c) ・セルタイプコードテンプレート (CELLTYPE_templ.c, CELLTYPE_inline_temple.h) ・Makefile (Makefile.templ, Makefile.tecsgen, Makefile.depend) ・中間ファイル
・プラグインにより生成されるコンポーネント記述 ・取込まれる C のヘッダファイル
出力物の使用方法については、TECS 仕様書 (draft版) の付録を参照してください.
セルタイプコードテンプレートは、以下のように出力されます。
・ 山括弧 <> で囲まれて import された CDL ファイルで定義されているセル
タイプのテンプレートファイルは出力されません (--generate-all-template を参照)
・セルタイプの受け口がすべて inline である場合、テンプレートヘッダファ
イルのみ出力されます.Makefilte.tecsgen で TECS_COBJS にも含まれませ ん.
・セルタイプの受け口がすべて inline であってもアクティブである場合、C
言語テンプレートファイルも出力されます.Makefilte.tecsgen で TECS_COBJS にも含まれます.
《終了ステータス》
0 … 正常終了 1 … エラー
エラーには、CDL ファイルの文法誤りの他、入力ファイルの読み込みや出力ファ イルの作成の失敗があります.警告 (warning) の発生は、エラーとはみなさ れません.
[TECS リファレンスマニュアル トップページ]・