automake在目录中添加所有c文件

nmx*_*ime 3 automake autoconf

在automake的Makefile.am中,程序的源代码如下所示:

bin_PROGRAMS = os345v1

os345v1_SOURCES = os345.c os345interrupts.c os345semaphores.c

而不是指定单个文件,而是如何在特定目录和子目录中添加所有c文件?

uml*_*ute 5

在automake中使用通配符通常是一个坏主意。

一方面,您的automake项目可能与非GNU make实现一起使用(可能无法使用GNU make扩展,例如$(wildcard *.c))进行处理。autotools / automake的优势之一是它与目标系统及其工具链无关。

更重要的是,automake可能实际上需要确切地知道要构建哪些源文件。例如,这在您要进行源代码外树构建时非常重要(例如,使用只读媒体上的源代码,并且构建在“其他位置”):这是分发的常见用例(例如Debian),可以在同一运行中轻松地从同一源构建多种口味(具有不同的配置标志)。

最后,不使用通配符可以保护您的构建免受杂散源代码的侵害。例如,具有“ foo.c”和备份文件“ foo_old.c”(例如,因为您正在重新实现“ foo”,并且想要检查旧的实现并希望您的编辑器自动启用语法突出显示)在同一文件夹中,可能会意外地生成两个文件,从而导致相同符号的多个定义。

又见automake的文档的automake为什么不支持通配符