版本信息:
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
/*
*