makefile的执行顺序

要学一门语言,必须先要了解它的工作原理`

(1) 依次读取变量“MAKEFILES”定义的makefile文件列
在当前环境中查看一下有没有定义 “MAKEFILES”这个环境变量, 如果环境变量MAKEFILES被定义了,那么make会在读取其它makefile之前,先读取MAKEFILE定义的列表中的名字(由空格分隔)。建议大家不要去定义这个环境变量,因为我们并不太了解这个变量的使用,那么经常会造成一些奇怪的错误。

(2)读取工作目录下的makefile文件
指定 makefile 文件名的方法是使用‘ -f ’或‘ –file ’选项(‘ –makefile ’也能工作)。例如,‘ -f altmake ’说明名为‘ altmake ’的文件作为 makefile 文件。 如果您不使用‘-f’或‘–file’选项,缺省的是按次序查找 ‘GNUmakefile’ , ‘makefile’ , 和 ‘Makefile’ ,使用这三个中第一个能够找到的存在文件或能够创建的文件。

(3) 依次读取工作目录makefile文件中使用指示符“include”包含的文件
比如在u-boot的主Makefile文件中可以找到下面这“include”,它就是将顶层目录下的config.mk文件包含到Makefile文件中。

(4) 查找重建所有已读取的makefile文件的规则

(5)初始化变量值并展开那些需要立即展开的变量和函数并根据预设条件确定执行分支
变量跟函数都比较熟悉了,那预设条件是指什么?就是条件语句啦!比如: ifeq… else….endif这样的条件语句,根据条件来确定执行分支。

(6)根据“终极目标”以及其他目标的依赖关系建立依赖关系链表

(7) 执行除“终极目标”以外的所有的目标的规则(规则中如果依赖文件中任一个文件的时间戳比目标文件新,则使用规则所定义的命令重建目标文件)

(8) 执行“终极目标”所在的规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值