Bcm6816uni_xchg_common.doc

来源:互联网 发布:js简易购物车合计代码 编辑:程序博客网 时间:2024/06/07 03:07

//cxcAppBcm6816uni.mk

includecxcApp$(notdir $(CURDIR)).mk


-------------------------------------------------------------------------------------------------------------------------


CXC_VRG_BOARD_TYPE:= bcm6816uni

CXC_VRG_VENDOR_BOARD_TYPE:=

CXC_VRG_VENDOR_TARGET_LIST:=

CXC_VRG_VENDOR_TARGET_LIST:= pstnCtl


CXC_XDRV_6816_DEFAULT_TARGETS := bcm6816_apm \

bcm6816_boot \

bcm6816_clock \

dlbStub \

bcm6816_handshake \

ledSim \

cp0Mips \

debugCmtInterface \

exceptionHdlrMips \

exceptionHdlrCmtMips\

itpcMips \

spinLockMips


CXC_XDRV_COMMON_DEFAULT_TARGETS := bcm63xx_intCtrl \

bcm63xx_timer \

bcm63xx_resetCallout\

cacheMips \

casDriver \

dbgCom \

globalInterruptMips \

ipcSharedMem \

flowCtrl


CXC_XDRV_TARGET_LIST= $(CXC_XDRV_6816_DEFAULT_TARGETS) \

$(CXC_XDRV_COMMON_DEFAULT_TARGETS) \

bcm6816_slicsi3239 \

bcm6816_slicl9530 \

bcm6816_tpdl9530 \

bcm63xx_zarlink \

bcm63xx_silabs


CXC_XDRV_VENDOR_TARGET_LIST:=

CXC_CM_APP_BUILD_OPTIONS:=


CXC_LDX_APP_NAME= dspApp_flexible

XCHG_C_GLOBAL_DEFS+= SPI_CMD_ONE_BYTE

CXC_LDX_APP_TARGET= output


include../rules/cxcAppRules.mk



xchg_common:

//XCHG_ROOT = xChange\dslx_common\xchg_common

$(MAKE)-C $(XCHG_ROOT) -f xchg_common.mk

XCHG_LIB_DIR=$(CXC_BASE_LIB_DIR)/$(CXC_XCHG_OUTPUT_DIR)

XCHG_OBJ_DIR=$(CXC_BASE_OBJ_DIR)/$(CXC_XCHG_OUTPUT_DIR)


-----------------------------------------------------------------------------------------------------------------------------

xchg_common.mk

include$(XCHG_ROOT)/rules/xChgEnv.mk

include$(XCHG_RULES_DIR)/xChgCheckVars.mk

include$(XCHG_ROOT)/xchg_common_env.mk


//XCHG_VALID_TARGETS定义在xchg_common_targets.mk

//XCHG_ALL_TARGETS:=

// assert blog bos containers crt mem rfs rpc rpcStubs sme str

// switch trace

XCHG_VALID_TARGETS=$(XCHG_ALL_TARGETS)$(addprefix clean_,$(XCHG_ALL_TARGETS)) $(addprefixaudit_,$(XCHG_ALL_TARGETS))



//XCHG_MAKE_TARGETS = assert bos containers sme str trace blog crt mem,定义在

//cxcAppRules.mk

libTargets:= $(XCHG_MAKE_TARGETS)


//默认目标

all:


//包含各模块的makefile文件,如assert模块,则包含

//xChange\dslx_common\xchg_common\assert\ assert.mk

//其中各模块的makefile文件中包含了该模块需要编译的关键变量,如assert.mk

//XCHG_LIB_BASE := assert

//ASSERT_ROOT := $(XCHG_DIR_$(XCHG_LIB_BASE))

//XCHG_SRC_FILES_$(XCHG_LIB_BASE) := $(notdir $(wildcard$(ASSERT_ROOT)/src/*.c))

//XCHG_SRC_FILES += $(XCHG_SRC_FILES_$(XCHG_LIB_BASE))

XCHG_MODULE_MAKEFILES:=

$(foreachtarget,$(libTargets),$(XCHG_DIR_$(target))/$(target).mk)

include$(XCHG_MODULE_MAKEFILES)

//makefile定义了默认目标all的实现

include$(XCHG_ROOT)/rules/xChgRules.mk


//target对象构造,依赖各模块,XCHG_MAKE_TARGETS在上面有定义,其中各个模块就是

//最终所需要的*.a文件,XCHG_MAKE_TARGETS的构造实现是使用下面的

//XCHG_ARCHIVE_TEMPLATE静态库生成模板

target:$(XCHG_MAKE_TARGETS)


//在上面libTargets中的值就是XCHG_MAKE_TARGETS的所有值,这里就是用

//XCHG_ARCHIVE_TEMPLATE静态库生成模板构造各个模块对象文件

//其中XCHG_MAKE_TARGETS= assert bos等,所以target就分别等于assert

//bos等。其中XCHG_ARCHIVE_TEMPLATE静态库生成模板定义在xChgRules.mk

$(foreachtarget,$(libTargets),$(eval $(call XCHG_ARCHIVE_TEMPLATE,$(target))))


---------------------------------------------------------------------------------------------------------------------------

xChgRules.mk

//默认目标文件依赖targettaget在上面定义

all:target


//静态库生成模板

defineXCHG_ARCHIVE_TEMPLATE

//对象添加前后缀

XCHG_OBJ_FILES_$(1):= $(addprefix $(XCHG_OBJ_DIR)/, $(addsuffix$(XCHG_OBJ_EXT),$(basename $(XCHG_SRC_FILES_$(1)))))

//依赖文件

XCHG_DEP_FILES_$(1):= $$(XCHG_OBJ_FILES_$(1):$(XCHG_OBJ_EXT)=.d)

//预处理文件

XCHG_PREPROCESSED_FILES_$(1):= $(addsuffix .pp,$(basename $(XCHG_SRC_FILES_$(1))))

//构造库文件名

XCHG_LIB_NAME_$(1):= $(call XCHG_MAKE_LIB_NAME,$(1))


//设置目标的依赖头文件

$(1): XCHG_C_LOCAL_INCLUDE := $$(XCHG_C_LOCAL_INCLUDE_$(1))

//设置目标的依赖DEF文件

$(1): XCHG_C_LOCAL_DEFS := $$(XCHG_C_LOCAL_DEFS_$(1))

//DEF文件的依赖

$$(XCHG_DEP_FILES_$(1)): XCHG_C_LOCAL_INCLUDE := $$(XCHG_C_LOCAL_INCLUDE_$(1))

$$(XCHG_DEP_FILES_$(1)): XCHG_C_LOCAL_DEFS := $$(XCHG_C_LOCAL_DEFS_$(1))

//预处理文件的依赖

$$(XCHG_PREPROCESSED_FILES_$(1)): XCHG_C_LOCAL_INCLUDE := $$(XCHG_C_LOCAL_INCLUDE_$(1))

$$(XCHG_PREPROCESSED_FILES_$(1)): XCHG_C_LOCAL_DEFS := $$(XCHG_C_LOCAL_DEFS_$(1))


//目标对象构造,依赖来上面设置的库文件名

$(1): $$(XCHG_LIB_NAME_$(1))


//库文件构造,依赖于相关联的OBJ文件

$$(XCHG_LIB_NAME_$(1)): $$(XCHG_OBJ_FILES_$(1))

$(ECHO)'Creating Archive $$@'

//构造库文件的所在目录

$(MKDIR)-p $$(@D)

//删除旧的库文件

$(RM)-f $$@

//使用AR命令进行库文件打包

$(XCHG_ARCHIVE)$(XCHG_ARCHIVE_OPTS)$$@ $$^

$(ECHO)

endef

0 0
原创粉丝点击