./configure実行後は、指定したオプションはconfig.statusファイルに書き込まれます。 このファイルは、指定したオプションでconfigureコマンドの実行を行うshell scriptとなっていますので、同じオプションで再度./configureを実行したい場合./configureの代わりに./config.statusを実行すると良いでしょう。
$ [CC=...] [CFLAGS_SHLIB=...] [TARGET=...] [OPTIM=...] [LD_SHLIB=...] [CFLAGS=...] [LDFLAGS_SHLIB=...] [INCLUDES=...] [LDFLAGS_SHLIB_EXPORT=...] [LDFLAGS=...] [RANLIB=...] [LIBS=...] [DEPS=...] ./configure [--quiet] [--prefix=DIR] [--enable-rule=NAME] [--verbose] [--exec-prefix=PREFIX] [--disable-rule=NAME] [--shadow[=DIR]] [--bindir=EPREFIX] [--add-module=FILE] [--show-layout] [--sbindir=DIR] [--activate-module=FILE] [--help] [--libexecdir=DIR] [--enable-module=NAME] [--mandir=DIR] [--disable-module=NAME] [--sysconfdir=DIR] [--enable-shared=NAME] [--datadir=DIR] [--disable-shared=NAME] [--includedir=DIR] [--permute-module=N1:N2] [--localstatedir=DIR] [--runtimedir=DIR] [--enable-suexec] [--logfiledir=DIR] [--suexec-caller=UID] [--proxycachedir=DIR] [--suexec-docroot=DIR] [--with-layout=[FILE:]ID] [--suexec-logfile=FILE] [--suexec-userdir=DIR] [--with-perl=FILE] [--suexec-uidmin=UID] [--without-support] [--suexec-gidmin=GID] [--without-confadjust] [--suexec-safepath=PATH]
$ ./configure \ --enable-module=rewrite \ --enable-shared=rewrite
例2:
Dynamic Link機能を有効にし、標準moduleをshared objectにする。
更に、--enable-module指定したmoduleもshared objectの対象になる。
$ ./configure \
--enable-shared=max
例3:
Dynamic Link機能を有効にし、ほとんどのmoduleをshared objectにする。
(「ほとんどのmodule」とは、全てのプラットフォームで使用できないサードパーティのライブラリを必要とするmod_auth_dbのようなものや使用するべきではないとされているmod_log_agentやmod_log_refererのようなものを除いた全てのmoduleです。)
$ ./configure \
--enable-module=most \
--enable-shared=max
例3が最も柔軟性のある指定で、インストール後に使用するmoduleをhttpd.confで選択する事ができる。 逆に言うと、shared objectとして作成したmoduleであっても、使用するためにはそのmoduleはhttpd.confで指定しておく必要が有る。 つまり、moduleを作成していても、指定しなければロードされない。
===> src/modules/extra
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` mod_so.c
rm -f libextra.a
ar cr libextra.a mod_so.o
ranlib libextra.a
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` -fPIC -DPIC -DSHARED_MODULE mod_unique_id.c && mv mod_unique_id.o mod_unique_id.lo
ld -Bshareable -o mod_unique_id.so mod_unique_id.lo
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` -fPIC -DPIC -DSHARED_MODULE mod_mime_magic.c && mv mod_mime_magic.o mod_mime_magic.lo
ld -Bshareable -o mod_mime_magic.so mod_mime_magic.lo
gcc -c -I../../os/unix -I../../include -DNETBSD -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` -fPIC -DPIC -DSHARED_MODULE mod_rewrite.c && mv mod_rewrite.o mod_rewrite.lo
mod_rewrite.c:92: mod_rewrite.h: No such file or directory
*** Error code 1
Stop.
この場合、src/modules/standard/mod_rewrite.hをsrc/modules/extraにコピーしました。
# cp -p src/modules/standard/mod_rewrite.h src/modules/extra/
同様に
===> src/modules/extra
....(中略)
mod_proxy.c:57: mod_proxy.h: No such file or directory
*** Error code 1
Stop.
この場合、src/modules/proxy/mod_proxy.hをsrc/modules/extraにコピーしました。
# cp -p src/modules/proxy/mod_proxy.h src/modules/extra/
HQP00700@nifty.ne.jp