#判断编译输出目录和源文件目录是否相同,如果不相同执行obj := $(OBJTREE)/,src := $(SRCTREE)/。如果相同则obj :=,src := 。(用来判断是否为单独文件夹编译)
ifneq ( ( O B J T R E E ) , (OBJTREE), (OBJTREE),(SRCTREE))
obj := $(OBJTREE)/
src := $(SRCTREE)/
else
obj :=
src :=
endif
export obj src
ifeq ($(ARCH),powerpc)
ARCH = ppc
endif
ifeq ( ( o b j ) i n c l u d e / c o n f i g . m k , (obj)include/config.mk, (obj)include/config.mk,(wildcard $(obj)include/config.mk))
load ARCH, BOARD, and CPU configuration
#在源文件目录下的include下生成一个config.mk文件,(这个文件用来配置uboot)
include $(obj)include/config.mk
#导出环境变量
export ARCH CPU BOARD VENDOR SOC
ifndef CROSS_COMPILE
ifeq ( ( H O S T A R C H ) , (HOSTARCH), (HOSTARCH),(ARCH))
CROSS_COMPILE =
else
ifeq ($(ARCH),ppc)
CROSS_COMPILE = ppc_8xx-
endif
#判断是否定义了CROSS_COMPILE
ifndef CROSS_COMPILE
#如果ARCH等于arm则定义arm相关的交叉编译工具链的前缀
ifeq ($(ARCH),arm)
#CROSS_COMPILE = arm-linux-
#CROSS_COMPILE = /usr/local/arm/4.4.1-eabi-cortex-a8/usr/bin/arm-linux-
#CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
#CROSS_COMPILE定义的就是交叉编译工具链的前缀
CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
endif
#在最高级目录下生成config.mk文件
include $(TOPDIR)/config.mk