如何检测由于包含而导致的 Makefile 重新评估

How to detect Makefile re-evaluation due to include

我有一个 Makefile (GNU make),由于 include,它会在某些情况下重新评估自己。我希望能够在评估期间和规则执行之前确定这是第一个 "pass" 还是第二个 "pass"(重新评估)。有办法吗?

我试过导出一个变量,但这似乎不起作用(似乎重新评估没有被视为子制作,我想这是有道理的)。

我正在努力重新制定 Makefile 以删除重新评估,但这对我的应用程序来说并不简单,我希望有一个短期修复...

你是说如果在第一次尝试时重新制作了任何包含的文件(include),make 会自动重启吗?如果是这样,您正在寻找 MAKE_RESTARTS 特殊变量,它(引用手册)will contain the number of times this instance has restarted