summaryrefslogtreecommitdiffhomepage
path: root/auto/module
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2020-11-10 17:13:20 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2020-11-10 17:13:20 +0300
commit23597e97f52316ef024796c5f1b5ca0d70ecff31 (patch)
tree645293bffc93bd840fd74693b94b277232f20771 /auto/module
parent3030907f5f57ca7087f8073e1559ba22f3004671 (diff)
downloadnginx-23597e97f52316ef024796c5f1b5ca0d70ecff31.tar.gz
nginx-23597e97f52316ef024796c5f1b5ca0d70ecff31.tar.bz2
Configure: shared sources for addon modules.
Addon modules, both dynamic and static, can now use shared source files. Shared sources result in only one make rule even if specified several times in different modules.
Diffstat (limited to 'auto/module')
-rw-r--r--auto/module44
1 files changed, 42 insertions, 2 deletions
diff --git a/auto/module b/auto/module
index a2b578db2..3857d04ca 100644
--- a/auto/module
+++ b/auto/module
@@ -17,7 +17,6 @@ if [ "$ngx_module_link" = DYNAMIC ]; then
done
DYNAMIC_MODULES="$DYNAMIC_MODULES $ngx_module"
- eval ${ngx_module}_SRCS=\"$ngx_module_srcs\"
eval ${ngx_module}_MODULES=\"$ngx_module_name\"
@@ -31,6 +30,30 @@ if [ "$ngx_module_link" = DYNAMIC ]; then
eval ${ngx_module}_ORDER=\"$ngx_module_order\"
fi
+ srcs=
+ shrd=
+ for src in $ngx_module_srcs
+ do
+ found=no
+ for old in $DYNAMIC_MODULES_SRCS
+ do
+ if [ $src = $old ]; then
+ found=yes
+ break
+ fi
+ done
+
+ if [ $found = no ]; then
+ srcs="$srcs $src"
+ else
+ shrd="$shrd $src"
+ fi
+ done
+ eval ${ngx_module}_SRCS=\"$srcs\"
+ eval ${ngx_module}_SHRD=\"$shrd\"
+
+ DYNAMIC_MODULES_SRCS="$DYNAMIC_MODULES_SRCS $srcs"
+
if test -n "$ngx_module_incs"; then
CORE_INCS="$CORE_INCS $ngx_module_incs"
fi
@@ -107,7 +130,24 @@ elif [ "$ngx_module_link" = ADDON ]; then
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
$ngx_module_name\"
- NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_module_srcs"
+ srcs=
+ for src in $ngx_module_srcs
+ do
+ found=no
+ for old in $NGX_ADDON_SRCS
+ do
+ if [ $src = $old ]; then
+ found=yes
+ break
+ fi
+ done
+
+ if [ $found = no ]; then
+ srcs="$srcs $src"
+ fi
+ done
+
+ NGX_ADDON_SRCS="$NGX_ADDON_SRCS $srcs"
if test -n "$ngx_module_incs"; then
eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\"