如何跟踪递归 make?

发布于 2024-08-22 13:45:01 字数 109 浏览 2 评论 0原文

我需要开发一个使用 automake 工具并递归生成的系统。

'make -n' 仅跟踪 make 的顶层。

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

I need to work on a system that uses automake tools and makes recursively.

'make -n' only traces the top level of make.

Is there a way to cause make to execute a make -n whenever he encounters a make command?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

多情出卖 2024-08-29 13:45:01

使用 $(MAKE) 调用子 makefile,而不是使用 make。那应该有效。查看 MAKE 变量的工作原理手册中的。这是一个简单的示例:

Makefile:

all:
    @$(MAKE) -f Makefile2

Makefile2:

all:
    @echo Makefile2

命令行:

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

Use $(MAKE) to call your submakefiles, instead of using make. That should work. Check out How the MAKE variable works in the manual. Here's a quick example:

Makefile:

all:
    @$(MAKE) -f Makefile2

Makefile2:

all:
    @echo Makefile2

Command line:

$ make
Makefile2
$ make -n
make -f Makefile2
echo Makefile2
$
不知在何时 2024-08-29 13:45:01

您的递归 makefile 是否如下所示:

foo:
    make -C src1
    make -C src2

或者像这样:

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

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

Does your recursive makefile look like this:

foo:
    make -C src1
    make -C src2

Or like this:

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

I think you need to use the second style if you want flags passed to child make processes. Could be your problem.

天荒地未老 2024-08-29 13:45:01

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

这里有一些用于跟踪 make 命令的更高级技巧:
http://www.cmcrossroads。 com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make

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

Setting the environment variable "MAKEFLAGS" to "n" may do what you need.

There are some more advanced tricks for tracing make commands here:
http://www.cmcrossroads.com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make

The simplest of these tricks comes down to adding SHELL="sh -x" to your make command (running without "-n" in that case).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文