在Makefile中调用make命令

13

我有一个Makefile,如果从新的shell中调用它就可以完美地工作:

make -C /dir/

然而,如果我从另一个 Makefile 中调用此 Makefile,则由于一些复杂的依赖关系问题而失败。通过打印 make[1]: 等,可以明显看到Make具有嵌套调用的知识,我怀疑make以某种方式与其子进程共享变量。

是否有办法在Makefile内部调用clean make?如果我的构建能够从干净的shell中运行,那么应该可以在另一个Makefile中调用它,而不必处理脚本内部的恐惧!:)

谢谢!


这不是很容易。你的意思是当makefile_1被从一个特定的makefile_2调用时出现失败,还是从任何其他makefile(比如什么都不做的简单makefile)调用时都会失败? - Beta
嗯,有点奇怪。比较每种情况下 make -p 的输出。(作为一项常规措施,我总是使用 -Rr--warn 运行 make —— 你的情况可能会有所不同。) - bobbogo
2个回答

13

1

调用者中的一些环境变量(如CFLAGS等)破坏了被调用者make。

我的解决方案是在干净的shell环境和调用点处比较环境,然后手动将问题变量添加到列表中,并创建一些save_env/restore_env脚本。

谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接