1. 程式人生 > >RDA 多屏參流程

RDA 多屏參流程

system lld t420 ann customer 創建 findstr amp 叠代

Makefile.pj 定義的"make mconfig"的執行過程:

customer:
    ./tools/gen_customer.pl -C aps/customer -E aps/external

mconfig: customer
ifndef PJ
    @[ -e [email protected] ] && mv -f [email protected] .config; ./tools/mconf/mconf [email protected]; mv -f .config [email protected]
    @NEW_CUSTOMER_NAME=`grep CONFIG_CUSTOMER_NAME [email protected] | awk 
BEGIN {FS="\""}{print $$2}`; NEW_SUB_NAME=`grep CONFIG_SUBCUSTOMER_NAME [email protected] | awk BEGIN {FS="\""}{print $$2}`; NEW_SUBSUB_NAME=`grep CONFIG_SUBSUBCUSTOMER_NAME [email protected] | awk BEGIN {FS="\""}{print $$2}`; NEW_MODEL_BOARD_NAME=`grep CONFIG_MODEL_BOARD_NAME [email protected] | 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”文件。

RDA 多屏參流程