starpack をビルドするには、a) tclkitランタイム、b) sdx.kitが必要です。また、tcl コードでラップされる実行可能ファイルである「basekit」も必要です。この例では、実行しているのと同じプラットフォーム用のアプリケーションを作成していると仮定します。tclkit (または Windows では tclkit.exe) を「basekit」などの別の名前にコピーするだけで、basekit を作成できます。
% ls
sdx.kit tclkit
% cp tclkit basekit
% ls
basekit sdx.kit tclkit
次に、実行可能ファイルにラップするコードを作成します。規則では、アプリの名前と接尾辞「.vfs」(「仮想ファイル システム」) を使用してディレクトリを作成し、そのディレクトリに「main.tcl」という名前のファイルを作成します。
% mkdir myapp.vfs
% cat > myapp.vfs/main.tcl
package require Tk
label .l -text "Hello, world"
pack .l
^D
% ls myapp.vfs
main.tcl
ラッピングを行うには、sdx.kit ファイルが必要です。それと tclkit (または tclkit.exe) が現在の作業ディレクトリにあると仮定すると、次のようにアプリをラップします。
% ./tclkit sdx.kit wrap myapp -runtime basekit
1 updates applied
% ls
basekit myapp myapp.vfs sdx.kit tclkit
wrap コマンドは、引数「myapp」を指定すると、myapp.vfs の内容をラップする必要があること、およびそのディレクトリでプログラムのエントリ ポイントとなる「main.tcl」という名前のファイルを探す必要があることを認識します。そのディレクトリに必要な他のファイルを配置すると、プラットフォーム固有のバイナリ ファイル、イメージ ファイル、およびバンドルしたいその他のファイルを含め、すべてラップされます。
これで、ラップされたアプリケーションである実行可能ファイル「myapp」が作成されました。
異なるアーキテクチャ用の tclkit がある場合は、それらを使用して (コマンド ラインの「basekit」をターゲット アーキテクチャ用のキットに置き換えます)、他のプラットフォーム用にクロスコンパイルできます。
詳細については、Tcl'ers Wikiで初めての Starpack を作成する方法を参照してください。