Makefile.pj 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. TOP=.
  2. include $(TOP)/env.conf
  3. build_dir=s2
  4. ifdef PJ
  5. BIN_FILENAME=$(shell sed -n 's/^CONFIG_BIN_FILENAME=\"\(.\+\)\"/\1/p' $(PJ))
  6. CHIP_ID=$(shell sed -n 's/^CONFIG_CHIPID=0x\(.\+\)/\1/p' $(PJ))
  7. KERNEL_VERSION=$(sed -n 's/^CONFIG_KERNEL_VERSION_\(.\+\)=y/\1/p' $(PJ) | sed 's/_/\./g')
  8. else
  9. BIN_FILENAME=$(shell sed -n 's/^CONFIG_BIN_FILENAME=\"\(.\+\)\"/\1/p' menuconfig.config)
  10. CHIP_ID=$(shell sed -n 's/^CONFIG_CHIPID=0x\(.\+\)/\1/p' menuconfig.config)
  11. KERNEL_VERSION=$(shell sed -n 's/^CONFIG_KERNEL_VERSION_\(.\+\)=y/\1/p' menuconfig.config | sed 's/_/\./g')
  12. endif
  13. define GET_BIN_FILENAME
  14. $(shell sed -n 's/.*CONFIG_BIN_FILENAME\s\+\"\(.\+\)\"/\1/p' project.h)
  15. endef
  16. #ifeq ($(CONFIG_VERSION),release)
  17. #CONFIG_S2DRV=y
  18. #else
  19. #CONFIG_S2DRV=m
  20. #endif
  21. #parse menuconfig::kernel hack settings
  22. define parse_menuconfig
  23. @grep -q 'CONFIG_KALLSYMS_MENU=y' menuconfig.config; \
  24. if [ $$? == 0 ]; \
  25. then \
  26. sed -i 's/# CONFIG_KALLSYMS is not set/CONFIG_KALLSYMS=y\n# CONFIG_KALLSYMS_ALL is not set\n# CONFIG_KALLSYMS_EXTRA_PASS is not set/g' ./kernel/linux-$(KERNEL_VERSION)/330_dtv.config; \
  27. sed -i 's/# CONFIG_KALLSYMS is not set/CONFIG_KALLSYMS=y\n# CONFIG_KALLSYMS_ALL is not set\n# CONFIG_KALLSYMS_EXTRA_PASS is not set/g' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi.config; \
  28. grep -q 'CONFIG_KERNEL_VERSION_3_0_8=y' menuconfig.config; \
  29. if [ $$? == 0 ]; \
  30. then \
  31. sed -i 's/# CONFIG_KALLSYMS is not set/CONFIG_KALLSYMS=y\n# CONFIG_KALLSYMS_ALL is not set\n# CONFIG_KALLSYMS_EXTRA_PASS is not set/g' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi_AIC8800.config; \
  32. fi \
  33. fi
  34. @grep -q '# CONFIG_KALLSYMS_MENU is not set' menuconfig.config; \
  35. if [ $$? == 0 ]; \
  36. then \
  37. sed -i 's/CONFIG_KALLSYMS=y/# CONFIG_KALLSYMS is not set/g' ./kernel/linux-$(KERNEL_VERSION)/330_dtv.config; \
  38. sed -i '/CONFIG_KALLSYMS_ALL/d' ./kernel/linux-$(KERNEL_VERSION)/330_dtv.config; \
  39. sed -i '/CONFIG_KALLSYMS_EXTRA_PASS/d' ./kernel/linux-$(KERNEL_VERSION)/330_dtv.config; \
  40. sed -i 's/CONFIG_KALLSYMS=y/# CONFIG_KALLSYMS is not set/g' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi.config; \
  41. sed -i '/CONFIG_KALLSYMS_ALL/d' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi.config; \
  42. sed -i '/CONFIG_KALLSYMS_EXTRA_PASS/d' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi.config; \
  43. grep -q 'CONFIG_KERNEL_VERSION_3_0_8=y' menuconfig.config; \
  44. if [ $$? == 0 ]; \
  45. then \
  46. sed -i 's/CONFIG_KALLSYMS=y/# CONFIG_KALLSYMS is not set/g' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi_AIC8800.config; \
  47. sed -i '/CONFIG_KALLSYMS_ALL/d' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi_AIC8800.config; \
  48. sed -i '/CONFIG_KALLSYMS_EXTRA_PASS/d' ./kernel/linux-$(KERNEL_VERSION)/330_dtv_wifi_AIC8800.config; \
  49. fi \
  50. fi
  51. @grep -q 'CONFIG_ETHERNET_MAC_ADDRESS=' menuconfig.config; \
  52. if [ $$? == 0 ]; \
  53. then \
  54. grep CONFIG_ETHERNET_MAC_ADDRESS menuconfig.config > mac_addr.tmp; \
  55. sed -i 's/CONFIG_ETHERNET_MAC_ADDRESS="//g' mac_addr.tmp; \
  56. sed -i 's/"//g' mac_addr.tmp; \
  57. if [ "`sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$$/p" mac_addr.tmp`" = "" ]; \
  58. then echo -e '\033[31mMAC address error! Please input the MAC address with the format "\033[32mxx:xx:xx:xx:xx:xx\033[31m".\033[0m'; \
  59. echo ''; \
  60. exit 1; \
  61. fi; \
  62. MAC_ADDRESS=`sed 's/:/, 0x/g' mac_addr.tmp`; \
  63. sed -i "/Mac/s/^.*Mac/\t{0x55, 0xAA, 0xAA, 0x55, 0x$$MAC_ADDRESS}, \/\/Mac/g" ./aps/$(CUSTOMER_BOARD_PATH)/adaptable/8051_param_table.c; \
  64. rm -f mac_addr.tmp; \
  65. fi
  66. endef
  67. DATE_TIME = `/bin/date +%Y%m%d_%H%M`
  68. BUILD_TIMESTAMP=$(shell date --rfc-3339=seconds)
  69. SW_VERSION_TEMP = \"`svn info $(TOP) 2>&1 |grep Revision|sed 's/Revision: //g'`\"
  70. BACKUP_FILES = mergedir/System.map mergedir/vmlinux mconfig.config menuconfig.config boardconfig.config
  71. ifeq ($(CONFIG_CORE_DUMP),y)
  72. BACKUP_FILES += aps/application/$(APPDIR_NAME)/umf.gdb
  73. endif
  74. all: release
  75. release:
  76. @$(MAKE) -f Makefile.pj buildimg 2>&1 | /usr/bin/tee log/buildlog-$(DATE_TIME).log
  77. debug:
  78. @$(MAKE) -f Makefile.pj buildimg 2>&1 | /usr/bin/tee log/buildlog-$(DATE_TIME).log
  79. customer:
  80. ifndef PJ
  81. ./tools/gen_customer.pl -C aps/customer -E aps/external
  82. endif
  83. mconfig: customer
  84. ifndef PJ
  85. @[ -e $@.config ] && mv -f $@.config .config; ./tools/mconf/mconf $@.Kconfig; mv -f .config $@.config
  86. @NEW_CUSTOMER_NAME=`grep CONFIG_CUSTOMER_NAME $@.config | awk 'BEGIN {FS="\""}{print $$2}'`; \
  87. NEW_SUB_NAME=`grep CONFIG_SUBCUSTOMER_NAME $@.config | awk 'BEGIN {FS="\""}{print $$2}'`; \
  88. NEW_SUBSUB_NAME=`grep CONFIG_SUBSUBCUSTOMER_NAME $@.config | awk 'BEGIN {FS="\""}{print $$2}'`;\
  89. NEW_MODEL_BOARD_NAME=`grep CONFIG_MODEL_BOARD_NAME $@.config | awk 'BEGIN {FS="\""}{print $$2}'`;\
  90. NEW_CUSTOMER_BOARD_PATH=customer/$${NEW_CUSTOMER_NAME}/$${NEW_MODEL_BOARD_NAME}; \
  91. NEW_PROJECT_NAME=`grep CONFIG_PROJECT_NAME $@.config | awk 'BEGIN {FS="\""}{print $$2}'`;\
  92. NEW_FORMAL_CUSTOMER_PATH=customer/$${NEW_CUSTOMER_NAME}/sub_customer/$${NEW_SUB_NAME}/$${NEW_SUBSUB_NAME}; \
  93. [ -e aps/$${NEW_CUSTOMER_BOARD_PATH}/boardconfig.config ] && cp -f aps/$${NEW_CUSTOMER_BOARD_PATH}/boardconfig.config boardconfig.config; \
  94. [ -e aps/$${NEW_FORMAL_CUSTOMER_PATH}/project/$${NEW_PROJECT_NAME}.config ] && cp -f aps/$${NEW_FORMAL_CUSTOMER_PATH}/project/$${NEW_PROJECT_NAME}.config menuconfig.config;
  95. endif
  96. boardconfig: customer
  97. ifndef PJ
  98. @[ -e aps/$(CUSTOMER_BOARD_PATH)/$@.config ] && cp -f aps/$(CUSTOMER_BOARD_PATH)/$@.config .config; \
  99. ./tools/mconf/mconf $@.Kconfig; mv -f .config $@.config; \
  100. cp -f $@.config aps/$(CUSTOMER_BOARD_PATH)/$@.config;
  101. endif
  102. menuconfig: customer
  103. ifndef PJ
  104. @PROJECT_NAME=`grep CONFIG_PROJECT_NAME mconfig.config | awk 'BEGIN {FS="\""}{print $$2}'`; \
  105. [ -e aps/$(FORMAL_CUSTOMER_PATH)/project/$${PROJECT_NAME}.config ] && cp -f aps/$(FORMAL_CUSTOMER_PATH)/project/$${PROJECT_NAME}.config .config; \
  106. ./tools/mconf/mconf $@.Kconfig; mv -f .config $@.config; \
  107. cp -f $@.config aps/$(FORMAL_CUSTOMER_PATH)/project/$${PROJECT_NAME}.config
  108. $(parse_menuconfig)
  109. endif
  110. clean:
  111. @rm -fr kernel/linux
  112. @rm -fr drivers/DTV
  113. @if [ ! -e kernel/linux-$(KERNEL_VERSION) ]; then echo 'Error: kernel/linux-$(KERNEL_VERSION) is not exist!'; exit 1; fi
  114. @ln -s linux-$(KERNEL_VERSION) ./kernel/linux
  115. @./parser.pl -R `pwd` -M ./Makefile.project
  116. @if [ ! -e ./Makefile.project ]; then echo 'Error: ./Makefile.project is not exist!'; exit 1; fi
  117. @if [ "`sed -n 1p ./Makefile.project`" = "" ]; then echo -e "ERROR! Nothing in Makefile.project!" ; exit 1 ; fi
  118. @cp -f ./Makefile.project ./aps
  119. @cp -f ./Makefile.project ./drivers
  120. @cp -f ./Makefile.project ./kernel/linux
  121. @rm -f .ver
  122. @rm -f mergedir/timestamp_info mergedir/vmlinux.dsc
  123. @rm -f kernel/linux/*.dsc kernel/linux/*.map
  124. -@rm -f ./mergedir/$(GET_BIN_FILENAME)
  125. @$(MAKE) -C ./boot clean PJ=$(PJ)|| exit 1
  126. @$(MAKE) -C ./tools/lzma460 clean PJ=$(PJ)|| exit 1
  127. @$(MAKE) -C ./tools/pnlset2bin clean PJ=$(PJ)|| exit 1
  128. @$(MAKE) -C ./tools/vip2bin clean PJ=$(PJ)|| exit 1
  129. @$(MAKE) -C ./tools/mergeImage clean PJ=$(PJ)|| exit 1
  130. @$(MAKE) -C ./aps clean PJ=$(PJ)|| exit 1
  131. @$(MAKE) -C ./kernel/linux clean PJ=$(PJ)|| exit 1
  132. buildimg:
  133. ifdef PJ
  134. @if [ -e mconfig.config ]; then \
  135. mv mconfig.config .mconfig.config; \
  136. mv boardconfig.config .boardconfig.config; \
  137. mv menuconfig.config .menuconfig.config; \
  138. fi
  139. @rm -f menuconfig.config; ln -s $(PJ) menuconfig.config
  140. endif
  141. #ifeq ($(CONFIG_VERSION),)
  142. # $(error Please use 'make' or 'make release' or 'make debug' to build image)
  143. #endif
  144. ifeq ($(BIN_FILENAME),)
  145. $(error Error: System BIN filename (CONFIG_BIN_FILENAME) is not set)
  146. endif
  147. @if [ ! -d "mergedir" ]; then echo "Error: mergedir is not exist." ; exit 1 ; fi
  148. @if [ ! -e kernel/linux-$(KERNEL_VERSION) ]; then echo "Error: kernel/linux-$(KERNEL_VERSION) does not exist!"; exit 1; fi
  149. # @if [ -e .ver ]; then \
  150. # OLD_VERSION=`awk 'BEGIN {FS="="}; {print $$2}' .ver`; \
  151. # if [ $${OLD_VERSION} != $(CONFIG_VERSION) ]; then \
  152. # echo "**********************************************";\
  153. # echo "version is not matched, do 'make clean' first";\
  154. # echo "**********************************************";\
  155. # $(MAKE) clean; \
  156. # fi;\
  157. # fi
  158. # @rm -f .ver; echo "CONFIG_VERSION=$(CONFIG_VERSION)" > .ver
  159. @echo "*****************"
  160. @if [ "`uname -a | grep "x86_64"`" != "" ]; then echo "* 64bit Server *"; else echo "* 32bit Server *"; fi
  161. @echo "*****************"
  162. @echo "Run parser.pl"
  163. @echo "Gen project.h&Makefile.project&mergeImage.cfg ..."
  164. @./parser.pl -R `pwd` -M ./Makefile.project
  165. ifdef PJ
  166. @./tools/auto_cfg.pl $(PJ)
  167. else
  168. @./tools/auto_cfg.pl ./mconfig.config ./boardconfig.config ./menuconfig.config .ver
  169. endif
  170. @echo "#define TIMESTAMP \"$(BUILD_TIMESTAMP)\"" > aps/include/timestamp.h
  171. @echo "#define TIMESTAMP_F2 \"`date +%Y%m%d_%H%M`\"" >> aps/include/timestamp.h
  172. @if [ -d .svn ] && [ "$SW_VERSION_TEMP" != "" ]; then \
  173. echo "#define SW_SVN_VERSION $(SW_VERSION_TEMP)" > aps/include/svn.h;\
  174. else \
  175. echo "#define SW_SVN_VERSION \"none\"" > aps/include/svn.h; \
  176. fi
  177. @echo "#define SW_BUILDER_ENGINEER \"$(USER)\"" > aps/include/builder_engineer.h
  178. @./tools/reconfig.py ./auto_config.h aps/customer/$(CUSTOMER_NAME)/public/reconfig.ini
  179. @cmp -s ./auto_config.h ./project.h || cat ./auto_config.h > ./project.h
  180. @sed -i 's/^\(\#define[ \t]\+CONFIG[_0-9a-zA-Z]\+[ \t]\+\)\"\([_./0-9a-zA-Z]\+\)\"/\1\2/' ./auto_config.h
  181. @rm -fr ./auto_config.h
  182. @echo "kernel version=$(KERNEL_VERSION)"
  183. @echo "version of kernel source code is kernel/linux-$(KERNEL_VERSION)"
  184. @rm -f kernel/linux
  185. @ln -s linux-$(KERNEL_VERSION) ./kernel/linux
  186. @if [ -e ./project.h ]; then \
  187. if [ "`sed -n 1p ./project.h`" = "" ] ; then echo -e "ERROR! Nothing in project.h!"; exit 1; fi; \
  188. cmp -s ./project.h drivers/include/project.h || cp ./project.h drivers/include/project.h ;\
  189. cmp -s ./project.h aps/include/project.h || cp ./project.h aps/include/project.h ;\
  190. fi
  191. @if [ ! -e ./Makefile.project ]; then echo "Error: no ./Makefile.project exist!"; exit 1; fi
  192. @if [ "`sed -n 1p ./Makefile.project`" = "" ]; then echo -e "ERROR! Nothing in Makefile.project!" ; exit 1 ; fi
  193. @cp -f ./Makefile.project ./aps
  194. @cp -f ./Makefile.project ./drivers
  195. @cp -f ./Makefile.project ./kernel/linux
  196. @rm -f kernel/linux/*.dsc kernel/linux/*.map
  197. @tools/gen_flash_layout.py -f mergedir/flash_layout.gyp -i ./project.h
  198. @echo "****************************"
  199. @echo "* Start Build DTV "
  200. @echo "****************************"
  201. @if [ $(shell grep ^CONFIG_DEMODTYPE boardconfig.config | awk 'BEGIN {FS="\""}{print $$2}') == "UCCP" ]; then \
  202. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dvbt ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dvbt 0 ; \
  203. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dvbt2 ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dvbt2 7 ; \
  204. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dvbc ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dvbc 4 ; \
  205. if [ $(shell grep ^CONFIG_S2TUNERTYPE boardconfig.config | awk 'BEGIN {FS="\""}{print $$2}') == "Rda_5815M" ]; then \
  206. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/slt_Rda_5815M ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/slt 6 ; \
  207. elif [ $(shell grep ^CONFIG_S2TUNERTYPE boardconfig.config | awk 'BEGIN {FS="\""}{print $$2}') == "Airoha_AV2018" ]; then \
  208. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/slt_Rda_5815M ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/slt 6 ; \
  209. else \
  210. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/slt ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/slt 6 ; \
  211. fi;\
  212. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/isdbt ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/isdbt 2 ; \
  213. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/isdbc ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/isdbc 8 ; \
  214. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/atsc ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/atsc 1 ; \
  215. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/j83b ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/j83b 5 ; \
  216. ./tools/uccp_parse_tool ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dtmb ./drivers/Tuner_demod/Ddemod/Uccp/$(CHIP_ID)/Firmware/dtmb 3 ; \
  217. fi;
  218. @cd ./kernel/linux; \
  219. if [ "`grep "CONFIG_SUPPORT_ETHERNET" ./../../drivers/include/project.h`" != "" ]; then \
  220. "`touch 330_dtv_network.config`"; \
  221. elif [ "`grep "CONFIG_SUPPORT_AIC8800" ./../../drivers/include/project.h`" != "" ]; then \
  222. "`touch 330_dtv_wifi_AIC8800.config`"; \
  223. elif [ "`grep "CONFIG_SUPPORT_WIFI" ./../../drivers/include/project.h`" != "" ]; then \
  224. "`touch 330_dtv_wifi.config`"; \
  225. elif [ "`grep "CONFIG_SUPPORT_4G" ./../../drivers/include/project.h`" != "" ]; then \
  226. "`touch 330_dtv_4g.config`"; \
  227. elif [ "`grep "CONFIG_SUPPORT_NES_GAME" ./../../drivers/include/project.h`" != "" ]; then \
  228. "`touch 330_dtv_nesgame.config`"; \
  229. elif [ "`grep "CONFIG_SUPPORT_KEY_BOARD" ./../../drivers/include/project.h`" != "" ]; then \
  230. "`touch 330_dtv_nesgame.config`"; \
  231. elif [ "`grep "CONFIG_TUXERA_FS_NTFS_WRITE_SUPPORT" ./../../drivers/include/project.h`" != "" ]; then \
  232. "`touch 330_dtv_ntfs.config`"; \
  233. elif [ "`grep "CONFIG_FS_EXFAT_SUPPORT" ./../../drivers/include/project.h`" != "" ]; then \
  234. "`touch 330_dtv_exfat.config`"; \
  235. else \
  236. "`touch 330_dtv.config`"; \
  237. fi;\
  238. rm -f .config; \
  239. if [ "`grep "CONFIG_SUPPORT_ETHERNET" ./../../drivers/include/project.h`" != "" ]; then \
  240. #"`cat 330_dtv_network.config > .config`" \
  241. if [ "`grep "CONFIG_SUPPORT_NES_GAME" ./../../drivers/include/project.h`" != "" ]; then \
  242. "`cat 330_dtv_network.config extra_nesgame.config > .config`"; \
  243. else \
  244. ln -fs 330_dtv_network.config .config; \
  245. fi; \
  246. #ln -fs 330_dtv_network.config .config; \
  247. elif [ "`grep "CONFIG_SUPPORT_AIC8800" ./../../drivers/include/project.h`" != "" ]; then \
  248. #"`cat 330_dtv_wifi_AIC8800.config > .config`" \
  249. if [ "`grep "CONFIG_SUPPORT_NES_GAME" ./../../drivers/include/project.h`" != "" ]; then \
  250. "`cat 330_dtv_wifi.config extra_nesgame.config > .config`"; \
  251. else \
  252. ln -fs 330_dtv_wifi_AIC8800.config .config; \
  253. fi; \
  254. #ln -fs 330_dtv_wifi_AIC8800.config .config; \
  255. elif [ "`grep "CONFIG_SUPPORT_WIFI" ./../../drivers/include/project.h`" != "" ]; then \
  256. #"`cat 330_dtv_wifi.config > .config`" \
  257. if [ "`grep "CONFIG_SUPPORT_NES_GAME" ./../../drivers/include/project.h`" != "" ]; then \
  258. "`cat 330_dtv_wifi.config extra_nesgame.config > .config`"; \
  259. else \
  260. ln -fs 330_dtv_wifi.config .config; \
  261. fi; \
  262. #ln -fs 330_dtv_wifi.config .config; \
  263. elif [ "`grep "CONFIG_SUPPORT_4G" ./../../drivers/include/project.h`" != "" ]; then \
  264. #"`cat 330_dtv_4g.config > .config`" \
  265. ln -fs 330_dtv_4g.config .config; \
  266. elif [ "`grep "CONFIG_SUPPORT_NES_GAME" ./../../drivers/include/project.h`" != "" ]; then \
  267. #"`cat 330_dtv_nesgame.config > .config`" \
  268. ln -fs 330_dtv_nesgame.config .config; \
  269. elif [ "`grep "CONFIG_SUPPORT_KEY_BOARD" ./../../drivers/include/project.h`" != "" ]; then \
  270. #"`cat 330_dtv_nesgame.config > .config`" \
  271. ln -fs 330_dtv_nesgame.config .config; \
  272. elif [ "`grep "CONFIG_TUXERA_FS_NTFS_WRITE_SUPPORT" ./../../drivers/include/project.h`" != "" ]; then \
  273. if [ -f extra_exfat.config ]; then \
  274. "`cat 330_dtv_ntfs.config extra_exfat.config > .config`"; \
  275. else \
  276. ln -fs 330_dtv_ntfs.config .config; \
  277. fi; \
  278. elif [ "`grep "CONFIG_FS_EXFAT_SUPPORT" ./../../drivers/include/project.h`" != "" ]; then \
  279. if [ -f extra_exfat.config ]; then \
  280. "`cat 330_dtv.config extra_exfat.config > .config`"; \
  281. else \
  282. ln -fs 330_dtv_exfat.config .config; \
  283. fi; \
  284. else \
  285. #"`cat 330_dtv.config > .config`" \
  286. ln -fs 330_dtv.config .config;\
  287. fi;\
  288. if [ "`grep "CONFIG_GCOV_KERNEL_SUPPORT" ./../../drivers/include/project.h`" != "" ]; then \
  289. ln -fs 330_dtv_gcov.config .config; \
  290. fi;\
  291. if [ "`grep "CONFIG_TRACING_KERNEL" ./../../drivers/include/project.h`" != "" ]; then \
  292. ../../tools/trace_analyze-master/s2_setup_trace.py .config; \
  293. fi;\
  294. rm -rf initramfs; mkdir initramfs; \
  295. $(MAKE) -C ../../tools/lzma460 PJ=$(PJ) || exit 1 ;\
  296. $(MAKE) -C ../../tools/pnlset2bin PJ=$(PJ)|| exit 1 ;\
  297. $(MAKE) -C ../../tools/vip2bin PJ=$(PJ)|| exit 1 ;\
  298. $(MAKE) -C ../../aps all PJ=$(PJ)|| exit 1 ; \
  299. $(MAKE) -C ../../aps install CONFIG_INSTALLDIR=`pwd`/initramfs PJ=$(PJ)|| exit 1 ;\
  300. if [ "`grep "CONFIG_LOAD_UCCP_FW_FROM_FLASH" ./../../drivers/include/project.h`" != "" ]; then \
  301. $(MAKE) -C ../../drivers/Tuner_demod/Ddemod/Uccp/merge_fw install || exit 1;\
  302. fi;\
  303. echo ${BUILD_TIMESTAMP} > initramfs/tmp/timestamp_info ;\
  304. rm -rf `find initramfs/* -name .svn` ;\
  305. if [ "`grep "CONFIG_GCC473" ../../project.h`" != "" ]; then \
  306. mipsel-s2-linux-uclibc-strip -s initramfs/lib/* ;\
  307. mipsel-s2-linux-uclibc-strip -s initramfs/bin/* ;\
  308. mipsel-s2-linux-uclibc-strip -s initramfs/usr/bin/* ;\
  309. else \
  310. mipsel-unknown-linux-uclibc-strip -s initramfs/lib/* ;\
  311. mipsel-unknown-linux-uclibc-strip -s initramfs/bin/* ;\
  312. mipsel-unknown-linux-uclibc-strip -s initramfs/usr/bin/* ;\
  313. fi;\
  314. mkdir initramfs/tmp/ko_bak ;\
  315. mv initramfs/tmp/*.ko initramfs/tmp/ko_bak ;\
  316. if [ "`grep "CONFIG_GCC473" ../../project.h`" != "" ]; then \
  317. mipsel-s2-linux-uclibc-strip -s initramfs/tmp/* ;\
  318. mipsel-s2-linux-uclibc-strip -d initramfs/tmp/ko_bak/* ;\
  319. else \
  320. mipsel-unknown-linux-uclibc-strip -s initramfs/tmp/* ;\
  321. mipsel-unknown-linux-uclibc-strip -d initramfs/tmp/ko_bak/* ;\
  322. fi;\
  323. mv initramfs/tmp/ko_bak/* initramfs/tmp/ ;\
  324. rmdir initramfs/tmp/ko_bak ;\
  325. ../../tools/tar_large_file.py t initramfs;\
  326. $(MAKE) vmlinux.bin CONFIG_S2DRV=y PJ=$(PJ)|| exit 1 ; \
  327. if [ "`grep "CONFIG_GCC473" ../../project.h`" != "" ]; then \
  328. [ -e System.map ] || mipsel-s2-linux-uclibc-nm -n vmlinux | grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' > System.map ;\
  329. else \
  330. [ -e System.map ] || mipsel-unknown-linux-uclibc-nm -n vmlinux | grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' > System.map ;\
  331. fi;\
  332. $(MAKE) -C ../../tools/mergeImage PJ=$(PJ)|| exit 1 ; \
  333. ../../tools/packet/packet $(build_dir)-$(GET_BIN_FILENAME)_$(CHIP_ID) 0x00294801 $(CHIP_ID) || exit 1 ; \
  334. ../../tools/tar_large_file.py d .;
  335. $(MAKE) -C boot PJ=$(PJ)|| exit 1 ;
  336. @rm -f mergedir/vmlinux.dsc; mv kernel/linux/vmlinux.dsc mergedir/
  337. @rm -f mergedir/timestamp_info; ln -s ../kernel/linux/initramfs/tmp/timestamp_info mergedir
  338. @rm -f mergedir/vmlinux; mv kernel/linux/vmlinux mergedir/
  339. @rm -f mergedir/System.map; mv kernel/linux/System.map mergedir/
  340. @./tools/mergeImage/mergeImage mergedir || exit 1
  341. @echo "Packing new debug files and deleting older files ... \c"
  342. -@mv -f mergedir/debug-20*.tar.gz log/ 2>/dev/null; true
  343. @tar zcf mergedir/debug-$(DATE_TIME).tar.gz $(BACKUP_FILES)
  344. @ls log/debug-20* -t | sed -e '1,10d' | xargs -d '\n' rm -f
  345. @ls log/buildlog-* -t | sed -e '1,10d' | xargs -d '\n' rm -f
  346. @echo "done"
  347. @$(MAKE) -f Makefile.pj info PJ=$(PJ)
  348. info:
  349. @echo '-------------------- main code config -------------------'
  350. ifdef PJ
  351. @echo '**** PJ := '$(PJ)
  352. @echo '**** CONFIG_APP_FOLDER_NAME := '$(shell grep ^CONFIG_APP_FOLDER_NAME $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  353. @echo '**** CONFIG_CUSTOMER_NAME := '$(shell grep ^CONFIG_CUSTOMER_NAME $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  354. @echo '**** CONFIG_SUBCUSTOMER_NAME := '$(shell grep ^CONFIG_SUBCUSTOMER_NAME $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  355. @echo '**** CONFIG_SUBSUBCUSTOMER_NAME := '$(shell grep ^CONFIG_SUBSUBCUSTOMER_NAME $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  356. @echo '**** CONFIG_MODEL_BOARD_NAME := '$(shell grep ^CONFIG_MODEL_BOARD_NAME $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  357. @echo '**** CONFIG_PANEL_TYPE_NAME := '$(shell grep ^CONFIG_PANEL_TYPE_DEFAULT $(PJ) | awk 'BEGIN {FS="\""}{print $$2}' | sed 's/=y//g')
  358. @echo '**** Demod := '$(shell grep ^CONFIG_DEMODTYPE $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  359. @echo '**** Tuner := '$(shell grep ^CONFIG_TUNERTYPE $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  360. @echo '**** S_Tuner := '$(shell grep ^CONFIG_S2TUNERTYPE $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  361. @echo '**** LNB := '$(shell grep ^CONFIG_LNBTYPE $(PJ) | awk 'BEGIN {FS="\""}{print $$2}')
  362. @echo '**** AudioRom := '$(shell grep ^CONFIG_AUDIOROMTYPE $(PJ) | awk 'BEGIN {FS="\""}{print $$2}' | sed 's/.bin//g')
  363. @echo '**** ChipID := '$(shell grep ^CONFIG_CHIPID=0x.* $(PJ) | sed 's/CONFIG_CHIPID=0x//g')
  364. else
  365. @echo '**** CONFIG_APP_FOLDER_NAME := '$(shell grep ^CONFIG_APP_FOLDER_NAME mconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  366. @echo '**** CONFIG_CUSTOMER_NAME := '$(shell grep ^CONFIG_CUSTOMER_NAME mconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  367. @echo '**** CONFIG_SUBCUSTOMER_NAME := '$(shell grep ^CONFIG_SUBCUSTOMER_NAME mconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  368. @echo '**** CONFIG_SUBSUBCUSTOMER_NAME := '$(shell grep ^CONFIG_SUBSUBCUSTOMER_NAME mconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  369. @echo '**** CONFIG_MODEL_BOARD_NAME := '$(shell grep ^CONFIG_MODEL_BOARD_NAME mconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  370. @echo '**** CONFIG_PANEL_TYPE_NAME := '$(shell grep ^CONFIG_PANEL_TYPE_DEFAULT mconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  371. ifeq ($(CONFIG_SUPPORT_TCON),y)
  372. @echo '**** TCON PANEL Select := '$(shell sed -n 's/.*CONFIG_\(BOE_\w\+\)/\1/p' project.h)
  373. endif
  374. ifneq ($(filter y,$(CONFIG_DTV_SUPPORT) $(CONFIG_ATV_SUPPORT)),)
  375. @echo '**** Tuner := '$(shell grep ^CONFIG_TUNERTYPE boardconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  376. endif
  377. ifeq ($(CONFIG_DTV_SUPPORT),y)
  378. @echo '**** Demod := '$(shell grep ^CONFIG_DEMODTYPE boardconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  379. endif
  380. ifeq ($(CONFIG_DVB_SYSTEM_DVBS_SUPPORT),y)
  381. @echo '**** S_Tuner := '$(shell grep ^CONFIG_S2TUNERTYPE boardconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  382. @echo '**** LNB := '$(shell grep ^CONFIG_LNBTYPE boardconfig.config | awk 'BEGIN {FS="\""}{print $$2}')
  383. endif
  384. @echo '**** AudioRom := '$(shell grep ^CONFIG_AUDIOROMTYPE menuconfig.config | awk 'BEGIN {FS="\""}{print $$2}' | sed 's/.bin//g')
  385. @echo '**** ChipID := '$(shell grep ^CONFIG_CHIPID=0x.* menuconfig.config | sed 's/CONFIG_CHIPID=0x//g')
  386. endif
  387. @echo '**** Software SVN version := '$(shell svn info $(TOP)|grep Revision|sed 's/Revision: //g')
  388. @echo '**** Modified Date Time := '$(shell svn info $(TOP)|grep Date | awk '{print $$4"\t"$$5}')
  389. @if [ -e .ver ]; then \
  390. OLD_VERSION=`awk 'BEGIN {FS="="}; {print $$2}' .ver`; \
  391. if [ $${OLD_VERSION} == debug ]; then \
  392. echo '**** System version := debug'; \
  393. else \
  394. echo '**** System version := release';\
  395. fi;\
  396. fi
  397. @if [ -e mergedir/$(GET_BIN_FILENAME) ] ; then \
  398. echo '**** BIN size := '`ls -hs mergedir/$(GET_BIN_FILENAME) | awk '{ print $$1}'`;\
  399. fi
  400. @echo '---------------------------------------------------------'
  401. @echo ' '