makefile.mak 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. ###################################################################
  2. # Include Files Directery
  3. ###################################################################
  4. #include $(D_ROOT)/mtk_cust.mak
  5. ###################################################################
  6. # Using GCC
  7. ###################################################################
  8. CROSS_COMPILE ?= arm-linux-androideabi-
  9. AS = $(CROSS_COMPILE)as
  10. LD = $(CROSS_COMPILE)ld
  11. CC = $(CROSS_COMPILE)gcc
  12. CPP = $(CC)-E
  13. AR = $(CROSS_COMPILE)ar
  14. NM = $(CROSS_COMPILE)nm
  15. STRIP = $(CROSS_COMPILE)strip
  16. OBJCOPY = $(CROSS_COMPILE)objcopy
  17. OBJDUMP = $(CROSS_COMPILE)objdump
  18. RANLIB = $(CROSS_COMPILE)RANLIB
  19. THUMB_MODE = TRUE
  20. ###################################################################
  21. # Initialize GCC Compile Parameter
  22. ###################################################################
  23. DEFINE = -D$(MTK_PLATFORM)
  24. OBJCFLAGS = --gap-fill=0xff
  25. AFLAGS_DEBUG = -Wa,-gstabs,
  26. STRIP_SYMBOL = -fdata-sections -ffunction-sections
  27. INCLUDE_FILE = $(INCLUDE_FILE_COMMON)
  28. INCLUDE_FILE += \
  29. -I$(EMIGEN_OUT)/inc \
  30. -I$(MTK_PATH_CUSTOM)/inc \
  31. -I$(D_ROOT)/custom/common/inc \
  32. -I$(D_ROOT)/inc/$(_CHIP) \
  33. -I$(MTK_ROOT_CUSTOM)/$(TARGET)/common \
  34. -I$(MTK_ROOT_CUSTOM)/kernel/dct \
  35. -I$(MTK_ROOT_OUT)/PTGEN/common \
  36. -I$(MTK_ROOT_OUT)/NANDGEN/common \
  37. -I$(PTGEN_OUT)/inc
  38. INCLUDE_FILE += $(INCLUDE_FILE_COMMON)
  39. ifeq ($(CFG_MICROTRUST_TEE_SUPPORT),1)
  40. INCLUDE_FILE += \
  41. -I$(MTK_PATH_PLATFORM)/src/security/trustzone/kdflib/inc
  42. endif
  43. ###################################################################
  44. # GCC Compile Options
  45. ###################################################################
  46. ifeq ($(CREATE_SEC_LIB),TRUE)
  47. INCLUDE_FILE += \
  48. -I$(MTK_PATH_PLATFORM)/src/secure_lib/ \
  49. -I$(MTK_PATH_PLATFORM)/src/secure_lib/inc \
  50. -I$(MTK_PATH_PLATFORM)/src/secure_lib/crypto \
  51. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/inc \
  52. # if it's security.lib, we must remove gcc debug message
  53. C_OPTION := -gdwarf-2 -Os -fdata-sections -ffunction-sections -fno-strict-aliasing -fno-common -ffixed-r8 -fno-builtin -ffreestanding -pipe -mno-thumb-interwork -Wstrict-prototypes -march=armv7-a $(DEFINE) -c $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -DPRELOADER_HEAP -mno-unaligned-access
  54. C_OPTION_OPTIMIZE := -Os -fdata-sections -ffunction-sections -fno-strict-aliasing -fno-common -ffixed-r8 -fno-builtin -ffreestanding -pipe -mno-thumb-interwork -Wstrict-prototypes -march=armv7-a $(DEFINE) -c $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -DPRELOADER_HEAP -mno-unaligned-access
  55. AFLAGS := -c -march=armv7-a -g
  56. AFLAGS_OPTIMIZE := -c -march=armv7-a -g
  57. else
  58. C_OPTION := -gdwarf-2 -Os $(STRIP_SYMBOL) -fno-strict-aliasing -fno-common -ffixed-r8 -fno-builtin -ffreestanding -pipe -Wstrict-prototypes -march=armv7-a $(DEFINE) -c $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -g -mno-unaligned-access
  59. C_OPTION_OPTIMIZE := -Os $(STRIP_SYMBOL) -fno-strict-aliasing -fno-common -ffixed-r8 -fno-builtin -ffreestanding -pipe -Wstrict-prototypes -march=armv7-a $(DEFINE) -c $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -g -mno-unaligned-access
  60. AFLAGS := -c -march=armv7-a -g
  61. AFLAGS_OPTIMIZE := -c -march=armv7-a -g
  62. endif
  63. ifeq ($(THUMB_MODE),TRUE)
  64. #thumb
  65. C_OPTION += -mthumb-interwork -mthumb
  66. C_OPTION_OPTIMIZE += -mthumb-interwork -mthumb
  67. else
  68. C_OPTION += -mno-thumb-interwork
  69. C_OPTION_OPTIMIZE += -mno-thumb-interwork
  70. endif
  71. #priority: PL mode > project config > flavor cust > base cust > default
  72. include $(MTK_PATH_PLATFORM)/default.mak
  73. include ${MTK_ROOT_CUSTOM}/${TARGET}/cust_bldr.mak
  74. ifneq ("$(wildcard ${MTK_ROOT_CUSTOM}/${MTK_PROJECT}/cust_bldr.mak)", "")
  75. include ${MTK_ROOT_CUSTOM}/${MTK_PROJECT}/cust_bldr.mak
  76. endif
  77. PROJECT_CONFIGS := $(MTK_ROOT_CUSTOM)/$(MTK_PROJECT)/$(MTK_PROJECT).mk
  78. include $(PROJECT_CONFIGS)
  79. ifdef PL_MODE
  80. C_OPTION += -D$(PL_MODE)
  81. C_OPTION_OPTIMIZE += -D$(PL_MODE)
  82. include $(MTK_PATH_PLATFORM)/mode/$(PL_MODE).mak
  83. endif
  84. ifeq ("$(MTK_SECURITY_SW_SUPPORT)","yes")
  85. C_OPTION += -DMTK_SECURITY_SW_SUPPORT
  86. endif
  87. ifeq ($(strip $(TARGET_BUILD_VARIANT)),eng)
  88. C_OPTION += -DTARGET_BUILD_VARIANT_ENG
  89. endif
  90. ifeq ($(CFG_MICROTRUST_TEE_SUPPORT),1)
  91. ifeq ($(strip $(TARGET_BUILD_VARIANT)),userdebug)
  92. C_OPTION += -DTARGET_BUILD_VARIANT_USERDEBUG
  93. endif
  94. ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
  95. C_OPTION += -DIMSG_LOG_MODE_DEBUG
  96. else
  97. C_OPTION += -DIMSG_LOG_MODE_RELEASE
  98. endif
  99. endif
  100. ifeq ("$(MTK_EMMC_SUPPORT)","yes")
  101. C_OPTION += -DMTK_EMMC_SUPPORT
  102. endif
  103. include $(MTK_PATH_PLATFORM)/feature.mak
  104. MTK_CDEFS := $(PL_MTK_CDEFS)
  105. MTK_ADEFS := $(PL_MTK_ADEFS)
  106. # make unmark for PL booting time profiling
  107. #C_OPTION += -DPL_PROFILING
  108. C_OPTION += $(MTK_CFLAGS) $(MTK_CDEFS) $(MTK_INC)
  109. AFLAGS += $(MTK_AFLAGS)
  110. ifeq ("$(CFG_FUNCTION_TRACER_SUPPORT)", "1")
  111. C_OPTION += -finstrument-functions
  112. endif
  113. ###################################################################
  114. # gcc link descriptor
  115. ###################################################################
  116. ifeq ($(findstring fpga, $(TARGET)),fpga)
  117. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_fpga.ld
  118. else
  119. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor.ld
  120. endif
  121. LINKFILE := $(LD)
  122. LINK := $(LINKFILE) -Bstatic -T $(LDSCRIPT) --gc-sections
  123. ###################################################################
  124. # Object File
  125. ###################################################################
  126. export All_OBJS