看看谁叫做make target

时间:2014-09-30 18:48:41

标签: makefile environment-variables

有没有办法告诉谁在make文件中调用了目标。例如,如果在make文件中我有以下

foo: bar

bar:
    gcc bar.c
    gcc foo.c

make中是否有任何变量或其他方式来确定foo为bar?

3 个答案:

答案 0 :(得分:3)

致电make -dmake -d 2>&1 | tee make.log。这告诉你一切正在做的事情。这是相当冗长的,这就是为什么你想把它管道到一个日志文件中,然后你可以更好地分析它。

答案 1 :(得分:1)

基本上有两种方法可以解决这个问题:

  1. 动态地:检测你的生产过程,这样你就可以看到谁叫谁了。 MAKAO是一个很好的工具。
  2. 静态地:解析Makefile以确定从哪些目标调用哪些依赖
  3. 另见an explanation I wrote some time ago

答案 2 :(得分:0)

为此,我使make文件看起来像下面的

foo: TARGET=foo

foo: bar

bar:
    @echo ${TARGET}

并将foo作为输出