
./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