配置文件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相生相依的关系。