mirror of
https://github.com/nginx/nginx.git
synced 2024-12-30 08:47:47 +08:00
23597e97f5
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.
179 lines
3.8 KiB
Plaintext
179 lines
3.8 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
|
|
|
|
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
|
|
$ngx_module_name\"
|
|
|
|
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
|