wiki:tecsgen

Version 1 (modified by okuma-top, 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 リファレンスマニュアル トップページ]・

Note: See TracWiki for help on using the wiki.