🔗 Automake 语法指南
标有 ENFORCED 的详细信息由源代码测试机制进行检查和强制执行。
🔗 Makefile 替换变量
强制执行
- Makefile.am 必须使用 $(DEFAULT_FOO) 形式,用于通过 AC_SUBST(DEFAULT_FOO) 传递的 autoconf 变量。
🔗 文件命名
- .h 文件应该只声明一个类或一组简单、密切相关的类。
- 没有两个文件名仅因大小写不同而不同
- 对于新文件组,请遵循 Features/SourceLayout
- 便利库的命名应与其所在的子目录同名。例如;foo/libfoo.la 或 foo/libfoosomething.la
- 便利库名称必须只包含字母数字字符 0-9 a-z,避免使用大写字母或标点符号
强制执行
- .h 文件必须可以被解析为单个翻译单元。换句话说,它必须包含其依赖的头文件 / 前向声明类,视需要而定
🔗 Automake 中的组件宏
Squid 使用 autoconf 定义的宏在构建时消除实验性或可选组件。
- 传递给 automake 代码的变量名称应以 ENABLE_ 开头
示例用法
if ENABLE_FOO
FOO_SRC=foo.h foo.cc
FOO_LIBS=foo.la
else
FOO_SRC=
FOO_LIBS=
endif
squid_SOURCES= $(FOO_SRC) ...
LDADD = $(FOO_LIBS)