标签:core ash begin orm oop code erro make 执行
Makefile.pj 定义的"make mconfig"的执行过程:
customer: ./tools/gen_customer.pl -C aps/customer -E aps/external mconfig: customer ifndef PJ @[ -e $@.config ] && mv -f $@.config .config; ./tools/mconf/mconf $@.Kconfig; mv -f .config $@.config @NEW_CUSTOMER_NAME=`grep CONFIG_CUSTOMER_NAME $@.config | awk ‘BEGIN {FS="\""}{print $$2}‘`; NEW_SUB_NAME=`grep CONFIG_SUBCUSTOMER_NAME $@.config | awk ‘BEGIN {FS="\""}{print $$2}‘`; NEW_SUBSUB_NAME=`grep CONFIG_SUBSUBCUSTOMER_NAME $@.config | awk ‘BEGIN {FS="\""}{print $$2}‘`; NEW_MODEL_BOARD_NAME=`grep CONFIG_MODEL_BOARD_NAME $@.config | awk ‘BEGIN {FS="\""}{print $$2}‘`; NEW_CUSTOMER_BOARD_PATH=customer/$${NEW_CUSTOMER_NAME}/$${NEW_MODEL_BOARD_NAME}; NEW_FORMAL_CUSTOMER_PATH=customer/$${NEW_CUSTOMER_NAME}/sub_customer/$${NEW_SUB_NAME}/$${NEW_SUBSUB_NAME}; [ -e aps/$${NEW_CUSTOMER_BOARD_PATH}/boardconfig.config ] && cp -f aps/$${NEW_CUSTOMER_BOARD_PATH}/boardconfig.config boardconfig.config; cp -f aps/$${NEW_FORMAL_CUSTOMER_PATH}/project/DEFAULT.config menuconfig.config; endif
“gen_customer.pl”主要功能是:创建make mconfig UI界面显示的信息。
如下的的Kconfig文件,均由“gen_customer.pl”产生,其中“./aps/customer/radisson/public/panel/makefile.ini”,为多屏参文件。
./code/aps/customer/radisson/public/ir/ir_map.h ./code/aps/customer/radisson/public/ir/ir_map.c ./code/aps/customer/radisson/public/ir/irinclude.in./code/aps/customer/radisson/public/ir/irsrc.in./code/aps/customer/radisson/public/ir/makefile.ini ./code/aps/customer/radisson/public/ir/Kconfig ./code/aps/customer/radisson/public/ir_tx/Kconfig ./code/aps/customer/radisson/public/ir_tx/ir_txinclude.in./code/aps/customer/radisson/public/ir_tx/ir_txsrc.in./code/aps/customer/radisson/Kconfig ./code/aps/customer/radisson/sub_customer/radisson/Kconfig ./code/aps/customer/radisson/sub_customer/radisson/radisson/Kconfig.project ./code/aps/customer/radisson/public/panel/Kconfig.panel ./code/aps/customer/radisson/public/panel/makefile.ini ./code/aps/customer/radisson/sub_customer/radisson/radisson/Kconfig ./code/aps/customer/Kconfig.external
“gen_customer.pl”将迭代panel下面的所有屏参目录,生成makefile.ini如下:这个文件在编译时aps/customer/Makefile会包含“makefile.ini”,运行“tools/gen_paneltable.pl”在屏参目录生成。
CONFIG_PANEL_TYPE=\
$(CONFIG_PANEL_TYPE_AUO_B141PW04_V1_1440X900__RADISSON) \
$(CONFIG_PANEL_TYPE_AUO_T420HW04_V0_1920X1080__RADISSON) \
$(CONFIG_PANEL_TYPE_CMO_M185B1_L02_1366X768__RADISSON) \
$(CONFIG_PANEL_TYPE_PN_FAC_1366X768__RADISSON) \
$(CONFIG_PANEL_TYPE_PN_FAC_1440X900__RADISSON) \
$(CONFIG_PANEL_TYPE_PN_FAC_1920X1080__RADISSON)
在执行make mconfig后,都已要处理的文件,接下来的介绍aps/makefile文件的执行过程:
注意:终极目标“all”-->依赖“application”-->依赖“$(BUILD_MODULE) ”-->依赖“customer”-->命令行“@$(MAKE) -C customer gen_multipanelbin”-->执行aps/customer/Makefile:gen_multipanelbin
include Makefile.project #define TOP DIR and LIB DIR export TOP_DIR := $(shell /bin/pwd) export LIB_DIR := $(TOP_DIR)/lib AV_DEV_ONOFF=n ifdef CONFIG_MEDIA_ENABLE AV_DEV_ONOFF=y endif ifdef CONFIG_DTV_SUPPORT AV_DEV_ONOFF=y endif ifeq ($(AV_DEV_ONOFF),y) #av_dev (runav and mpdev) BUILD_MODULE += av_dev #INSTALL_MODULE += av_dev endif ifeq ($(CONFIG_NOT_USEBB),y) BUILD_MODULE += minibox endif INSTALL_MODULE += application #tool kits ifeq ($(CONFIG_NOT_USEBB),$(filter $(CONFIG_NOT_USEBB),n)) BUILD_MODULE += toy INSTALL_MODULE += toy BUILD_MODULE += sf INSTALL_MODULE += sf endif ifeq ($(CONFIG_CORE_DUMP),y) BUILD_MODULE += automount INSTALL_MODULE += automount endif ifeq ($(CONFIG_DRIVER_TEST_AP_BUILDIN),y) BUILD_MODULE += test INSTALL_MODULE += test endif include external/Makefile.in BUILD_MODULE += gsl filesystem middleware app_infra test ifeq (y, $(findstring y, ${CONFIG_OSD_GAME_SUPPORT}${CONFIG_SUPPORT_NES_GAME})) BUILD_MODULE += game endif .PHONY: all clean install application customer $(BUILD_MODULE) all: application application: $(BUILD_MODULE) $(MAKE) -C application all clean: @$(MAKE) -C application clean @$(MAKE) -C customer clean @$(foreach MODULES, $(BUILD_MODULE), $(MAKE) -C ./$(MODULES) clean ; ) @$(MAKE) -C sf clean install: ifndef CONFIG_INSTALLDIR @$(error [ERROR] CONFIG_INSTALLDIR not define!!) endif $(MAKE) -C initramfs install @$(foreach MODULES, $(INSTALL_MODULE), $(MAKE) -C ./$(MODULES) install CONFIG_INSTALLDIR=$(CONFIG_INSTALLDIR) ; ) @$(MAKE) -C customer/$(CUSTOMER_NAME)/public/sound install $(BUILD_MODULE): customer @$(MAKE) -C $@ all customer: ifdef CONFIG_SUPPORT_PANNEL_PHOTO_TEST @$(MAKE) -C customer gen_pnltestpattern endif @$(MAKE) -C customer create_buildfiles @$(MAKE) -C customer gen_multipanelbin @$(MAKE) -C customer all ifdef CONFIG_SUPPORT_NVM_ENABLE_AUTOUPDATEVESION_TOOL @$(MAKE) -C customer gen_datasetting endif ifdef CONFIG_SUPPORT_NES_FLASH @$(MAKE) -C customer gen_gamebin endif
aps/customer/Makefile:gen_multipanelbin如下:
# include ir makefile include ./$(CUSTOMER_NAME)/public/ir/makefile.ini IR_MAP_WILLBEBUILD = $(foreach file, $(IR_MAP), $(addprefix build_, $(file))) SRCS_LIST += $(IR_MAP_WILLBEBUILD) include ./$(CUSTOMER_NAME)/public/panel/makefile.ini #*************************************************************************** # Build binary file for drivers #*************************************************************************** .PHONY: create_buildfiles gen_customerdata4driver all clean_loop gen_pnltestpattern gen_datasetting gen_gamebin create_buildfiles: ifdef CONFIG_SUPPORT_PROJECT_ID @$(MAKE) -C ./$(CUSTOMER_NAME) create_buildfiles @$(MAKE) -C ./$(CUSTOMER_NAME) all endif @../../tools/gen_customertablebefore.pl $(DRV_CUSTMERFILES_B_WITHPATH) $(DRV_CUSTMERFILES_B1_WITHPATH) $(DRV_CUSTMERFILES_B2_WITHPATH) \
$(DRV_CUSTMERFILES_C_WITHPATH) $(IR_MAP_WITHPATH) gen_multipanelbin: @../../tools/gen_paneltable.pl -M "$(CONFIG_PANEL_TYPE)" -P ./$(CUSTOMER_NAME)/public/panel/ 、
-B ../$(CUSTOMER_BOARD_PATH)/adaptable/ -L ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/logo -F ./$(CUSTOMER_NAME)/public/panel/$(CONFIG_PANEL_TYPE_DEFAULT_FOLDER) -V `echo $(CONFIG_CHIPID) | sed ‘s/0x//‘` --panel_ini2bin ../../tools/pnlset2bin/pnlset2bin --VIP_ini2bin ../../tools/vip2bin/vip2bin --lzma ../../tools/lzma460/lzma -I $(CONFIG_PANEL_TYPE_DEFAULT_FOLDER) -X "n"
“gen_paneltable.pl”根据makefile.ini定义的$(CONFIG_PANEL_TYPE)与“panel_setting.h”生成屏参目录下的“PanelSet_XXX.bin”文件。
标签:core ash begin orm oop code erro make 执行
原文地址:http://www.cnblogs.com/jiangzhaowei/p/7763499.html