🔗 Autoconf 语法指南
目前针对 –enable 和 –with 标志的标准是
- yes 表示强制启用,如果无法实现则构建失败。
- no 表示强制禁用,
- auto 表示尝试启用,如果缺少某些必需的组件则禁用。
对于 –with 标志,其他所有值通常被视为要使用的路径。尽管在某些情况下它是一个全局常量。
对于 –enable 标志,可以包含要启用的组件的模块化部分的列表。在这种情况下,
- 列出表示强制启用
- 省略表示强制禁用
🔗 Autoconf 中的组件宏
Squid 使用 autoconf 定义的宏在构建时消除实验性或可选组件。
- 传递给 automake 代码的变量名应以 ENABLE_ 开头
- 传递给 C++ 代码的 build/no-build 变量名应以 USE_ 开头
- 传递给 automake 或 C++ 且包含默认值的变量名应以 DEFAULT_ 开头
如果与系统变量发生冲突或潜在冲突,请在上述前缀后加上 SQUID_。即 ENABLE_SQUID_ 或 USE_SQUID_
# For --enable-foo / --disable-foo
AC_CONDITIONAL([ENABLE_FOO],[test "x${enable_foo:=yes}" = "xyes"])
SQUID_DEFINE_BOOL(USE_FOO,${enable_foo:=no},[Whether to enable foo.])
DEFAULT_FOO_MAGIC="magic"
AC_SUBST(DEFAULT_FOO_MAGIC)