我想在xxx_SOURCES = ...
部分中的一個Makefile.am
文件中包含許多文件。有沒有辦法在那裏使用典型的shell擴展?我正在尋找的是一個工作等效:Automake模式擴展
xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
我想在xxx_SOURCES = ...
部分中的一個Makefile.am
文件中包含許多文件。有沒有辦法在那裏使用典型的shell擴展?我正在尋找的是一個工作等效:Automake模式擴展
xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
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
?」)。
我不知道這是否是最好的方式,但是這是我一直在做:
xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)
很酷,但看起來像一個醜陋的黑客...我希望有人知道更好的解決方案:) – viraptor 2009-11-25 23:21:05
此解決方案只適用於GNU Make,並完全繞過automake的機制。 Automake將不知道被擴展的文件名(所以他無法在所有情況下生成適當的規則)。 – adl 2009-11-26 17:00:09