Makefile编译原理 特殊的变量

一.特殊变量的含义

Makefile编译原理 特殊的变量_第1张图片

例子:

.PHONY : all out

all out :
	@echo "$(MAKE)"
	@echo "$(MAKECMDGOALS)"
	@echo "$(MAKEFILE_LIST)"


mhr@ubuntu:~/work/makefile1$ make
make  // 当前解释器所对应的文件名就是 make
              //make 这个应用程序的命令行参数 为空  没有带目标名
 makefile //空格 + 当前makefile
mhr@ubuntu:~/work/makefile1$ 

mhr@ubuntu:~/work/makefile1$ make all    //携带了目标名(make这个应用程序的命令行参数)
make  // 当前解释器所对应的文件名就是 make
all  //make 这个应用程序的命令行参数  目标名 all
 makefile //空格 + 当前makefile
mhr@ubuntu:~/work/makefile1$ 

mhr@ubuntu:~/work/makefile1$ make all out //让 make 执行两个目标
make  //先执行 all 目标
all out
 makefile
make //再执行 out 目标
all out
 makefile
mhr@ubuntu:~/work/makefile1$ 

 二.变量的替换

Makefile编译原理 特殊的变量_第2张图片

Makefile编译原理 特殊的变量_第3张图片

               Makefile编译原理 特殊的变量_第4张图片

三.变量值的嵌套引用

一个变量名之中可以包含对其他变量的引用

嵌套引用的本质是使用一个变量表示另一个变量

Makefile编译原理 特殊的变量_第5张图片

命令行变量:

运行make时,在命令行定义变量

命令行变量默认覆盖makefile中定义的变量

Makefile编译原理 特殊的变量_第6张图片

override关键字:

用于指示makefile中定义的变量不能被覆盖

变量的定义和赋值都需要使用override关键字

 Makefile编译原理 特殊的变量_第7张图片

你可能感兴趣的:(Linux驱动,嵌入式硬件)