uboot的Makefile里面为啥有两个all目标阿

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uboot的Makefile里面为啥有两个all目标阿相关的知识,希望对你有一定的参考价值。

参考技术A u-boot

有两个
all:目标的原因。
makefile
会以第一个目标作为默认目标,并且会被视为一个伪目标。在第一个all:之前有一段说明:
#
Include
autoconf.mk
before
config.mk
so
that
the
config
options
are
available
#
to
all
top
level
build
files.
We
need
the
dummy
all:
target
to
prevent
the
#
dependency
target
in
autoconf.mk.dep
from
being
the
default.
"前两句没什么好说的。关键是后一句:我们需要伪目标all:以防止autoconf.mk.dep中的目标成为默认目标。"
换句话说,如果这里不加上一个all:,则会产生一个结果,被包含进makefile中的autoconf.mk.dep中的第一个目标就有
可能成为默认目标。这样,如果我们执行
make
all,不会有什么问题。但只执行make,默认目标就不是all:目标了。
在一个makefile中,对于一个目标,可以多次重复的定义,可以多次定义其依赖,但只能定义一个目标动作,这样,可以利用条件执行对目标的依赖动态加载。

all:
depend1
all:
depend2
all:
command....
这样最终会先执行depend1然后depend2,最后去执行command...

以上是关于uboot的Makefile里面为啥有两个all目标阿的主要内容,如果未能解决你的问题,请参考以下文章

uboot主Makefile解析

嵌入式linux核心课程 2.uboot和系统移植-第4部分-2.4.uboot配置和编译过程详解

uboot 主Makefile分析

uboot下主Makefile详解

uboot研读笔记 | 13 - uboot编译构建Makefile分析研读(2016.03版本)

uboot移植之主Makefile分析