summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES5
-rw-r--r--docs/manual/programs/configure.xml15
-rw-r--r--modules/config5.m429
3 files changed, 33 insertions, 16 deletions
diff --git a/CHANGES b/CHANGES
index ecd89f8496..6928574938 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,11 @@ Changes with Apache 2.1.3
[Remove entries to the current 2.0 section below, when backported]
+ *) --with-module can now take more than one module to be statically
+ linked: --with-module=<modtype>:<modfile>,<modtype>:<modfile>,...
+ If the <modtype>-subdirectory doesn't exist it will be created and
+ populated with a standard Makefile.in. [Erik Abele]
+
*) Remove some compiler warnings within the LDAP modules [Graham Leggett]
*) Add a build script to create a solaris package. [Graham Leggett]
diff --git a/docs/manual/programs/configure.xml b/docs/manual/programs/configure.xml
index ab3c7c0717..87c532ddc4 100644
--- a/docs/manual/programs/configure.xml
+++ b/docs/manual/programs/configure.xml
@@ -636,16 +636,17 @@
modules use the following options:</p>
<dl>
- <dt><code>--with-module=<var>module-type</var>:<var>module-file</var>
- </code></dt>
- <dd><p>Add a third-party module to the list of statically linked
+ <dt><code>--with-module=<var>module-type</var>:<var>module-file</var>[,
+ <var>module-type</var>:<var>module-file</var>]</code></dt>
+ <dd><p>Add one or more third-party modules to the list of statically linked
modules. The module source file <code><var>module-file</var></code>
will be searched in the <code>modules/<var>module-type</var></code>
- subdirectory of your Apache HTTP server source tree so it has to be
- placed there before. If it is not found here
- <code>configure</code> is considering <var>module-file</var> to be
+ subdirectory of your Apache HTTP server source tree. If it is not found
+ there <code>configure</code> is considering <var>module-file</var> to be
an absolute file path and tries to copy the source file into the
- <var>module-type</var> subdirectory.</p>
+ <var>module-type</var> subdirectory. If the subdirectory doesn't
+ exist it will be created and populated with a standard
+ <code>Makefile.in</code>.</p>
<p>This option is useful to add small external modules consisting of
one source file. For more complex modules you should read the
vendor's documentation.</p>
diff --git a/modules/config5.m4 b/modules/config5.m4
index efc8ed5af0..10f525bed4 100644
--- a/modules/config5.m4
+++ b/modules/config5.m4
@@ -3,19 +3,25 @@ AC_ARG_WITH(module,
APACHE_HELP_STRING(--with-module=module-type:module-file,
Enable module-file in the modules/<module-type> directory.),
[
- modtype=`echo $withval | sed -e's/\(.*\):.*/\1/'`
- pkg=`echo $withval | sed -e's/.*:\(.*\)/\1/'`
+ as_save_IFS="$IFS"; IFS=","
+ for mod in $withval
+ do
+ modtype=`echo $mod | sed -e's/\(.*\):.*/\1/'`
+ pkg=`echo $mod | sed -e's/.*:\(.*\)/\1/'`
modfilec=`echo $pkg | sed -e 's;^.*/;;'`
modfileo=`echo $pkg | sed -e 's;^.*/;;' -e 's;\.c$;.o;'`
-
- if test "x$withval" != "xmodules/$modtype/$modfilec"; then
- cp $pkg modules/$modtype/$modfilec
+ modpath_current="modules/$modtype"
+ if test "x$mod" != "x$modpath_current/$modfilec"; then
+ if test ! -d "$modpath_current"; then
+ mkdir $modpath_current
+ echo 'include $(top_srcdir)/build/special.mk' > $modpath_current/Makefile.in
+ fi
+ cp $pkg $modpath_current/$modfilec
fi
- module=`echo $pkg | sed -e 's;.*/mod_\(.*\).c;\1;'`
+ module=`echo $pkg | sed -e 's;\(.*/\)*mod_\(.*\).c;\2;'`
objects="mod_$module.lo"
# The filename of a convenience library must have a "lib" prefix:
libname="lib$module.la"
- modpath_current="modules/$modtype"
BUILTIN_LIBS="$BUILTIN_LIBS $modpath_current/$libname"
if test ! -s "$modpath_current/modules.mk"; then
cat >>$modpath_current/modules.mk<<EOF
@@ -38,9 +44,14 @@ EOF
mv $modpath_current/modules.mk.tmp $modpath_current/modules.mk
fi
MODLIST="$MODLIST $module"
+ EXTRA_MODLIST="$EXTRA_MODLIST $modtype:$modfilec"
MODULE_DIRS="$MODULE_DIRS $modtype"
APACHE_FAST_OUTPUT($modpath_current/Makefile)
- AC_MSG_RESULT(added $withval)
+ done
+ if test ! -z "$EXTRA_MODLIST"; then
+ AC_MSG_RESULT(added:$EXTRA_MODLIST)
+ fi
+ IFS="$as_save_IFS"
],
- [ AC_MSG_RESULT(no extra modules)
+ [ AC_MSG_RESULT(none)
])