ngx_modules和ngx_module_names是configure脚本生成的,是在objs/ngx_modules.c文件中
与其生成的相关的脚本
在options脚本中定义了objs目录的变量
NGX_OBJS=objs
在init脚本中定义的最终存放ngx_modules的文件
NGX_MODULES_C=$NGX_OBJS/ngx_modules.c
modules和module
module脚本依赖几个变量
ngx_module_type
ngx_module_name
ngx_module_incs
ngx_module_deps
ngx_module_srcs
ngx_module_libs
ngx_module_link:DYNAMIC, YES,ADDON
获取所有的模块后,输出到ngx_modules.c文件中
cat << END > $NGX_MODULES_C
#include <ngx_config.h>
#include <ngx_core.h>
$NGX_PRAGMA
END
for mod in $modules
do
echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C
done
echo >> $NGX_MODULES_C
echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C
for mod in $modules
do
echo " &$mod," >> $NGX_MODULES_C
done
cat << END >> $NGX_MODULES_C
NULL
};
END
echo 'char *ngx_module_names[] = {' >> $NGX_MODULES_C
for mod in $modules
do
echo " \"$mod\"," >> $NGX_MODULES_C
done
cat << END >> $NGX_MODULES_C
NULL
};
END