首页 > 技术文章 > make读入Makefile的方式

lybinger 2019-03-25 17:52 原文

make执行分两个步骤:

首先它读入所有的makefiles, included makefiles,然后展开内部变量值,并构建所有的目标与依赖之间的联系。

第二步就是根据展开的这个结构来决定哪些目标需要重建,并执行相应的规则。

immediate expansion指的是在第一步就进行的赋值或规则执行,deferred expansion指的是在immediate 上下文中稍后执行的或者等到第二个步骤再执行的扩展。

分类如下:

immediate = deferred

immediate ?= deferred

immediate := immediate

immediate ::= immediate

immediate += deferred or immediate (如果这个变量之前是通过':='或'::=',则为immediate,否则为deferred)

immediate != immediate

immediate : immediate ; deferred

  deferred

推荐阅读