Makefile 学习记录一
2019年2月5日10:18:13 大年初一
整理 uboot-2018-11 源代码 根目录下的 Makefile 。
ifeq ("$(origin O)", "command line")
KBUILD_OUTPUT := $(O)
endif
# ifeq , 关键字,判断来年各个参数是否相等
# origin 是一个函数,告诉你这个变量是从哪里来的,返回值有7个
# 返回值为"undefine"时,这个变量没有被定义过
# 返回值为“command line”时,这个变量是被命令行定义的。
# 返回值为“environment”时,这个变量是定义为环境变量。
# 返回值为“file”时,这个变量是定义在Makefile中。
# 返回值为“default”时,变量是默认定义的。
# 返回值为“override”时,被override指示符重新定义
# 返回值为“automatic”时,是一个命令运行中自动化变量
# 命令行中带有变量O 则函数返回command line,再次进行ifeq判断
# 变量O的值,在命令行中已经给出了即:"make O=dir/to/store/output/files/"
# 相等,则直接给变量 KBUILD_OUTPUT 赋值 变量 O的值
# 则赋值 KBUILD_OUTPUT 为命令行给出的值,即例子中dir/to/store/output/files/
学习 uboot 下 的 Makefile ,要时刻带着两个目的:
1、先看看 uboot 的 Makefile 做了什么事?
2、在 看看 做这些事情 用了 Makefile 的 那些语法 ?
2、在 看看 做这些事情 用了 Makefile 的 那些语法 ?