• ベストアンサー

Apache2のモジュール作成方法

お世話になります。 Apache2のモジュール作成時、複数のソースファイルから構成される場合のMakefileの修正方法を教えてください。 Web上に沢山あるApacheモジュールの作成方法は一つのファイルで構成されるサンプルしかなく困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.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 --

miruha2011
質問者

お礼

ご回答ありがとうございます。 $(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)と書いてみましたが駄目でした。

その他の回答 (1)

  • entree
  • ベストアンサー率55% (405/735)
回答No.1

こんな感じでできませんか? apxs -i -a -c mod_target.c hoge.c fuga.c  ==> mod_target.soが生成

miruha2011
質問者

お礼

ご回答ありがとうございます。 変更されたソースだけをコンパイルするように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