在automake的Makefile.am中,程序的源代码如下所示:
bin_PROGRAMS = os345v1
os345v1_SOURCES = os345.c os345interrupts.c os345semaphores.c
而不是指定单个文件,而是如何在特定目录和子目录中添加所有c文件?
在automake中使用通配符通常是一个坏主意。
一方面,您的automake项目可能与非GNU make实现一起使用(可能无法使用GNU make扩展,例如$(wildcard *.c))进行处理。autotools / automake的优势之一是它与目标系统及其工具链无关。
更重要的是,automake可能实际上需要确切地知道要构建哪些源文件。例如,这在您要进行源代码外树构建时非常重要(例如,使用只读媒体上的源代码,并且构建在“其他位置”):这是分发的常见用例(例如Debian),可以在同一运行中轻松地从同一源构建多种口味(具有不同的配置标志)。
最后,不使用通配符可以保护您的构建免受杂散源代码的侵害。例如,具有“ foo.c”和备份文件“ foo_old.c”(例如,因为您正在重新实现“ foo”,并且想要检查旧的实现并希望您的编辑器自动启用语法突出显示)在同一文件夹中,可能会意外地生成两个文件,从而导致相同符号的多个定义。
又见automake的文档的automake为什么不不支持通配符
| 归档时间: |
|
| 查看次数: |
2786 次 |
| 最近记录: |