配置文件strongswan.conf是經過STRONGSWAN_CONF讀取並加載的。html
經過source insight加載了strongswan整個工程文件(只包括.c和.h文件),發現沒有地方給STRONGSWAN_CONF賦值。3d
而在charon進程加載時,STRONGSWAN_CONF是有值的,這個值是從哪裏來的呢?htm
搜索了strongswan全部代碼,發現與STRONGSWAN_CONF有關的有以下幾處:blog
圖中顯示Makefile.am和Makefile.in中有STRONGSWAN_CONF相關的語句。進程
Makefile.in中的語句以下圖:字符串
gcc的參數「-D」含義以下:get
-Dmacrogcc
以字符串「1」定義 MACRO 宏配置
至關於C語言中的#define macro file
-Dmacro=defn
以字符串「defn」定義 MACRO 宏
至關於C語言中的#define macro defn
其餘參數介紹可參見:
https://www.cnblogs.com/zhangsir6/articles/2956798.html
實際make的時候執行的是Makefile。打開Makefile能夠看到,其中引用了Makefile.in和Makefile.am。
如此一來便追蹤到STRONGSWAN_CONF的源頭。
注:
打開strongswan的Makefile發現以下兩句註釋,能夠看出Makefile.am、Makefile.in和Makefile相生相依的關係。