精讀Nginx原始碼·自動指令碼篇(2)設定初始變數指令碼 auto/init
精讀 Nginx 原始碼·自動指令碼篇(2)設定初始變數指令碼 auto/init
- 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
-
相關文章
- 解剖Nginx·自動指令碼篇(2)設定初始變數指令碼 auto/initNginx指令碼變數
- 精讀 Nginx 原始碼·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx原始碼指令碼變數
- 解剖Nginx·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx指令碼原始碼變數
- 精讀 Nginx·自動指令碼篇(4)工具型指令碼系列Nginx指令碼
- 解剖Nginx·自動指令碼篇(6)編譯器名稱變數指令碼 auto/cc/nameNginx指令碼編譯變數
- 精讀Nginx原始碼·自動指令碼篇(1)如何讀取配置選項?Nginx原始碼指令碼
- 精讀Nginx·自動指令碼篇(5)編譯器相關主指令碼Nginx指令碼編譯
- 解剖Nginx·自動指令碼篇(1)解析配置選項指令碼 auto/optionsNginx指令碼
- 解剖Nginx·自動指令碼篇(4)工具型指令碼系列Nginx指令碼
- 解剖Nginx·自動指令碼篇(7)型別相關指令碼系列Nginx指令碼型別
- 解剖Nginx·自動指令碼篇(5)編譯器相關主指令碼Nginx指令碼編譯
- AIX 開機自啟動指令碼設定AI指令碼
- Ubuntu 設定開機自啟動指令碼Ubuntu指令碼
- 自動配置php、mysql、nginx的指令碼PHPMySqlNginx指令碼
- 設定自動匯出(exp)備份指令碼指令碼
- shell 指令碼常用 oracle 環境變數set 設定指令碼Oracle變數
- 自動ftp指令碼FTP指令碼
- 設定msyqlphp-fpm開機自動啟動指令碼PHP指令碼
- CentOS的System V init啟動指令碼CentOS指令碼
- Linux管理指令碼之自動執行指令碼Linux指令碼
- 使用vb指令碼讓電腦自動加入域原始碼指令碼原始碼
- ssh自動輸入密碼指令碼 切換目錄指令碼密碼指令碼
- specjvm自動化指令碼JVM指令碼
- 自動備份指令碼指令碼
- docker指令碼自動化Docker指令碼
- LNMP自動部署指令碼LNMP指令碼
- awr自動收集指令碼指令碼
- 自動化RMAN指令碼指令碼
- Linux下Oracle隨機自動啟動指令碼設定LinuxOracle隨機指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- 設定週期性自動執行備份指令碼指令碼
- CentOS7 nginx啟動指令碼CentOSNginx指令碼
- nginx重啟指令碼Nginx指令碼
- Nginx 重啟指令碼Nginx指令碼
- Dockerfile---指令碼自動化Docker指令碼
- Linux自啟動指令碼Linux指令碼
- Ceph 自動reweight指令碼指令碼
- hadoop自動提交指令碼Hadoop指令碼