Makefile 如何跟踪递归make?

Makefile 如何跟踪递归make?,makefile,trace,recursion,Makefile,Trace,Recursion,我需要在一个系统上工作,该系统使用自动生成工具并递归生成 “make-n”仅跟踪make的顶层 有没有办法让make在遇到make命令时执行make-n?使用$(make)调用子kefile,而不是使用make。这应该行得通。在手册中签出。下面是一个简单的例子: 生成文件: all: @$(MAKE) -f Makefile2 Makefile2: all: @echo Makefile2 命令行: $ make Makefile2 $ make -n make -f Mak

我需要在一个系统上工作,该系统使用自动生成工具并递归生成

“make-n”仅跟踪make的顶层

有没有办法让make在遇到make命令时执行make-n?

使用
$(make)
调用子kefile,而不是使用
make
。这应该行得通。在手册中签出。下面是一个简单的例子:

生成文件:

all:
    @$(MAKE) -f Makefile2
Makefile2:

all:
    @echo Makefile2
命令行:

$ make
Makefile2
$ make -n
make -f Makefile2
echo Makefile2
$
使用
$(MAKE)
调用子基文件,而不是使用
MAKE
。这应该行得通。在手册中签出。下面是一个简单的例子:

生成文件:

all:
    @$(MAKE) -f Makefile2
Makefile2:

all:
    @echo Makefile2
命令行:

$ make
Makefile2
$ make -n
make -f Makefile2
echo Makefile2
$

递归生成文件是否如下所示:

foo:
    make -C src1
    make -C src2
foo:
    ${MAKE} -C src1
    ${MAKE} -C src2
或者像这样:

foo:
    make -C src1
    make -C src2
foo:
    ${MAKE} -C src1
    ${MAKE} -C src2

我认为,如果希望将标志传递给子make进程,则需要使用第二种样式。可能是您的问题。

您的递归生成文件如下所示:

foo:
    make -C src1
    make -C src2
foo:
    ${MAKE} -C src1
    ${MAKE} -C src2
或者像这样:

foo:
    make -C src1
    make -C src2
foo:
    ${MAKE} -C src1
    ${MAKE} -C src2

我认为,如果希望将标志传递给子make进程,则需要使用第二种样式。可能是您的问题。

将环境变量“MAKEFLAGS”设置为“n”可能会满足您的需要

这里有一些更高级的跟踪make命令的技巧:


这些技巧中最简单的就是将SHELL=“sh-x”添加到make命令中(在这种情况下运行时不带“-n”)。

将环境变量“MAKEFLAGS”设置为“n”可能会满足您的需要

这里有一些更高级的跟踪make命令的技巧:

这些技巧中最简单的就是将SHELL=“sh-x”添加到make命令中(在这种情况下运行时不带“-n”)