对于makefile传递参数的一些问题

makefile变量说明:
 1.总控Makefile中使用“-e”参数覆盖下一层Makefile中的变量。
 2.父级Makefile向子级Makefile传送变量方式:export <variable ...>
 3.禁止父级Makefile向子级Makefile传送变量:unexport <variable ...>
 4.传递所有只要一个export就行,后面什么也不用跟.
 5.两个系统变量SHELL,MAKEFLAGS,总是要传递到下层Makefile中
 6.MAKEFILES包含了make的参数信息
 7.make命令中不往下传递的参数“-C”,“-f”,“-h”“-o”和“-W”
 8.如果不想向下传递MAKEFILES变量,可以这样:
   subsystem:
   cd subdir && $(MAKE) MAKEFLAGS=
 9.MAKEFLAGS使用时确保其中的选项是大家都会用到,特别注意“-t”,“-n”,和“-q”参数
 10.make的过程中输出目前工作目录的信息可以使用“-w”或是“--print-directory”参数
 11.自动打开下层Makefile的"-w"参数使用“-C”参数

 12.关闭Makefile的"-w"参数使用“-s”(“--slient”)或是“--no-print-directory”参数

其实我这边看了不加-e也会覆盖!!

而且变量会加到MAKEFLAGS里面,递归传递!

可以将MAKEFLAGS打为空。

例如:

命令行:  

  make clean; make WWW=1 -j    //"WWW" 即为所传递的环境变量

makefile 使用:

  ifdef WWW
  @cmp -s ./auto_config.h ./project.h || cat ./auto_config.h > ./project.h

  else
  endif

原文地址:https://www.cnblogs.com/jiangzhaowei/p/6617492.html