解剖 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

發佈了9 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章