uboot顶层makefile走读

1

1.1

MAKEFLAGS += -rR --include-dir=$(CURDIR)

MAKEFLAGS和CURDIR为makefile中的默认变量

使用make -.p可以查看makefile预先定义过的东西

1.2

ifeq ("$(origin V)", "command line")
    KBUILD_VERBOSE = $(V)
endif
ifndef KBUILD_VERBOSE
    KBUILD_VERBOSE = 0
endif
ifeq ($(KBUILD_VERBOSE), 1)
    quiet=
    Q=
else
    quiet=quiet_
    Q=@
endif

这段代码实现了在make的时候使用参数V=1或者V=0实现长短命令log输出切换

原理是通过命令行传进来的V参数构造KBUILD_VERBOSE quiet Q三个变量

在写命令的时候加上$(Q)或者$(quiet)前缀,使得命令文本变成短命令打印的版本

V=0:$(Q)make------->@make        @(quiet)sym------->quiet_sym

V=1:$(Q)make------->make            @(quiet)sym------->sym

uboot编译时可加上-s变成静默编译,原理是凑出silent_前缀

export quiet Q KBUILD_VERBOSE

之后通过export把这三个变量传给下层makefile

1.3

ifeq ($(KBUILD_SRC),)
        # building in the source tree
        srctree := .
else
        ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
                # building in a subdirectory of the source tree
                srctree := ..
        else
                srctree := $(KBUILD_SRC)
        endif
endif
objtree		:= .
src		:= $(srctree)
obj		:= $(objtree)

VPATH		:= $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))

export srctree objtree VPATH

生成源代码路径,和生成文件路径以及VPATH

1.4

HOSTARCH := $(shell uname -m | \
	sed -e s/i.86/x86/ \
	    -e s/sun4u/sparc64/ \
	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值