■戻る■
■トップ■
■進む■
プロジェクトには、オプションとして、
build-prc や他のいくつかのユーティリティーに読み込まれるような、
定義ファイルを含む場合がある。
このファイルは、
データベースのヘッダフラグ、マルチセクションの名前、
エクスポートされたライブラリ関数、ハックで用いられる SysTrap のベクタ等、
プロジェクトの種々雑多なプロパティーを指定するのに使われる。
定義ファイルには、拡張子として `.def' をつける。
そのファイルには、自由な形式で、数値や文字列、コメント、キーワード、
様々な句読点が含まれる。
-
数値: 10 進数 (`37')、8 進数 (`045')、16 進数 (`0x25') で表現される。
-
文字列: シングルクオート (`'Hello'') 又は ダブルクオート (`"world"') でくくられる。C で用いられるようなエスケープシーケンス (`\t', `\n', `\'', `\"', `\\', `\177',
`\x7F', ...) も含む。
文字列にスペースが含まれず、キーワードと競合しない場合、クオートを省略できる。
-
コメント: C のスタイルのもの (`/* コメント */') や C++ のスタイルのもの ((`// から行の終りまで') はコメントとして無視される。
定義ファイルは、いくつかの条項から成り、以下のような文法を持つ:
clause-kind { specific-data... }
|
例えば、仮に、ビームを用いないとてつもなく大きいアプリケーションに対する定義ファイルを示す:
application { "Dr McCoy" DAFp copy-prevention }
/* This app has three code resources: code #1 with all unannotated
functions, #2 with functions placed in the "editfns" section,
and #3 with "viewfns" functions. */
multiple code { editfns viewfns }
|
注意: 定義ファイルの文法についてのいくつかの詳細は、
定義ファイルにあるべきものを分かりやすくするよう変更されている。
例えば、ファイル名をハンドルする最善の方法が何かは不明瞭である。
ファイルに現れるべきかどうか、
ハックのトラップは、
build-prc コマンドラインに対応するファイル名にマッチすべきかなど。
この条項でビルドされるプロジェクトと共に、
古いスタイルの build-prc コマンドで用いられるデータベースヘッダの属性を指定できる:
project-kind [ type ] { dbname crid miscellaneous... }
|
この条項は、ひとつしか書いてはならない。
また、他の条項より前に、ファイルの最初になければならない。
dbname、crid、type はそれぞれ、
データベース名、クリエータ ID、タイプを示す。
project-kind が database である場合を除いて、
タイプを省略でき、プロジェクトの種類に適したものが使用される。
project-kind は、bfd 実行形式のプロセスを制御し、
以下のうちひとつを選ぶことになる:
app
-
application
-
Palm OS アプリケーションをビルドする。
デフォルトのタイプは
appl である。
bfd 実行形式にあるコードセクションとデータセクションとが、
Palm OS の code 、data 、rloc リソース、
code #0 、pref #0 リソースに変換され、結合される。
glib
-
GLib 共有ライブラリをビルドする。
デフォルトのタイプは
GLib である。
bfd 実行形式のコードセクションとデータセクションとが、
GLib の code 、data 、rloc リソースに変換される。
syslib
-
システム共有ライブラリをビルドする。
デフォルトのタイプは
libr である。
bfd 実行形式のコードセクションが、
libr コードリソースに変換される。
システムライブラリは典型的に、それ自身のグローバルデータを持たないため、
data フラグを使用しないかぎり、
bfd 実行形式のデータセクションは変換されずに、ワーニングとして出力される。
hack
-
HackMaster のハックをビルドする。
デフォルトのタイプは
HACK である。
bfd 実行形式のコードセクションが、トラップの条項に従って処理される。
データセクションについては、build-prc からワーニングが出力される。
database
-
bfd 実行形式で特別なハンドリングを意味しない。
一般的なデータベースをビルドする。
この場合、type を省略してはならない。
データベース名とクリエータ ID とは、中括弧内の最初に来なければならない。
その後に以下の値を順不同で続ける:
read-only
-
appinfo-dirty
-
backup
-
ok-to-install-newer
-
reset-after-install
-
copy-prevention
-
stream
-
hidden
-
launchable-data
-
対応するデータベースヘッダ属性をセットする。
build-prc へオプションとして指定することで追加できる。
これらは、ハイフンの代わりに、アンダースコアを用いたり、省略できたりする
(`readonly'、`appinfo_dirty'、等)。
modification=num
-
modnum=num
-
modno=num
-
データベースヘッダへの修正番号をnum としてセットする。
version=num
-
データベースヘッダのバージョン番号を num としてセットする。
stack=size
-
アプリケーションに対して、
pref #0 リソースで要求されるスタックスペースのバイト数を
size としてセットする。
デフォルトは 4K が要求される。
data
-
システム共有ライブラリに対して、
bfd 実行形式のデータセクションを Palm OS データリソースへ変換するよう指定する。
このフラグがなければ、build-prc がシステム共有ライブラリをビルドするとき、
データセクションを変換する代わりにワーニングを出力する。
プロジェクトで必要とする関数の section 属性で使用する各セクション名を、
multiple code 条項で定義ファイルに列挙する:
multiple code { sectionname... }
|
実行形式にリクするのに必要なセクション名のアセンブリ言語のリストを生成するために、multigen で用いられる。
また、build-prc が、名前が付けられたコードセクションを、
.prc ファイルの番号が付けられたコードリソースにマッピングするのに用いられる。
build-prc は、実行形式において、この条項から省略されたセクションがある場合、
ワーニングを出力する。
この条項は、これから実装される。
次のようになるだろう。
export { function-name... }
|
この条項は、これから実装される。
次のようになるだろう。
trap { vector <filename> ... }
|
この条項は、これから実装される。
次のようになるだろう。
コマンドラインより、ファイルに列挙したほうが簡便だろう。
■戻る■
■トップ■
■進む■
|