从makefile中调用make

use*_*062 7 makefile gnu-make multiple-makefiles

我有一个Makefile,它可以从一个新的shell中完美地调用,即:

make -C /dir/
Run Code Online (Sandbox Code Playgroud)

但是,如果我从另一个 Makefile 调用此Makefile ,则由于某些复杂的依赖性问题而失败.清楚地了解嵌套调用,通过打印make[1]:等显而易见,我怀疑make是以某种方式与其子进程共享变量.

无论如何在Makefile中调用一个干净的 make?如果我的构建工作是从一个干净的shell,它应该可以从另一个Makefile调用它而不解决脚本内部的恐怖!:)

谢谢!

Vir*_*ile 10

make确实在递归调用它时会分享它的一些环境.正如https://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html#Options_002fRecursion中所述,您可能希望以这种方式编写递归调用:

sub-make:
        $(MAKE) -C /dir/ MAKEFLAGS=
Run Code Online (Sandbox Code Playgroud)

并看看它是否有帮助.您还可以使用exportunexport指令控制导出到子品牌的变量(https://www.gnu.org/software/make/manual/html_node/Variables_002fRecursion.html#Variables_002fRecursion)