makefile - 从makefile中调用make

标签 makefile gnu-make multiple-makefiles

我有一个Makefile,可以从新she​​ll完美地调用它,即:

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=

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

关于makefile - 从makefile中调用make,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970533/

相关文章:

ubuntu - 在 Linux 上安装 WordNet (Ubuntu trusty)

linux - 安装 flex 时找不到 flex 命令

ant - 如何使用 ANT(或其他一些构建系统,如果您愿意)构建 PDF LaTeX 文档?

makefile - 如何在 makefile 中的另一个规则中运行模式规则?

makefile - "make"和 "make all"有什么区别?

windows - 如何强制 make 在 Windows/MSYS2 上使用 bash 作为 shell

c - 使用 makefile 进行多次编译

安卓NDK : build after added a new library module directly under jni/folder

c - 尝试从命令行运行 Makefile - 无法识别 '.'

在RaspberryPi上使用make编译