Makefile 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. export CONFIG_FILE = .config
  2. export ROOT_DIR = $(shell pwd)/..
  3. export BUILD_DIR = $(ROOT_DIR)/build
  4. export OUT_DIR = $(ROOT_DIR)/out
  5. export SDK_DIR=$(ROOT_DIR)/sdk
  6. export SDK_BOOT_DIR=$(SDK_DIR)/Boot
  7. export SDK_COMMON_DIR=$(SDK_DIR)/Common
  8. export SDK_DRIVER_DIR=$(SDK_DIR)/Driver
  9. export SDK_MIDDLEWARE_DIR=$(SDK_DIR)/MiddleWare
  10. export SDK_PQ_DIR=$(SDK_DIR)/PQlib
  11. export SDK_PM_DIR=$(SDK_DIR)/PM
  12. export SDK_VOS_DIR=$(SDK_DIR)/Vos
  13. export USER_DIR=$(ROOT_DIR)/user
  14. export USER_DDCCI_DIR=$(ROOT_DIR)/user/Comm/DDCCI
  15. export USER_DDCCI_PRODUCT_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/DDCCI
  16. export USER_OSD_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/OSD
  17. export USER_DATABASE_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/DataBase
  18. export USER_PINSHARE_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/Pinshare
  19. export USER_LED_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/Led
  20. export USER_PANEL_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/Panel
  21. export USER_KEYPAD_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/Keypad
  22. export USER_IR_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/IR
  23. export USER_EDID_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/EDID
  24. export USER_PQ_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/PQ
  25. export USER_PLATFORM_DIR=$(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/Platform
  26. export TOOLS_DIR=$(ROOT_DIR)/tools
  27. export TOOLS_FLASH_DIR=$(ROOT_DIR)/tools/flash_tool
  28. export TOOLS_OSD_DIR=$(ROOT_DIR)/tools/osd_tool
  29. export TOOLS_PQ_DIR=$(ROOT_DIR)/tools/pq_tool
  30. export SDK_PREBUILD_DIR=$(ROOT_DIR)/Prebuilds
  31. export CONFIG_SDK_LIB = libboot.a libvos.a libdriver.a libcommon.a libmiddleware.a
  32. export CONFIG_USER_LIB = libosd.a libddcci.a libdatabase.a libedid.a libplatform.a
  33. export CONFIG_SDK_PREBUILD_LIB = libddr.a libpq.a libDispCtrl.a libbcon.a libAesKey.a libHdmiCal.a libDpRxCal.a libHdcpCal.a libHdcpEngine.a libDpuDcw.a
  34. export CONFIG_SDK_PREBUILD_NO_LIB = libzero.a
  35. all:
  36. MULTI_DEPEND_TARGET=
  37. MULTI_DEPEND_TARGETD=
  38. MULTI_TARGET_CLEAN=
  39. ifeq ($(wildcard $(ROOT_DIR)/out/$(CONFIG_FILE)),)
  40. $(error ".config not exist,please exe ./project_config.sh first" )
  41. endif
  42. include $(ROOT_DIR)/out/$(CONFIG_FILE)
  43. include $(BUILD_DIR)/compile/$(CONFIG_CHIP)/common.inc
  44. include $(BUILD_DIR)/compile/$(CONFIG_CHIP)/sdk_targets.inc
  45. include $(BUILD_DIR)/compile/$(CONFIG_CHIP)/user_targets.inc
  46. #include $(BUILD_DIR)/compile/$(CONFIG_CHIP)/prebuilds.inc
  47. PRE_CHECK:
  48. @echo "Compile Begin************************"
  49. @mkdir -p $(BUILD_OUT_IMG_DIR)
  50. @mkdir -p $(BUILD_OUT_OBJ_DIR)
  51. @cp $(ROOT_DIR)/user/$(CONFIG_VENDOR)/$(CONFIG_PROJECT)/Prebuilds/$(CONFIG_CHIP)_pm.bin $(BUILD_OUT_IMG_DIR)/
  52. @cp $(ROOT_DIR)/prebuilds/*.a $(BUILD_OUT_IMG_DIR)/
  53. define POST_CHECK
  54. @echo "Compile Finish************************"
  55. @echo "Merge Bin*****************************"
  56. @dd if=$(BUILD_OUT_IMG_DIR)/$(CONFIG_CHIP)_pm.bin of=$(BUILD_OUT_IMG_DIR)/tmp_pm.bin ibs=32768 conv=sync
  57. @cat $(BUILD_OUT_IMG_DIR)/tmp_pm.bin $(BUILD_OUT_IMG_DIR)/Monitor_SOC.bin > $(BUILD_OUT_IMG_DIR)/Monitor_SOC_PM.bin
  58. @rm $(BUILD_OUT_IMG_DIR)/tmp_pm.bin
  59. @cp $(BUILD_OUT_IMG_DIR)/Monitor_SOC_PM.bin $(OUT_DIR)/
  60. @cp $(BUILD_OUT_IMG_DIR)/silicon* $(OUT_DIR)/
  61. @cp $(BUILD_OUT_IMG_DIR)/ddr* $(OUT_DIR)/
  62. @cp $(BUILD_OUT_IMG_DIR)/$(CONFIG_CHIP)_pm.bin $(OUT_DIR)/pm.bin
  63. @echo "Merge Bin Finish**********************"
  64. endef
  65. all:debug
  66. debug:PRE_CHECK $(MULTI_DEPEND_TARGETD)
  67. @$(MAKE) debug COMPILE_MODE=debug -C "$(BUILD_OUT_OBJ_DIR)" -f $(BUILD_DIR)/Makefile.mk
  68. $(call POST_CHECK)
  69. release:PRE_CHECK $(MULTI_DEPEND_TARGET)
  70. @$(MAKE) release COMPILE_MODE=release -C "$(BUILD_OUT_OBJ_DIR)" -f $(BUILD_DIR)/Makefile.mk
  71. $(call POST_CHECK)
  72. #$(MULTI_TARGET_CLEAN)
  73. clean:
  74. @rm -f $(BUILD_OUT_IMG_DIR)/*
  75. @rm -f $(BUILD_OUT_OBJ_DIR)/*
  76. @rm -rf $(OUT_DIR)/*.bin
  77. @rm -rf $(OUT_DIR)/compressed/*
  78. @rm -rf $(OUT_DIR)/ddr*
  79. @rm -rf $(OUT_DIR)/silicon*
  80. #IP=172.16.204.41:3333 need input
  81. gdb:PRE_CHECK $(MULTI_DEPEND_TARGETD)
  82. @$(MAKE) gdb COMPILE_MODE=debug -C "$(BUILD_OUT_OBJ_DIR)" -f $(BUILD_DIR)/Makefile.mk