#include UCLICDIR and CROSS include ../Makefile.project include ../Makefile.toolchain #*************************************************************************** # Define Environment Variables #*************************************************************************** CC = gcc CFLAGS += -isystem $(UCLIBCDIR)/usr/include -I../../../kernel/linux/include -I../../include CFLAGS += -D_GNU_SOURCE ifeq ($(APP_FOLDER_NAME), rda_dtv) RESOURCES_LAN_NAME = resources_8bpp else RESOURCES_LAN_NAME = resources endif #*************************************************************************** # Define Compile Macros #*************************************************************************** # Target library name TARGET_STATIC = ../lib/libcustomization.a IR_NUM = $(shell grep "CONFIG_ROMOTE_CTL_NUM" ../../project.h | grep -o '[0-9]*') #*************************************************************************** # Include #*************************************************************************** INCLUDE += -I../include \ -I../../drivers/include \ -I./$(CUSTOMER_NAME)/public/ir_tx \ -I./$(CUSTOMER_NAME)/public/ir_set \ -I./$(CUSTOMER_NAME)/public/ir \ -I./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME) \ -I../application/daemon/include \ -I../include/middleware/display \ -I../include/gsl \ -I../include/middleware/ioctl_interface \ -I../include/middleware/database \ -I../include/middleware/dtv/dtvscan \ -I../include/middleware/dtv/dtvcommon \ -I../include/middleware/dtv/dtvsipsi \ -I../include/middleware/atv/atv_scan \ -I../include/middleware/dtv/dtvepg \ -I../include/middleware/tvfe \ -I../include/middleware/media \ -I../include/app_infra \ -I../application/$(APPDIR_NAME)/function/app_common_api/include \ -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include/app_common_api \ -I../application/app_frmwrk/dvb/include \ -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include \ -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include/guiobj \ -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/atv/include/app_atv_api \ -I./$(CUSTOMER_NAME)/$(BOARD_NAME)/adaptable \ -I./$(CUSTOMER_NAME)/$(CONFIG_MODEL_BOARD_NAME)/nvmem \ -I./$(CUSTOMER_NAME)/public/panel/$(subst ",,$(CONFIG_PANEL_TYPE_DEFAULT_FOLDER)) \ #ifeq ($(CONFIG_STORE_PNL_ID_2PNLBIN),y) INCLUDE += -I./$(CUSTOMER_NAME)/public/panel/ #endif include ./$(CUSTOMER_NAME)/public/ir_tx/ir_txinclude.in include ./$(CUSTOMER_NAME)/public/ir/irinclude.in #*************************************************************************** # Please add those files follow "DRV_CUSTOMERFILES_B" or "DRV_CUSTOMERFILES_C" if # 1. they are prepared for drivers # 2. drivers used only # 3. will be packed to binary file # DRV_CUSTOMERFILES_B means those files locate at board path. # DRV_CUSTOMERFILES_C means those files locate at SubSubCustomer path. #*************************************************************************** DRV_CUSTOMERFILES_B = gpio_table.c \ 8051_param_table.c \ cust_system_info.c \ kmf_share_data.c \ scart_mapping_table.c \ keypad_mapping_table.c \ electricity_pwm_table.c DRV_CUSTOMERFILES_B1 = edid.c DRV_CUSTOMERFILES_B2 = barcode.c ifdef CONFIG_SUPPORT_PROJECT_ID DRV_CUSTOMERFILES_B3 = picture_wb_data.c endif DRV_CUSTOMERFILES_C = video_hdmi_timing_table.c \ adc_overscan_table.c \ video_scartRGB_timing_table.c \ video_pc_timing_table.c \ aspectRatioTable.c \ hdmi_overscan_table.c \ video_hdtv_timing_table.c \ cvd2_overscan_table.c \ video_mpeg_timing_table.c \ mpeg_overscan_table.c \ video_cvd2_timing_table.c \ DRV_CUSTOMERFILES_WB_C = wbdata.c DRV_CUSTOMERFILES_WB = ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)/$(DRV_CUSTOMERFILES_WB_C) VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME) SRCS_LIST += $(addprefix build_, $(DRV_CUSTOMERFILES_WB_C)) # Source codes # all .c files within aps/customer/actually_customer/board/adaptable VPATH += ../$(CUSTOMER_BOARD_PATH)/adaptable DRV_CUSTOMERFILES_B_WILLBEBUILD = \ $(foreach file, $(DRV_CUSTOMERFILES_B), $(addprefix build_, $(file))) SRCS_LIST += $(DRV_CUSTOMERFILES_B_WILLBEBUILD) DRV_CUSTMERFILES_B_WITHPATH = \ $(foreach file, $(DRV_CUSTOMERFILES_B), $(addprefix ../$(CUSTOMER_BOARD_PATH)/adaptable/, $(file))) VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/edid DRV_CUSTOMERFILES_B1_WILLBEBUILD = \ $(foreach file, $(DRV_CUSTOMERFILES_B1), $(addprefix build_, $(file))) SRCS_LIST += $(DRV_CUSTOMERFILES_B1_WILLBEBUILD) DRV_CUSTMERFILES_B1_WITHPATH = \ $(foreach file, $(DRV_CUSTOMERFILES_B1), $(addprefix ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/edid/, $(file))) VPATH += ./$(CUSTOMER_NAME)/public/barcode DRV_CUSTOMERFILES_B2_WILLBEBUILD = \ $(foreach file, $(DRV_CUSTOMERFILES_B2), $(addprefix build_, $(file))) SRCS_LIST += $(DRV_CUSTOMERFILES_B2_WILLBEBUILD) DRV_CUSTMERFILES_B2_WITHPATH = \ $(foreach file, $(DRV_CUSTOMERFILES_B2), $(addprefix ./$(CUSTOMER_NAME)/public/barcode/, $(file))) ifdef CONFIG_SUPPORT_PROJECT_ID VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME) DRV_CUSTOMERFILES_B3_WILLBEBUILD = \ $(foreach file, $(DRV_CUSTOMERFILES_B3), $(addprefix build_, $(file))) SRCS_LIST += $(DRV_CUSTOMERFILES_B3_WILLBEBUILD) DRV_CUSTMERFILES_B3_WITHPATH = \ $(foreach file, $(DRV_CUSTOMERFILES_B3), $(addprefix ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)/, $(file))) endif # all .c files within aps/customer/actually_customer/subcustomer/subsubcustomer VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/timing_info/ DRV_CUSTOMERFILES_C_WILLBEBUILD = \ $(foreach file, $(DRV_CUSTOMERFILES_C), $(addprefix build_, $(file))) SRCS_LIST += $(DRV_CUSTOMERFILES_C_WILLBEBUILD) DRV_CUSTMERFILES_C_WITHPATH = \ $(foreach file, $(DRV_CUSTOMERFILES_C), $(addprefix ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/timing_info/, $(file))) # 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 panle's makefile ifdef PJ CONFIG_PANEL_TYPE = $(shell grep ^CONFIG_PANEL_TYPE ../../menuconfig.config | awk 'BEGIN {FS="\""}{print $$2}' | sed 's/=y//g') else include ./$(CUSTOMER_NAME)/public/panel/makefile.ini endif #*************************************************************************** # Build binary file for drivers #*************************************************************************** .PHONY: create_buildfiles gen_customerdata4driver all clean_loop gen_pnltestpattern gen_datasetting gen_gamebin gen_estickerbin 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_B3_WITHPATH) $(DRV_CUSTMERFILES_C_WITHPATH) $(IR_MAP_WITHPATH) $(DRV_CUSTOMERFILES_WB) gen_customerdata4driver: $(TARGET_STATIC) @../../tools/gen_customertableafter.pl -L $(TARGET_STATIC) -F ./customertable.log \ -T $(OBJCOPY) -O ../$(CUSTOMER_BOARD_PATH)/adaptable/customertable4driver.bin \ -S "gGPIOTableAux gCust8051ParamTable gMainSysInfo gBootSysInfo gKmfShareData gEDIDtable gBARCodetable pic_wb_data KeypadInfo KeypadFacInfo $(IR_MAP_TABLE) wbdata" @cat ../$(CUSTOMER_BOARD_PATH)/adaptable/gGPIOTableAux.bin \ ../$(CUSTOMER_BOARD_PATH)/adaptable/gCust8051ParamTable.bin \ > ../$(CUSTOMER_BOARD_PATH)/adaptable/option.bin mv ../$(CUSTOMER_BOARD_PATH)/adaptable/gEDIDtable.bin ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/edid/. mv ../$(CUSTOMER_BOARD_PATH)/adaptable/gBARCodetable.bin ./$(CUSTOMER_NAME)/public/barcode/. $(OBJCOPY) --only-section=.customer.gGPIOTableMain -O binary objs/build_gpio_table.o gGPIOTableMain.bin mv gGPIOTableMain.bin ../$(CUSTOMER_BOARD_PATH)/adaptable/ ifneq ($(IR_NUM), 0) mv ../$(CUSTOMER_BOARD_PATH)/adaptable/dIR*.bin ./$(CUSTOMER_NAME)/public/ir/. endif gen_multipanelbin: ifdef CONFIG_SUPPORT_PROJECT_ID ifdef CONFIG_STORE_FIXEDID_2BIN @../../tools/gen_paneltableEx.pl -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) else $(error Please undefine CONFIG_SUPPORT_PROJECT_ID if not defined CONFIG_STORE_FIXEDID_2BIN !) endif else @../../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" endif gen_pnltestpattern: @../../tools/gen_pnltestpattern.sh ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/pnltestpattern gen_datasetting: echo "gen_datasetting" #step1:get data setting struct information @gcc -E -p $(INCLUDE) -include $(APSDIR)/include/project.h ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include/app_common_api/app_data_setting.h -o app_data_setting_E.h @../../tools/gen_systemsettingmapping.pl -I app_data_setting_E.h -O ./ gcc $(INCLUDE) -c -include $(APSDIR)/include/project.h ./syssetting_mapping.c -o data_struct.o #step2: get data setting date information @gcc $(INCLUDE) -c -include $(APSDIR)/include/project.h ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)/app_data_setting.c -o data_setting.o #setp3:update version @python ../../tools/gen_dataSettingVersion.py -m ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)/app_data_setting.c -d data_setting.o \ -i data_struct.o \ #setp4:delete temp file @rm app_data_setting_E.h @rm syssetting_mapping.c @rm syssetting_mapping.h @rm data_struct.o @rm data_setting.o gen_gamebin: echo "gen_gamebin" @python ../../tools/gen_gamebin.py -i ./$(CUSTOMER_NAME)/public/gamerom gen_langmode: @-rm ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/umf.TV_IDL_.* @-rm ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/umflang.ld ifndef CONFIG_TV_NEW_UI ifeq ($(CONFIG_SUPPORT_64M_DTV), y) ifdef CONFIG_ENABLE_UMF_LANGUAGE_MODULES echo "gen_langmode" python ../../tools/gen_LangMode.py -i ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME)/string/_TV_IDL_Combine_for64M.c -s ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME)/string/string_64M.in \ -m ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME) -u ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME) \ -l ../../mergedir -r .. -a ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include -b ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include \ -c ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME) else echo "gen_langmode, just delete temp file. now, s2tek formal old resources need" python ../../tools/gen_LangMode.py -i ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME)/string/_TV_IDL_Combine_for64M.c -s ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME)/string/string_64M.in \ -m ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME) -u ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME) \ -l ../../mergedir -r .. -a ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include -b ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include \ -c ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME) -d yes endif endif else #else ifdef CONFIG_ENABLE_UMF_LANGUAGE_MODULES #TODO $(error error:CONFIG_TV_NEW_UI don't support CONFIG_ENABLE_UMF_LANGUAGE_MODULES.please modify menuconfig") endif endif gen_usb_macst: echo "gen_usb_macst" ifdef CONFIG_SUPPORT_ANDROID_MCAST @../../tools/gen_compressmod.pl ../../tools/lzma460/lzma ../middleware/usb_mcast/usb_cast_bin/adb ../middleware/usb_mcast/usb_cast_bin/adb.bin endif ifdef CONFIG_SUPPORT_IPHONE_ICAST @../../tools/gen_compressmod.pl ../../tools/lzma460/lzma ../middleware/usb_mcast/usb_cast_bin/icast ../middleware/usb_mcast/usb_cast_bin/icast.bin endif gen_estickerbin: echo "gen_estickerbin" @python ../../tools/gen_esticker.py -i ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/logo/esticker all: gen_customerdata4driver rm -fr ./*.P ./*.o objs rm -fr ../$(CUSTOMER_BOARD_PATH)/adaptable/build_* rm -fr ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/timing_info/build_* clean_loop: clean rm -fr $(TARGET_STATIC) rm -fr ../$(CUSTOMER_BOARD_PATH)/adaptable/customertable4driver.bin # include common make rule include ../rules.mak