- Author: Poechant
- Blog: blog.CSDN.net/Poechant
- Email: zhongchao.ustc#gmail.com (#->@)
- Date: March 4th, 2012
- Copyright © 柳大·Poechant
在configure
中運行完auto/options
腳本後,接着運行auto/init
腳本,其中所做的工作如下。
1 Makefile文件名變量
默認情況下是:
-
objs/Makefile
代碼如下:
NGX_MAKEFILE=$NGX_OBJS/Makefile
2 源文件名變量
默認情況下是:
-
objs/ngx_modules.c
代碼如下:
NGX_MODULES_C=$NGX_OBJS/ngx_modules.c
3 頭文件名變量
默認情況下是:
-
objs/ngx_auto_headers.h
-
objs/ngx_auto_config.h
代碼如下:
NGX_AUTO_HEADERS_H=$NGX_OBJS/ngx_auto_headers.h
NGX_AUTO_CONFIG_H=$NGX_OBJS/ngx_auto_config.h
4 自動測試文件名與配置錯誤文件名變量
默認情況下是:
-
objs/autotest
-
objs/autoconf.err
代碼如下:
NGX_AUTOTEST=$NGX_OBJS/autotest
NGX_AUTOCONF_ERR=$NGX_OBJS/autoconf.err
5 STUBS 相關變量
默認情況下是:
-
objs/autoconf.err
-
objs/Makefile
代碼如下:
# STUBs
NGX_ERR=$NGX_OBJS/autoconf.err
MAKEFILE=$NGX_OBJS/Makefile
6 PCH 相關變量
代碼如下:
NGX_PCH=
NGX_USE_PCH=
7 測試所在環境下"\c"和"-n"
由於 Nginx 支持多種操作系統,比如 Mac OS、Linux、Solaris 等。不同的系統下的 Shell 也小有差別。所以在auto/init
腳本中有如下兩個變量:
-
ngx_n
-
ngx_c
代碼如下:
# check the echo's "-n" option and "\c" capability
if echo "test\c" | grep c >/dev/null; then
if echo -n test | grep n >/dev/null; then
ngx_n=
ngx_c=
else
ngx_n=-n
ngx_c=
fi
else
ngx_n=
ngx_c='\c'
fi
8 創建並寫入 Makefile
還有兩個 targets,default 執行 build,clean 執行rm
-rf Makefile $NGX_OBJS
。
# create Makefile
cat << END > Makefile
default: build
clean:
rm -rf Makefile $NGX_OBJS
-
轉載請註明來自“柳大的CSDN博客”:blog.csdn.net/Poechant