Shell 如何获取Makefile目标上的直接依赖项列表
我正在做一个有点复杂的Makefile的项目 它有很多函数调用和字符串替换来获取对象和虚假目标的列表 我试图获得对目标的直接依赖,例如Shell 如何获取Makefile目标上的直接依赖项列表,shell,makefile,Shell,Makefile,我正在做一个有点复杂的Makefile的项目 它有很多函数调用和字符串替换来获取对象和虚假目标的列表 我试图获得对目标的直接依赖,例如 FOO_VAR := abc def ghi test: \ foo \ bar \ $(FOO_VAR) \ whatever 我应该 foo bar abc def ghi whatever 即使这些目标有进一步的依赖关系 我跟着 使用make-qp | awk-F':'/^[a-zA-Z0-9][^$\/\t=]*:([^=].$)/{split(
FOO_VAR := abc def ghi
test: \
foo \
bar \
$(FOO_VAR) \
whatever
我应该
foo
bar
abc
def
ghi
whatever
即使这些目标有进一步的依赖关系
我跟着
使用make-qp | awk-F':'/^[a-zA-Z0-9][^$\/\t=]*:([^=].$)/{split($1,a,//);用于(a中的i)打印a[i]}
但是,它将返回所有目标,而不仅仅是直接依赖项。是否
make-qp | grep“target:”
做你想做的事
或者可能是make-qp | grep“target.*:”
(以防它不是该行的唯一/最后一个目标)
另请参阅的答案,以获得一个更高效(但更长且需要少量准备工作)的命令来运行该管道的生成位。您想要单个目标或其整个先决条件链的直接先决条件(即其prereqs的prereqs等)?只需要单个目标的直接先决条件。