u-boot的Makefile分析之顶层config.mk

本文深入分析了u-boot项目的顶层config.mk文件,详细解释了配置编译和链接选项的过程,并提供了config.mk的完整内容及其关键注释。
摘要由CSDN通过智能技术生成
版本信息:
u-boot-2010-06
顶层目录下的config.mk文件主要完成如下功能的配置:
1、确定生成可执行文件过程中需要的各种工具,如编译器(arm-linux-gcc)、连接器(arm-linux-ld)、反汇编器(arm-linux-objdump)等
2、确定CPU、板相关的配置文件,存在于各个目录下的config.mk
3、确定编译、链接、转换等过程的操作选项

4、根据步骤3确定的编译连接选项生成需要的文件

config.mk完整内容及必要注释如下
:config.mk文件注释符改为/* 注释内容 */

ifneq ($(OBJTREE),$(SRCTREE))
	ifeq ($(CURDIR),$(SRCTREE))
		dir :=
	else
		dir := $(subst $(SRCTREE)/,,$(CURDIR))
	endif

	obj := $(if $(dir),$(OBJTREE)/$(dir)/,$(OBJTREE)/)
	src := $(if $(dir),$(SRCTREE)/$(dir)/,$(SRCTREE)/)

	$(shell mkdir -p $(obj))
else
	obj :=
	src :=
endif
/* obj = 空,src = 空
 * dir = 空
 */
 
/* clean the slate ... */
PLATFORM_RELFLAGS =
PLATFORM_CPPFLAGS =
PLATFORM_LDFLAGS =

/* HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
 * -Wall: 打印出编译时所有的错误或警告信息
 * -Wstrict-prototypes: 编译时,若产生与数据类型不相符的问题,打印出提示或警告信息。当在不同体系结构间移植时,加上该选项可避免很多错误
 * -O: 编译代码时的优化等级,共有五种:-O0、-O1、-O2、-O3和-Os
 * -fomit-frame-pointer: 对于不需要帧指针的函数,不要在寄存器中保存帧指针
 * 代码优化时打开-fomit-frame-pointer,函数调用时不保存frame指针,也就不能用backtrace()来查看函数栈调用
 * backtrace()系列函数见[http://blog.csdn.net/u013686019/article/details/42128771](Linux中backtrace()系列函数的应用实例)
 */
HOSTCFLAGS	= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \
		  $(HOSTCPPFLAGS)
/* HOSTSTRIP = strip 
 * strip能清除执行文件中不必要的标示符及调试信息,可减小文件大小而不影响正常使用,、
 * 与压缩不同的是,文件一旦strip后就不能恢复原样
 * strip后的文件不包含调试信息
 */
HOSTSTRIP	= strip

/*
 * 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值