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
版权声明:本文为博主原创文章,转载请附上博文链接!