=begin

$Id: recipe.ja.rd,v 1.12 2003/12/25 06:06:28 yuya Exp $

= Exerb - レシピファイル

((*注意 : このドキュメントには古い記述が含まれています。*))

* ((<1. 概要>))
* ((<2. 記述例>))
* ((<3. 自動生成>))
* ((<4. 書式>))
  * ((<4.1. コメント>))
  * ((<4.2. 文字コード指定>))
  * ((<4.3. コア名指定>))
  * ((<4.4. コアファイル名指定>))
  * ((<4.5. 出力ファイル名指定>))
  * ((<4.6. 圧縮指定>))
  * ((<4.7. Rubyスクリプト定義>))
  * ((<4.8. 拡張ライブラリ定義>))
  * ((<4.9. bRubyバイナリコード定義>))

== 1. 概要

レシピファイルは、実行ファイルに格納するRubyスクリプトや拡張ライブラリの
ファイル名や内部名を記述したテキストファイルです。
exerbコマンドはレシピファイルを元にアーカイブを作成し、コアと結合して
実行ファイルを生成します。

生成された実行ファイルは、レシピファイル内で一番最初に定義されたRubyスクリプト
（またはbRubyバイナリコード）から実行が開始されます。

レシピファイルの拡張子には(({rbc}))を使用することが推奨されています。

== 2. 記述例

  # example
  kcode	sjis
  script	foo.rb
  script	bar.rb	src/bar.rb
  library	Win32API.so	lib/Win32API.so

== 3. 自動生成

レシピファイルは、(({exerb/mkrbc.rb}))を使って自動生成することができます。
(({ruby}))コマンドの(({-r}))オプションに(({exerb/mkrbc.rb}))を指定してRuby
スクリプトを実行すると、実行時に(({require}))されたファイルの情報を元に、レシピ
ファイルを生成します。

下記のコマンドでfoo.rbの実行後にレシピファイル(foo.rbc)が生成されます。

  $ ruby -r exerb/mkrbc foo.rb

== 4. 書式

レシピファイルは単なるテキストファイルで、指定子とパラメータを((*1個以上タブ*))
で区切って記述します。
1行には1つの指定子を記述することができます。
[]で括られたパラメータは省略可能です。

レシピファイルの書式は下記の通りです。

=== 4.1. コメント

  # comment

((*#*))で始まる行はコメントです。
指定子の後にコメントを記述することはできません。

=== 4.2. 文字コード指定

  kcode <code>

((*kcode*))は文字コード指定子です。

((|code|))に指定できる文字コードは下記の通りです。

* none - 指定なし
* euc - EUC
* sjis - ShiftJIS
* utf8 - UTF8

=== 4.3. コア名指定

  corename <name>

((*corename*))はコア名指定子です。

((|name|))に使用するコアの名前を指定します。
(({exerb}))コマンドの(({--corename}))オプションと同時に指定された場合、
(({--corename}))オプションでの指定が優先されます。

=== 4.4. コアファイル名指定

  corefile <path>

((*corefile*))はコアファイル名指定子です。

((|path|))に使用するコアファイルのパスを指定します。
((|path|))はレシピファイルからの相対パス、または絶対パスで指定します。
(({exerb}))コマンドの(({--corefile}))オプションと同時に指定された場合、
(({--corefile}))オプションでの指定が優先されます。

=== 4.5. 出力ファイル名指定

  output <path>

((*output*))は出力ファイル名指定子です。

((|path|))に生成された実行ファイルの出力ファイル名を指定します。
((|path|))はレシピファイルからの相対パス、または絶対パスで指定します。
(({exerb}))コマンドの(({--output}))オプションと同時に指定された場合、
(({--output}))オプションでの指定が優先されます。

=== 4.6. 圧縮指定

  compress <bool>

((*compress*))はアーカイブ圧縮指定子です。

((|bool|))にアーカイブ圧縮の有効/無効を(({yes}))/(({no}))で指定します。
(({exerb}))コマンド(({--compress}))オプションが指定された場合には、((|bool|))で
指定された値にかかわらず、アーカイブ圧縮が有効になります。

=== 4.7. Rubyスクリプト定義

  script <internal_name> [<path>]

((*script*))はRubyスクリプト定義です。

((|internal_name|))は実行ファイル内に格納された時のファイル名です。
((|internal_name|))は(({require}))、バックトレースなどで使用されます。

((|path|))は実際に格納するRubyスクリプトのファイル名です。
((|path|))はレシピファイルからの相対パス、または絶対パスで指定します。

((|internal_name|))と((|path|))が同一の場合は、後者を省略することができます。

=== 4.8. 拡張ライブラリ定義

  library <internal_name> <path>

((*library*))は拡張ライブラリ定義です。

((|internal_name|))、((|path|))については((<4.7. Rubyスクリプト定義>))と同様
です。

拡張ライブラリは、mswin32版、mingw32版、cygwin版のすべてを使用することが
できます。
ただし、cygwin版は実験以外の用途で使用しないでください。

=== 4.9. bRubyバイナリコード定義

  binary <internal_name> <path>

((*binary*))はbRubyバイナリコード定義です。

((|internal_name|))、((|path|))については((<4.7. Rubyスクリプト定義>))と同様
です。

Exerbコアに組み込まれているbRubyと同一バージョンのbRubyで生成したバイナリコード
を使用することができます。

=end
