我正在开发一个有点复杂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]}'
然而,它将返回所有目标,而不仅仅是直接依赖。
答案 0 :(得分:1)
make -qp | grep 'target:'
能做你想做的吗?
或者可能make -qp | grep 'target.*:'
(如果它不是该行的唯一/最后一个目标)?
另请参阅Eric Melski的答案,以获得更高效(但更长且需要更少的准备工作)命令来运行该管道的make位。