5a3d86ff33
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.
178 lines
3.8 KiB
Text
178 lines
3.8 KiB
Text
|
|
# 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
|