- ベストアンサー
Apache2のモジュール作成方法
お世話になります。 Apache2のモジュール作成時、複数のソースファイルから構成される場合のMakefileの修正方法を教えてください。 Web上に沢山あるApacheモジュールの作成方法は一つのファイルで構成されるサンプルしかなく困っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Apache 2.2 で試してみましたが、modules.mkを編集すれば可能のようです。 foo.cとbar.cも必要な場合、以下のように編集すればうまく行くのではないかと。 -- mod_orz.la: mod_orz.slo foo.slo bar.slo $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_orz.lo foo.slo bar.slo DISTCLEAN_TARGETS = modules.mk shared = mod_orz.la --
その他の回答 (1)
- entree
- ベストアンサー率55% (405/735)
こんな感じでできませんか? apxs -i -a -c mod_target.c hoge.c fuga.c ==> mod_target.soが生成
お礼
ご回答ありがとうございます。 変更されたソースだけをコンパイルするようにMakefileでやりたいのです。 modules.mkを次のように変更してみましたが駄目でした。 mod_XXX.la:mod_XXX.slo $(OBJS)に指定している$(OBJS)が無視されてるみたいです。 mod_XXX.la:mod_XXX.slo aaa.slo bbb.slo ccc.slo と書いた時はaaa.c bbb.c ccc.cがコンパイルされました。 ------------------------ mod_XXX.la:mod_XXX.slo $(OBJS) $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_XXX.lo $(OBJS) DISTCLEAN_TARGETS = modules.mk shared = mod_XXX.la OBJS=aaa.slo bbb.slo ccc.slo aaa.o: aaa.c apxs -c aaa.c bbb.o: bbb.c apxs -c bbb.c ccc.o: ccc.c apxs -c ccc.c
お礼
ご回答ありがとうございます。 $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_orz.lo foo.slo bar.slo は $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_orz.lo foo.lo bar.lo でしょうか? あとできればfoo.slo bar.sloを変数のようにできないでしょうか? No1で追記しましたが、 OBJS=aaa.slo bbb.slo ccc.slo と定義して mod_XXX.la:mod_XXX.slo $(OBJS)と書いてみましたが駄目でした。