给定目标名称,获取其所有先决条件

时间:2016-06-06 19:04:04

标签: makefile

如果我有一个makefile,例如:

foo.o: foo.c a.h b.h c.h
    cc -c foo.c -o foo.o

现在,在makefile的其他部分中,我希望获得foo.o的所有先决条件,就像我在配方中使用$^一样。类似的东西:

$(info $(call GET_TARGET_PREREQS(foo.o))) # prints "foo.c a.h b.h c.h"

基本上,我有所有目标文件的依赖文件(由-M生成),从那里我想要一个给定对象包含的所有头文件的列表。

我希望有一个或多或少纯粹的make解决方案,而不是解析*.d文件并输出makefile片段的sed脚本。

1 个答案:

答案 0 :(得分:0)

如果要打印所有的先决条件,可以随时使用$ ^

.PONY: all

all: a b c
         @echo $^
a:
b:
c: