如何获取在makefile中被命中的子目标列表?

问题描述 投票:1回答:1

我的makefile如下,

all: target1
        @echo "$(USER)"

target1: target2
        @echo "$(HOME)"

target2:
        @echo "$(SHELL)"

如果执行make all,将得到预期的输出。但是有没有办法知道执行该命令时哪个目标被击中。在这种情况下,make all调用了target1, target2。如果我完成了make target1,则仅会调用target2

我做的一个非常糟糕的解决方案是在所有目标中添加echo语句,如下所示,

all: target1
        @echo "Running $@"
        @echo "$(USER)"

target1: target2
        @echo "Running $@"
        @echo "$(HOME)"

target2:
        @echo "Running $@"
        @echo "$(SHELL)"

无需添加此类打印件,是否有任何好的解决方案?

bash gcc makefile
1个回答
0
投票

首先,当您运行时

make target1

您应该先看到target2然后执行target1。

如果要查看make如何订购目标并执行它们,可以运行make -d

© www.soinside.com 2019 - 2024. All rights reserved.