makefile.mak 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  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. ifeq ("$(MTK_EMMC_SUPPORT)","yes")
  39. ifeq ($(strip "$(CFG_MMC_COMBO_DRV)"),"1")
  40. INCLUDE_FILE += \
  41. -I$(MTK_PATH_COMMON)/storage/mmc/inc
  42. endif
  43. else
  44. INCLUDE_FILE += \
  45. -I$(MTK_PATH_COMMON)/storage/mmc/inc
  46. endif
  47. ifeq ($(CFG_MICROTRUST_TEE_SUPPORT),1)
  48. INCLUDE_FILE += \
  49. -I$(MTK_PATH_PLATFORM)/src/security/trustzone/kdflib/inc
  50. endif
  51. ###################################################################
  52. # GCC Compile Options
  53. ###################################################################
  54. ifeq ($(CREATE_SEC_LIB),TRUE)
  55. INCLUDE_FILE += \
  56. -I$(MTK_PATH_PLATFORM)/src/secure_lib/ \
  57. -I$(MTK_PATH_PLATFORM)/src/secure_lib/inc \
  58. -I$(MTK_PATH_PLATFORM)/src/secure_lib/crypto \
  59. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/inc \
  60. ########
  61. # TZCC
  62. ########
  63. INCLUDE_FILE += \
  64. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/crypto_driver/dsc \
  65. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/pal/no_os \
  66. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/sbrom \
  67. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/proj/ssi64 \
  68. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/pal \
  69. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/common/tz \
  70. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/secure_boot_gen \
  71. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/crys/sym/driver/ \
  72. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/host/src/sbromlib \
  73. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/pal/dx_linux \
  74. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include \
  75. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/hw/include \
  76. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/host/src/ssi4tzlib \
  77. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/pal \
  78. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/crypto_driver \
  79. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/util \
  80. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/hal/hal_host/dsc \
  81. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/hal
  82. endif
  83. ifeq ($(CREATE_DEVINFO_LIB),TRUE)
  84. INCLUDE_FILE += \
  85. -I$(MTK_PATH_PLATFORM)/src/devinfo_lib/ \
  86. -I$(MTK_PATH_PLATFORM)/src/devinfo_lib/inc \
  87. -I$(MTK_PATH_PLATFORM)/src/devinfo_lib/src/platform/$(MTK_PLATFORM)/inc
  88. endif
  89. ifneq ($(filter TRUE,$(CREATE_SEC_LIB) $(CREATE_DEVINFO_LIB)),)
  90. # if it's security.lib, we must remove gcc debug message
  91. 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 -mfpu=vfpv4 -mfloat-abi=softfp
  92. 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 -mfpu=vfpv4 -mfloat-abi=softfp
  93. AFLAGS := -c -march=armv7-a -g
  94. AFLAGS_OPTIMIZE := -c -march=armv7-a -g
  95. else
  96. 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
  97. 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
  98. AFLAGS := -c -march=armv7-a -g
  99. AFLAGS_OPTIMIZE := -c -march=armv7-a -g
  100. endif
  101. ifeq ($(THUMB_MODE),TRUE)
  102. #thumb
  103. C_OPTION += -mthumb-interwork -mthumb
  104. C_OPTION_OPTIMIZE += -mthumb-interwork -mthumb
  105. else
  106. C_OPTION += -mno-thumb-interwork
  107. C_OPTION_OPTIMIZE += -mno-thumb-interwork
  108. endif
  109. #priority: mode > project config > cust > default
  110. include $(MTK_PATH_PLATFORM)/default.mak
  111. include ${MTK_ROOT_CUSTOM}/${TARGET}/cust_bldr.mak
  112. PROJECT_CONFIGS := $(MTK_ROOT_CUSTOM)/$(MTK_PROJECT)/$(MTK_PROJECT).mk
  113. include $(PROJECT_CONFIGS)
  114. ifdef PL_MODE
  115. C_OPTION += -D$(PL_MODE)
  116. C_OPTION_OPTIMIZE += -D$(PL_MODE)
  117. include $(MTK_PATH_PLATFORM)/mode/$(PL_MODE).mak
  118. endif
  119. ifeq ("$(MTK_SECURITY_SW_SUPPORT)","yes")
  120. C_OPTION += -DMTK_SECURITY_SW_SUPPORT
  121. endif
  122. ifeq ($(strip $(TARGET_BUILD_VARIANT)),eng)
  123. C_OPTION += -DTARGET_BUILD_VARIANT_ENG
  124. endif
  125. ifeq ($(CFG_MICROTRUST_TEE_SUPPORT),1)
  126. ifeq ($(strip $(TARGET_BUILD_VARIANT)),userdebug)
  127. C_OPTION += -DTARGET_BUILD_VARIANT_USERDEBUG
  128. endif
  129. endif
  130. ifeq ("$(MTK_EMMC_SUPPORT)","yes")
  131. C_OPTION += -DMTK_EMMC_SUPPORT
  132. endif
  133. ifeq ("$(MTK_I2C_CH0_PULL_DIS)","yes")
  134. C_OPTION += -DMTK_I2C_CH0_PULL_DIS
  135. endif
  136. ifeq ("$(MTK_I2C_CH1_PULL_DIS)","yes")
  137. C_OPTION += -DMTK_I2C_CH1_PULL_DIS
  138. endif
  139. ifeq ("$(MTK_I2C_CH2_PULL_DIS)","yes")
  140. C_OPTION += -DMTK_I2C_CH2_PULL_DIS
  141. endif
  142. ifeq ("$(MTK_I2C_CH3_PULL_DIS)","yes")
  143. C_OPTION += -DMTK_I2C_CH3_PULL_DIS
  144. endif
  145. ifeq ("$(MTK_I2C_CH4_PULL_DIS)","yes")
  146. C_OPTION += -DMTK_I2C_CH4_PULL_DIS
  147. endif
  148. ifeq ("$(MTK_I2C_CH5_PULL_DIS)","yes")
  149. C_OPTION += -DMTK_I2C_CH5_PULL_DIS
  150. endif
  151. ifeq ("$(MTK_I2C_CH6_PULL_DIS)","yes")
  152. C_OPTION += -DMTK_I2C_CH6_PULL_DIS
  153. endif
  154. include $(MTK_PATH_PLATFORM)/feature.mak
  155. MTK_CDEFS := $(PL_MTK_CDEFS)
  156. MTK_ADEFS := $(PL_MTK_ADEFS)
  157. C_OPTION += $(MTK_CFLAGS) $(MTK_CDEFS) $(MTK_INC)
  158. AFLAGS += $(MTK_AFLAGS)
  159. ifeq ("$(CFG_FUNCTION_PICACHU_SUPPORT)", "1")
  160. AFLAGS += -mfpu=neon-vfpv4 -mfloat-abi=softfp
  161. endif
  162. ###################################################################
  163. # gcc link descriptor
  164. ###################################################################
  165. ifeq ($(findstring fpga, $(TARGET)),fpga)
  166. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_fpga.ld
  167. else
  168. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor.ld
  169. ifeq ("$(CFG_ENABLE_DCACHE)","1")
  170. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_pgtbl.ld
  171. endif
  172. ifdef PL_MODE
  173. ifeq ($(strip $(PL_MODE)), TRNG_R1)
  174. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_trng.ld
  175. endif
  176. ifeq ($(strip $(PL_MODE)), TRNG_R2)
  177. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_trng.ld
  178. endif
  179. ifeq ($(strip $(PL_MODE)), AS_DA)
  180. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_as_da.ld
  181. endif
  182. endif # ifdef PL_MODE
  183. endif # ifeq ($(findstring fpga, $(TARGET)),fpga)
  184. LINKFILE := $(LD)
  185. LINK := $(LINKFILE) -Bstatic -T $(LDSCRIPT) --gc-sections
  186. ###################################################################
  187. # Object File
  188. ###################################################################
  189. export All_OBJS