Makefile 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. #include UCLICDIR and CROSS
  2. include ../Makefile.project
  3. include ../Makefile.toolchain
  4. #***************************************************************************
  5. # Define Environment Variables
  6. #***************************************************************************
  7. CC = gcc
  8. CFLAGS += -isystem $(UCLIBCDIR)/usr/include -I../../../kernel/linux/include -I../../include
  9. CFLAGS += -D_GNU_SOURCE
  10. ifeq ($(APP_FOLDER_NAME), rda_dtv)
  11. RESOURCES_LAN_NAME = resources_8bpp
  12. else
  13. RESOURCES_LAN_NAME = resources
  14. endif
  15. #***************************************************************************
  16. # Define Compile Macros
  17. #***************************************************************************
  18. # Target library name
  19. TARGET_STATIC = ../lib/libcustomization.a
  20. IR_NUM = $(shell grep "CONFIG_ROMOTE_CTL_NUM" ../../project.h | grep -o '[0-9]*')
  21. #***************************************************************************
  22. # Include
  23. #***************************************************************************
  24. INCLUDE += -I../include \
  25. -I../../drivers/include \
  26. -I./$(CUSTOMER_NAME)/public/ir_tx \
  27. -I./$(CUSTOMER_NAME)/public/ir_set \
  28. -I./$(CUSTOMER_NAME)/public/ir \
  29. -I./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME) \
  30. -I../application/daemon/include \
  31. -I../include/middleware/display \
  32. -I../include/gsl \
  33. -I../include/middleware/ioctl_interface \
  34. -I../include/middleware/database \
  35. -I../include/middleware/dtv/dtvscan \
  36. -I../include/middleware/dtv/dtvcommon \
  37. -I../include/middleware/dtv/dtvsipsi \
  38. -I../include/middleware/atv/atv_scan \
  39. -I../include/middleware/dtv/dtvepg \
  40. -I../include/middleware/tvfe \
  41. -I../include/middleware/media \
  42. -I../include/app_infra \
  43. -I../application/$(APPDIR_NAME)/function/app_common_api/include \
  44. -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include/app_common_api \
  45. -I../application/app_frmwrk/dvb/include \
  46. -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include \
  47. -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include/guiobj \
  48. -I../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/atv/include/app_atv_api \
  49. -I./$(CUSTOMER_NAME)/$(BOARD_NAME)/adaptable \
  50. -I./$(CUSTOMER_NAME)/$(CONFIG_MODEL_BOARD_NAME)/nvmem \
  51. -I./$(CUSTOMER_NAME)/public/panel/$(subst ",,$(CONFIG_PANEL_TYPE_DEFAULT_FOLDER)) \
  52. #ifeq ($(CONFIG_STORE_PNL_ID_2PNLBIN),y)
  53. INCLUDE += -I./$(CUSTOMER_NAME)/public/panel/
  54. #endif
  55. include ./$(CUSTOMER_NAME)/public/ir_tx/ir_txinclude.in
  56. include ./$(CUSTOMER_NAME)/public/ir/irinclude.in
  57. #***************************************************************************
  58. # Please add those files follow "DRV_CUSTOMERFILES_B" or "DRV_CUSTOMERFILES_C" if
  59. # 1. they are prepared for drivers
  60. # 2. drivers used only
  61. # 3. will be packed to binary file
  62. # DRV_CUSTOMERFILES_B means those files locate at board path.
  63. # DRV_CUSTOMERFILES_C means those files locate at SubSubCustomer path.
  64. #***************************************************************************
  65. DRV_CUSTOMERFILES_B = gpio_table.c \
  66. 8051_param_table.c \
  67. cust_system_info.c \
  68. kmf_share_data.c \
  69. scart_mapping_table.c \
  70. keypad_mapping_table.c \
  71. electricity_pwm_table.c
  72. DRV_CUSTOMERFILES_B1 = edid.c
  73. DRV_CUSTOMERFILES_B2 = barcode.c
  74. ifdef CONFIG_SUPPORT_PROJECT_ID
  75. DRV_CUSTOMERFILES_B3 = picture_wb_data.c
  76. endif
  77. DRV_CUSTOMERFILES_C = video_hdmi_timing_table.c \
  78. adc_overscan_table.c \
  79. video_scartRGB_timing_table.c \
  80. video_pc_timing_table.c \
  81. aspectRatioTable.c \
  82. hdmi_overscan_table.c \
  83. video_hdtv_timing_table.c \
  84. cvd2_overscan_table.c \
  85. video_mpeg_timing_table.c \
  86. mpeg_overscan_table.c \
  87. video_cvd2_timing_table.c \
  88. DRV_CUSTOMERFILES_WB_C = wbdata.c
  89. DRV_CUSTOMERFILES_WB = ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)/$(DRV_CUSTOMERFILES_WB_C)
  90. VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)
  91. SRCS_LIST += $(addprefix build_, $(DRV_CUSTOMERFILES_WB_C))
  92. # Source codes
  93. # all .c files within aps/customer/actually_customer/board/adaptable
  94. VPATH += ../$(CUSTOMER_BOARD_PATH)/adaptable
  95. DRV_CUSTOMERFILES_B_WILLBEBUILD = \
  96. $(foreach file, $(DRV_CUSTOMERFILES_B), $(addprefix build_, $(file)))
  97. SRCS_LIST += $(DRV_CUSTOMERFILES_B_WILLBEBUILD)
  98. DRV_CUSTMERFILES_B_WITHPATH = \
  99. $(foreach file, $(DRV_CUSTOMERFILES_B), $(addprefix ../$(CUSTOMER_BOARD_PATH)/adaptable/, $(file)))
  100. VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/edid
  101. DRV_CUSTOMERFILES_B1_WILLBEBUILD = \
  102. $(foreach file, $(DRV_CUSTOMERFILES_B1), $(addprefix build_, $(file)))
  103. SRCS_LIST += $(DRV_CUSTOMERFILES_B1_WILLBEBUILD)
  104. DRV_CUSTMERFILES_B1_WITHPATH = \
  105. $(foreach file, $(DRV_CUSTOMERFILES_B1), $(addprefix ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/edid/, $(file)))
  106. VPATH += ./$(CUSTOMER_NAME)/public/barcode
  107. DRV_CUSTOMERFILES_B2_WILLBEBUILD = \
  108. $(foreach file, $(DRV_CUSTOMERFILES_B2), $(addprefix build_, $(file)))
  109. SRCS_LIST += $(DRV_CUSTOMERFILES_B2_WILLBEBUILD)
  110. DRV_CUSTMERFILES_B2_WITHPATH = \
  111. $(foreach file, $(DRV_CUSTOMERFILES_B2), $(addprefix ./$(CUSTOMER_NAME)/public/barcode/, $(file)))
  112. ifdef CONFIG_SUPPORT_PROJECT_ID
  113. VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)
  114. DRV_CUSTOMERFILES_B3_WILLBEBUILD = \
  115. $(foreach file, $(DRV_CUSTOMERFILES_B3), $(addprefix build_, $(file)))
  116. SRCS_LIST += $(DRV_CUSTOMERFILES_B3_WILLBEBUILD)
  117. DRV_CUSTMERFILES_B3_WITHPATH = \
  118. $(foreach file, $(DRV_CUSTOMERFILES_B3), $(addprefix ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/system_setting/$(APP_FOLDER_NAME)/, $(file)))
  119. endif
  120. # all .c files within aps/customer/actually_customer/subcustomer/subsubcustomer
  121. VPATH += ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/timing_info/
  122. DRV_CUSTOMERFILES_C_WILLBEBUILD = \
  123. $(foreach file, $(DRV_CUSTOMERFILES_C), $(addprefix build_, $(file)))
  124. SRCS_LIST += $(DRV_CUSTOMERFILES_C_WILLBEBUILD)
  125. DRV_CUSTMERFILES_C_WITHPATH = \
  126. $(foreach file, $(DRV_CUSTOMERFILES_C), $(addprefix ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/timing_info/, $(file)))
  127. # include ir makefile
  128. include ./$(CUSTOMER_NAME)/public/ir/makefile.ini
  129. IR_MAP_WILLBEBUILD = \
  130. $(foreach file, $(IR_MAP), $(addprefix build_, $(file)))
  131. SRCS_LIST += $(IR_MAP_WILLBEBUILD)
  132. # include panle's makefile
  133. ifdef PJ
  134. CONFIG_PANEL_TYPE = $(shell grep ^CONFIG_PANEL_TYPE ../../menuconfig.config | awk 'BEGIN {FS="\""}{print $$2}' | sed 's/=y//g')
  135. else
  136. include ./$(CUSTOMER_NAME)/public/panel/makefile.ini
  137. endif
  138. #***************************************************************************
  139. # Build binary file for drivers
  140. #***************************************************************************
  141. .PHONY: create_buildfiles gen_customerdata4driver all clean_loop gen_pnltestpattern gen_datasetting gen_gamebin gen_estickerbin
  142. create_buildfiles:
  143. ifdef CONFIG_SUPPORT_PROJECT_ID
  144. @$(MAKE) -C ./$(CUSTOMER_NAME) create_buildfiles
  145. @$(MAKE) -C ./$(CUSTOMER_NAME) all
  146. endif
  147. @../../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)
  148. gen_customerdata4driver: $(TARGET_STATIC)
  149. @../../tools/gen_customertableafter.pl -L $(TARGET_STATIC) -F ./customertable.log \
  150. -T $(OBJCOPY) -O ../$(CUSTOMER_BOARD_PATH)/adaptable/customertable4driver.bin \
  151. -S "gGPIOTableAux gCust8051ParamTable gMainSysInfo gBootSysInfo gKmfShareData gEDIDtable gBARCodetable pic_wb_data KeypadInfo KeypadFacInfo $(IR_MAP_TABLE) wbdata"
  152. @cat ../$(CUSTOMER_BOARD_PATH)/adaptable/gGPIOTableAux.bin \
  153. ../$(CUSTOMER_BOARD_PATH)/adaptable/gCust8051ParamTable.bin \
  154. > ../$(CUSTOMER_BOARD_PATH)/adaptable/option.bin
  155. mv ../$(CUSTOMER_BOARD_PATH)/adaptable/gEDIDtable.bin ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/edid/.
  156. mv ../$(CUSTOMER_BOARD_PATH)/adaptable/gBARCodetable.bin ./$(CUSTOMER_NAME)/public/barcode/.
  157. $(OBJCOPY) --only-section=.customer.gGPIOTableMain -O binary objs/build_gpio_table.o gGPIOTableMain.bin
  158. mv gGPIOTableMain.bin ../$(CUSTOMER_BOARD_PATH)/adaptable/
  159. ifneq ($(IR_NUM), 0)
  160. mv ../$(CUSTOMER_BOARD_PATH)/adaptable/dIR*.bin ./$(CUSTOMER_NAME)/public/ir/.
  161. endif
  162. gen_multipanelbin:
  163. ifdef CONFIG_SUPPORT_PROJECT_ID
  164. ifdef CONFIG_STORE_FIXEDID_2BIN
  165. @../../tools/gen_paneltableEx.pl -P ./$(CUSTOMER_NAME)/public/panel/ -B ../$(CUSTOMER_BOARD_PATH)/adaptable/ -L ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/logo \
  166. -F ./$(CUSTOMER_NAME)/public/panel/$(CONFIG_PANEL_TYPE_DEFAULT_FOLDER) \
  167. -V `echo $(CONFIG_CHIPID) | sed 's/0x//'` --panel_ini2bin ../../tools/pnlset2bin/pnlset2bin --VIP_ini2bin ../../tools/vip2bin/vip2bin \
  168. --lzma ../../tools/lzma460/lzma -I $(CONFIG_PANEL_TYPE_DEFAULT_FOLDER)
  169. else
  170. $(error Please undefine CONFIG_SUPPORT_PROJECT_ID if not defined CONFIG_STORE_FIXEDID_2BIN !)
  171. endif
  172. else
  173. @../../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 \
  174. -F ./$(CUSTOMER_NAME)/public/panel/$(CONFIG_PANEL_TYPE_DEFAULT_FOLDER) \
  175. -V `echo $(CONFIG_CHIPID) | sed 's/0x//'` --panel_ini2bin ../../tools/pnlset2bin/pnlset2bin --VIP_ini2bin ../../tools/vip2bin/vip2bin \
  176. --lzma ../../tools/lzma460/lzma -I $(CONFIG_PANEL_TYPE_DEFAULT_FOLDER) -X "n"
  177. endif
  178. gen_pnltestpattern:
  179. @../../tools/gen_pnltestpattern.sh ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/pnltestpattern
  180. gen_datasetting:
  181. echo "gen_datasetting"
  182. #step1:get data setting struct information
  183. @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
  184. @../../tools/gen_systemsettingmapping.pl -I app_data_setting_E.h -O ./
  185. gcc $(INCLUDE) -c -include $(APSDIR)/include/project.h ./syssetting_mapping.c -o data_struct.o
  186. #step2: get data setting date information
  187. @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
  188. #setp3:update version
  189. @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 \
  190. -i data_struct.o \
  191. #setp4:delete temp file
  192. @rm app_data_setting_E.h
  193. @rm syssetting_mapping.c
  194. @rm syssetting_mapping.h
  195. @rm data_struct.o
  196. @rm data_setting.o
  197. gen_gamebin:
  198. echo "gen_gamebin"
  199. @python ../../tools/gen_gamebin.py -i ./$(CUSTOMER_NAME)/public/gamerom
  200. gen_langmode:
  201. @-rm ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/umf.TV_IDL_.*
  202. @-rm ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/umflang.ld
  203. ifndef CONFIG_TV_NEW_UI
  204. ifeq ($(CONFIG_SUPPORT_64M_DTV), y)
  205. ifdef CONFIG_ENABLE_UMF_LANGUAGE_MODULES
  206. echo "gen_langmode"
  207. 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 \
  208. -m ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME) -u ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME) \
  209. -l ../../mergedir -r .. -a ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include -b ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include \
  210. -c ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)
  211. else
  212. echo "gen_langmode, just delete temp file. now, s2tek formal old resources need"
  213. 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 \
  214. -m ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/$(RESOURCES_LAN_NAME) -u ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME) \
  215. -l ../../mergedir -r .. -a ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include -b ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME)/include \
  216. -c ../application/$(CUSTOMER_NAME)/$(APP_FOLDER_NAME) -d yes
  217. endif
  218. endif
  219. else #else<CONFIG_TV_NEW_UI>
  220. ifdef CONFIG_ENABLE_UMF_LANGUAGE_MODULES
  221. #TODO
  222. $(error error:CONFIG_TV_NEW_UI don't support CONFIG_ENABLE_UMF_LANGUAGE_MODULES.please modify menuconfig")
  223. endif
  224. endif
  225. gen_usb_macst:
  226. echo "gen_usb_macst"
  227. ifdef CONFIG_SUPPORT_ANDROID_MCAST
  228. @../../tools/gen_compressmod.pl ../../tools/lzma460/lzma ../middleware/usb_mcast/usb_cast_bin/adb ../middleware/usb_mcast/usb_cast_bin/adb.bin
  229. endif
  230. ifdef CONFIG_SUPPORT_IPHONE_ICAST
  231. @../../tools/gen_compressmod.pl ../../tools/lzma460/lzma ../middleware/usb_mcast/usb_cast_bin/icast ../middleware/usb_mcast/usb_cast_bin/icast.bin
  232. endif
  233. gen_estickerbin:
  234. echo "gen_estickerbin"
  235. @python ../../tools/gen_esticker.py -i ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/logo/esticker
  236. all: gen_customerdata4driver
  237. rm -fr ./*.P ./*.o objs
  238. rm -fr ../$(CUSTOMER_BOARD_PATH)/adaptable/build_*
  239. rm -fr ./$(CUSTOMER_NAME)/sub_customer/$(SUBCUSTOMER_NAME)/$(SUBSUBCUSTOMER_NAME)/timing_info/build_*
  240. clean_loop: clean
  241. rm -fr $(TARGET_STATIC)
  242. rm -fr ../$(CUSTOMER_BOARD_PATH)/adaptable/customertable4driver.bin
  243. # include common make rule
  244. include ../rules.mak