mirror of
https://github.com/nginx/nginx.git
synced 2025-07-20 19:27:29 +08:00

Previously, $ngx_module_order was respected only for DYNAMIC modules. The fix is to make the filters order the same regardless of module linking type.
210 lines
4.6 KiB
Plaintext
210 lines
4.6 KiB
Plaintext
|
|
# Copyright (C) Ruslan Ermilov
|
|
# Copyright (C) Nginx, Inc.
|
|
|
|
|
|
case $ngx_module_type in
|
|
HTTP_*) ngx_var=HTTP ;;
|
|
*) ngx_var=$ngx_module_type ;;
|
|
esac
|
|
|
|
|
|
if [ "$ngx_module_link" = DYNAMIC ]; then
|
|
|
|
for ngx_module in $ngx_module_name; do
|
|
# extract the first name
|
|
break
|
|
done
|
|
|
|
DYNAMIC_MODULES="$DYNAMIC_MODULES $ngx_module"
|
|
|
|
eval ${ngx_module}_MODULES=\"$ngx_module_name\"
|
|
|
|
if [ -z "$ngx_module_order" -a \
|
|
\( "$ngx_module_type" = "HTTP_FILTER" \
|
|
-o "$ngx_module_type" = "HTTP_AUX_FILTER" \) ]
|
|
then
|
|
eval ${ngx_module}_ORDER=\"$ngx_module_name \
|
|
ngx_http_copy_filter_module\"
|
|
else
|
|
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
|
|
|
|
if test -n "$ngx_module_deps"; then
|
|
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps"
|
|
fi
|
|
|
|
libs=
|
|
for lib in $ngx_module_libs
|
|
do
|
|
case $lib in
|
|
|
|
LIBXSLT | LIBGD | GEOIP | PERL)
|
|
libs="$libs \$NGX_LIB_$lib"
|
|
|
|
if eval [ "\$USE_${lib}" = NO ] ; then
|
|
eval USE_${lib}=DYNAMIC
|
|
fi
|
|
;;
|
|
|
|
PCRE | OPENSSL | ZLIB)
|
|
eval USE_${lib}=YES
|
|
;;
|
|
|
|
MD5 | SHA1)
|
|
# obsolete
|
|
;;
|
|
|
|
*)
|
|
libs="$libs $lib"
|
|
;;
|
|
|
|
esac
|
|
done
|
|
eval ${ngx_module}_LIBS=\'$libs\'
|
|
|
|
elif [ "$ngx_module_link" = YES ]; then
|
|
|
|
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
|
|
$ngx_module_name\"
|
|
|
|
eval ${ngx_var}_SRCS=\"\$${ngx_var}_SRCS $ngx_module_srcs\"
|
|
|
|
if test -n "$ngx_module_incs"; then
|
|
eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\"
|
|
fi
|
|
|
|
if test -n "$ngx_module_deps"; then
|
|
eval ${ngx_var}_DEPS=\"\$${ngx_var}_DEPS $ngx_module_deps\"
|
|
fi
|
|
|
|
for lib in $ngx_module_libs
|
|
do
|
|
case $lib in
|
|
|
|
PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
|
|
eval USE_${lib}=YES
|
|
;;
|
|
|
|
MD5 | SHA1)
|
|
# obsolete
|
|
;;
|
|
|
|
*)
|
|
CORE_LIBS="$CORE_LIBS $lib"
|
|
;;
|
|
|
|
esac
|
|
done
|
|
|
|
elif [ "$ngx_module_link" = ADDON ]; then
|
|
|
|
if [ -n "$ngx_module_order" -a \
|
|
\( "$ngx_module_type" = "HTTP_FILTER" \
|
|
-o "$ngx_module_type" = "HTTP_AUX_FILTER" \) ]
|
|
then
|
|
before=
|
|
found=no
|
|
for mod in $ngx_module_order; do
|
|
if [ "$found" = yes ]; then
|
|
before="$mod"
|
|
break
|
|
fi
|
|
|
|
if [ "$mod" = "$ngx_module_name" ]; then
|
|
found=yes
|
|
fi
|
|
done
|
|
|
|
vname="${ngx_module_type}_MODULES"
|
|
eval modules=\$$vname
|
|
new_modules=
|
|
for mod in $modules; do
|
|
if [ "$mod" = "$before" ]; then
|
|
new_modules="$new_modules $ngx_module_name"
|
|
fi
|
|
|
|
new_modules="$new_modules $mod"
|
|
done
|
|
|
|
eval ${ngx_module_type}_MODULES=\"$new_modules\"
|
|
else
|
|
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
|
|
$ngx_module_name\"
|
|
fi
|
|
|
|
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\"
|
|
fi
|
|
|
|
if test -n "$ngx_module_deps"; then
|
|
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps"
|
|
fi
|
|
|
|
for lib in $ngx_module_libs
|
|
do
|
|
case $lib in
|
|
|
|
PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
|
|
eval USE_${lib}=YES
|
|
;;
|
|
|
|
MD5 | SHA1)
|
|
# obsolete
|
|
;;
|
|
|
|
*)
|
|
CORE_LIBS="$CORE_LIBS $lib"
|
|
;;
|
|
|
|
esac
|
|
done
|
|
fi
|