|
src から src/main に移されています。
src にあったモジュールソースファイルは、src/modules/standard に移されています。
support ディレクトリは今、src/support にあります。
src/os ディレクトリで追加されます。現在、これは unix 、OS/2、Windows 32、のプラットフォームの情報を含んでいます。
Configuration syntax は新しいモジュールを追加することにより単純化されています。ユーザはもはや、モジュール構成の名前を入力する必要があります。さらに、新しいモジュールはファイルシステム上のどこかに配置されるか、src/modulesにある普通に新しいか、もしくは存在するディレクトリに配置されます。
Configure によって要求されたコンパイル時の情報も与えることができます。
Configure によって要求された情報を含んでいる"module definition file"に従って、コンパイルされる前 (.a または .o) のバージョンのモジュールを配布することができます。
src/Configuration でリファレンスを追加することによって Apache に加えられます。1.3 より前の Apache のバージョンでは、コンフィギュレーションに加えられた行はこのように見えます:
Module status_module mod_status.o1.3 から先では、
AddModule 行が代わりに使われ、普通はこのように見えます:
AddModule modules/standard/mod_status.oAddModule に対する引数は、
src やモジュールファイルのソース、オブジェクトファイルに相対するパスです。
普通モジュールを追加するときは、モジュール author の命令に従うべきです。しかしながら、単一のソースファイルとしてモジュールが生じると、mod_foo.c を示し、それから以下のように、推奨されたApache にモジュールを追加する方法を示します:
mod_foo.c into the directory
src/modules/extra
src directory and add the following line
to ConfigurationAddModule modules/extra/mod_foo.o
./Configuremakesrc ディレクトリに追加され、もしモジュールが追加のコンピレーションのオプションを要求すると(ライブラリのように)、それは Configuration に追加されます。
ユーザはまた、Configuration のモジュール行に追加するためのモジュールの構造名を教えなければなりません。
Apache 1.3 以降から、モジュール authors はこれらの新しい特徴を利用することができます:
Configuration が命令します。
src/modules 下のディレクトリが推奨されています。
src/modules ディレクトリにあるこのアーカイブを解凍するように言われます。これは新しいディレクトリである src/modules/mod_demo を作ります。それから、Configuration ファイルに以下の行を追加する必要があります:
AddModule modules/mod_demo/mod_demo.oそれから普通に
Configure と make を実行します。
mod_demo/Makefile.tmpl はモジュールソースの依存を含むべきです。例えば、いくつかの標準 Apache モジュール API 機能のインターフェースとなる、単純なモジュールは、このようになるかもしれません:
mod_demo.o: mod_demo.c $(INCDIR)/httpd.h $(INCDIR)/http_protocol.hもしユーザが
Configure を実行すると、Apache はこのモジュールを構築するために、完全な makefile を作ります。もしこのモジュールもライブラリのように、与えられるいくつかの追加の構築時のオプションを要求するなら、次のセクションを見てください。
もしモジュールもヘッダファイルに付属すると、これらはアーカイブに追加されます。もしモジュールが様々なソースファイルから構成されていると、与えられた makefile を使っているライブラリファイルに構築されます。この場合、mod_demo/Makefile として makefile を配布し、mod_demo/Makefile.tmpl を含まないでください。もし Configure が Makefile.tmpl を見ると、なんらかの存在する Makefile を上書きするのを安全だと見なします。
Makefile.tmpl から makefile が自動的に作られるモジュールディレクトリの例については、Apache src/modules/standard を見てください(このディレクトリも、単一のディレクトリで様々なモジュールをどのように配布しているのかを示していることに注意してください)。
カスタムの makefile (それぞれにライブラリとオブジェクトファイルを構築するための)を使って構築されたモジュールの例としては src/modules/proxy と src/modules/example を見てください
Configure によって使われる情報を含んでいます。例えば、もし上の例の mod_demo が DBM ライブラリに対してリンクされた Apache を要求すると、以下のテキストは mod_demo.c のソースに挿入されます:
/*
* Module definition information - the part between the -START and -END
* lines below is used by Configure. This could be stored in a separate
* instead.
*
* MODULE-DEFINITION-START
* Name: demo_module
* ConfigStart
LIBS="$LIBS $DBM_LIB"
if [ "X$DBM_LIB" != "X" ]; then
echo " + using $DBM_LIB for mod_demo"
fi
* ConfigEnd
* MODULE-DEFINITION-END
*/
これは、コンパイラからそれを隠すための C 言語のコメントの内側に含まれることに注意してください。 MODULE-DEFINITION-START と MODULE-DEFINITION-END を含んでいる行間は Configure に使われます。Name: 行はモジュールの構造名を与えます。もしファイル名を基にして推測する Configure がなければ、これはこの場合には実際必要ありません(すなわち、与えられた "mod_demo" で、 "mod_" の先導を外し、構造名を得るために "_module" をアペンドします。これは、Apache で配布された全てのモジュールと協力します)。
Configure によって実行されるような、ConfigStart と ConfigEnd の間にある行はコンパイル時のオプションとライブラリを追加するために使われます。この場合には、($DBM_LIBから) DBM ライブラリを標準のコンピレーションライブラリ($LIB) に追加して、メッセージを表示します。
内蔵されたモジュールの定義の例については、デフォルト配布の mod_auth_dbm.c を見てください。
.module の拡張子で、オブジェクトやライブラリファイルのような、同じベース名を持つ分割ファイルに置かれます。例えば、もし配布されたモジュールのオブジェクトファイルが mod_demo.o なら、モジュール定義ファイルは mod_demo.module を呼ばれるべきです。上にあるように、同じ情報を含んでいますが、 MODULE-DEFINITION-START 等で範囲を制限されたり、内部の C コメントである必要はありません。例えば:
Name: demo_module
ConfigStart
LIBS="$LIBS $DBM_LIB"
if [ "X$DBM_LIB" != "X" ]; then
echo " + using $DBM_LIB for mod_demo"
fi
ConfigEnd
個々のモジュール定義ファイルの例についてはデフォルト配布の mod_auth_db.module を見てください。
The English original manual is here.