嵌套执行MAKE $(MAKE) -C subdir

subsystem:
            cd subdir && $(MAKE)

其等价于:

    subsystem:
            $(MAKE) -C subdir


这句是Makefile的规则:这里的$(MAKE)就相当于make,-C 选项的作用是指将当前工作目录转移到你所指定的位置

===============================================================================================


subsystem:

      cd subdir && $(MAKE) MAKEFLAGS=

此规则取消了子make执行式的命令行选项(将变量的值赋为空)。

在执行make的同时可以通过命令行来定义一个变量,像上例中的那样;前边已经提到过,这种变量是借助环境“MAKEFLAGS”来传递给多级调用的子make进程的。其实真正的命令行中的变量定义是通过另外一个变量“MAKEOVRRIDES”来记录的,变量“MAKEFLAGS”引用此变量,因而命令行中的变量定义就可以被记录在环境变量“MAKEFLAGS”中被传递下去。当不希望将上层make在命令行中定义的变量传递给子make时,就可以在上层Makefile中把“MAKEOVERRIDES”赋空来实现(MAKEOVERRIDES=)。
--------------------- 
作者:rongwenbin 
来源:CSDN 
原文:https://blog.csdn.net/rongwenbin/article/details/23745059 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/qingzhuyuxian/article/details/84986345
今日推荐