Go to the first, previous, next, last section, table of contents.


新しい拡張モジュールの作成

h2xs コンパイラは、テンプレートのソースファイルと `Mekefile' を生成 できます。多くの拡張モジュールで、このテンプレートを叩き台として使うこと ができます。以下の例では、このドキュメントの RPC 関数を含む拡張モジュー ルを生成するために、どのように h2xs を使うのかを示します。

この拡張モジュールでは、自動ロード関数を使用しておらず、定数の定義もして いませんから、 -A オプションを h2xs に付けています。Perl のソース ディレクトリで実行すると、h2xs コンパイラは、 `ext/RPC' ディレクト リを作成し、 `RPC.xs'`RPC.pm'`Makefile.PL'`MANIFEST' というファイルをそこに置きます。RPC 関数の XS コードは、 `RPC.xs' ファイルに付け加えます。 `RPC.pm'@EXPORT リストは、 `RPC.xs' から、その関数をインクルードするように更新して おきます。

h2xs -An RPC

動的ローディングを行なう拡張モジュールのコンパイルには、

make dynamic

というコマンドを `ext/RPC' ディレクトリで実行します。拡張モジュール を Perl のバイナリに静的にリンクする場合には、Perlのソースディレクトリの `makefile' ( `Makefile' ではなく、 `makefile' を使います) を編集して、 `ext/RPC/RPC.a'static_ext 変数に追加します。 この変更を行なう前に、Perl を作ってないといけません。 `makefile' を 更新したあとで、

make

というコマンドを、Perl のソースディレクトリで実行します。

拡張モジュールを追加するために、Perl の Configure スクリプトを使うことも できます。この場合、Perl を作成する前に、Configure の実行に先立って、拡 張モジュールを Perl のソースディレクトリの ext ディレクトリに置いておく 必要があります。Configure を実行するときに、他の拡張モジュール共々、この 拡張モジュールが ext ディレクトリで発見されると、作成される拡張モジュー ルのリストに加えられます。make が実行されると、この拡張モジュールも、他 の拡張モジュールといっしょに、組み込まれることになります。

Configure は、拡張モジュールが、そのディレクトリ名と一致するXS ソースファ イルを用意しているときに、その存在を認識します。Configure は、Perl ソー スディレクトリの `MANIFEST' にあげられている、すべての `.SH' ファイルを抽出した後で、拡張モジュールのディレクトリにも `MANIFEST' ファイルがあると、そのファイルでも `.SH' ファイルを探して抽出します。 その後、Perl のソースディレクトリの `Makefile' が、拡張モジュールの ディレクトリ名に一致する XS ファイルを見つけると、そのディレクトリで make を実行します。


Go to the first, previous, next, last section, table of contents.

検索式: