我想在零件的一个Makefile.am
文件中包含许多文件xxx_SOURCES = ...
。有没有办法在那里使用典型的外壳扩展?我正在寻找的是一个等效的工作:
xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
我不知道这是否是最好的方法,但这是我一直在做的:
xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)
1)在可移植的 Make 语法中没有办法做到这一点(ehemient 的答案只适用于 GNU Make) 2)也没有办法使用 Automake 做到这一点。(虽然该功能不应该太难由需要它的人实现......)
就个人而言,我并没有真正看到使用的优势
foo_SOURCES = subdir/{foo,bar,baz}.c
超过
foo_SOURCES = \ 子目录/foo.c \ 子目录/bar.c \ 子目录/baz.c
我发现前者更神秘,而且它不是 grepable (例如回答“哪个Makefile
提到foo.c
?”的问题)。