我有一个Makefile,可以从新shell完美地调用它,即:
make -C /dir/
但是,如果我从另一个Makefile调用此Makefile,则由于某些复杂的依赖关系问题而导致失败。 Make清楚地了解嵌套调用的知识,可以通过
make[1]:
等的打印来证明,并且我怀疑make在某种程度上与其子进程共享变量。无论如何,是否需要从Makefile中调用干净的Make?如果我的构建是在干净的 shell 上进行的,那么应该可以从另一个Makefile调用它,而无需解决脚本中的恐怖问题! :)
谢谢!
最佳答案
递归调用make
时,确实共享其某些环境。如https://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html#Options_002fRecursion中的建议,您可能希望以这种方式编写递归调用:
sub-make:
$(MAKE) -C /dir/ MAKEFLAGS=
看看是否有帮助。您还可以使用
export
和unexport
指令(https://www.gnu.org/software/make/manual/html_node/Variables_002fRecursion.html#Variables_002fRecursion)控制导出到子品牌的变量。
关于makefile - 从makefile中调用make,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970533/