自动化模式扩展

时间:2009-11-25 22:21:30

标签: filenames automake expansion

我想在Makefile.am部分的一个xxx_SOURCES = ...文件中加入许多文件。有没有办法在那里使用典型的shell扩展?我正在寻找的是等效于:

xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c

2 个答案:

答案 0 :(得分:1)

我不知道这是不是最好的方式,但这是我一直以来所做的:

xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)

答案 1 :(得分:1)

1)在便携式Make语法中无法做到这一点(ephemient的答案仅适用于GNU Make) 2)使用Automake也无法做到这一点。 (虽然这个功能不应该太难以由需要它的人实现......)

就我个人而言,我并没有真正看到使用

的优势
foo_SOURCES = subdir/{foo,bar,baz}.c

foo_SOURCES = \
  subdir/foo.c \
  subdir/bar.c \
  subdir/baz.c

我发现前者更加神秘,并且不易变形(例如回答“Makefile提及foo.c?”的问题。