プロが教えるわが家の防犯対策術!

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

A 回答 (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
--
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

$(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)と書いてみましたが駄目でした。

お礼日時:2011/12/27 16:58

こんな感じでできませんか?



apxs -i -a -c mod_target.c hoge.c fuga.c

 ==> mod_target.soが生成
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/22 17:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!