This link提到通配符是一种在Makefile.am文件中自动列出SOURCES和HEADERS的方法。它还提到有些人编写外部脚本来生成这些文件。
你知道在这里自动包含所有* .h * .cpp的标准方法吗,或者我应该编写自己的Perl脚本来生成它们。您是否已经使用了这样的脚本?
PS:我根据目录的以下纯逻辑分离来组织项目中的源文件:
src/dog/woof.h
src/dog/woof.cpp
src/cow/moo.h
src/cow/moo.cpp
答案 0 :(得分:3)
Automake不会添加此功能。它假定特定的.h或.cpp文件与特定项目相关联。该假设适用于许多常见的项目布局,并且对于任何不同的布局都会失败。
例如,我有一些项目是
src/module/code
src/app/code
src/library/code
include/headers
从根目录中的一个中央makefile构建。其他时候,我在相应的本地目录中使用了四个makefile构建的相同布局。
项目有很多变化。有些公共头文件与代码目录中的私有头文件混合在一起,有些将它们分开。有些构建共享对象库,有些则不构建。某些船舶代码不支持在不兼容的平台上编译。
加入外卡实际上会增加限制功能的风险,对于那些做'file.template.c'之类的奇怪人来说这样做会是致命的。
如果你认为它是automake的一个缺陷,那很好;然而,这是自动化所包含的缺陷之一,因为它保留了使事情变得更加灵活的努力。 Automake没有强加“你如何”做事,它提供了许多支持工具,但它确保你没有被迫采用一种“方法”来布局或构建代码。< / p>