如何获取Makefile目标的直接依赖项列表

时间:2014-07-15 18:23:47

标签: shell makefile

我正在开发一个有点复杂Makefile的项目。

它有很多函数调用和字符串替换来获取对象列表和虚假目标。

我试图直接依赖目标,例如

FOO_VAR := abc def ghi

test: \
foo \
bar \
$(FOO_VAR) \
whatever

我应该

foo
bar
abc
def
ghi
whatever

即使这些目标还有其他依赖关系。

我已经关注

List goals/targets in GNU make that contain variables in their definition

使用make -qp | awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}'

然而,它将返回所有目标,而不仅仅是直接依赖。

1 个答案:

答案 0 :(得分:1)

make -qp | grep 'target:'能做你想做的吗?

或者可能make -qp | grep 'target.*:'(如果它不是该行的唯一/最后一个目标)?

另请参阅Eric Melski的答案,以获得更高效(但更长且需要更少的准备工作)命令来运行该管道的make位。