pkginfo ファイルでは、変数の定義は PARAM=value という形式になります。PARAM の最初の文字は大文字です。これらの変数は、インストール時にのみ評価されます。これらの変数を評価できない場合、pkgadd コマンドはエラーを返して異常終了します。
prototype ファイルでは、変数の定義は !PARAM=value または $variable の形式にできます。PARAM と variable はともに、大文字または小文字のどちらからでも始めることができます。構築時に値が既知の変数だけが評価されます。PARAM または variable が、構築変数またはインストール変数であり、その値が構築時に不明な場合、pkgmk コマンドはエラーを返して異常終了します。
また、PARAM=value は、オプションとして pkgmk コマンドに組み込むことができます。このオプションは、有効範囲がパッケージ全体に対してグローバルであるという点を除いて、prototype ファイルの中に指定されたものと同じように機能します。prototype ファイルでの !PARAM=value の定義は、そのファイルと、そのファイルで定義されているパッケージの部分に対してローカルです。
PARAM がインストール変数であり、variable が既知の値を持つインストール変数または構築変数である場合、その定義が pkgmk コマンドによって pkginfo ファイルに挿入され、その定義をインストール時に使用できるようになります。ただし、pkgmk コマンドは、prototype ファイルに指定されたパス名にある PARAM を評価しません。