makefile.mak 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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. CLANG_PATH = $(ROOTDIR)/prebuilts/clang/host/linux-x86/clang-r353983c/bin/
  10. AS = $(CLANG_PATH)clang
  11. CC = $(CLANG_PATH)clang
  12. CPP = $(CLANG_PATH)clang++
  13. LD = $(CROSS_COMPILE)ld
  14. AR = $(CROSS_COMPILE)ar
  15. NM = $(CROSS_COMPILE)nm
  16. STRIP = $(CROSS_COMPILE)strip
  17. OBJCOPY = $(CROSS_COMPILE)objcopy
  18. OBJDUMP = $(CROSS_COMPILE)objdump
  19. RANLIB = $(CROSS_COMPILE)RANLIB
  20. THUMB_MODE = TRUE
  21. CLANG_TRIPLE = --target=thumbv7-unknown-none-gnu
  22. ###################################################################
  23. # Initialize GCC Compile Parameter
  24. ###################################################################
  25. DEFINE = -D$(MTK_PLATFORM)
  26. OBJCFLAGS = --gap-fill=0xff
  27. AFLAGS_DEBUG = -Wa,-gstabs,
  28. STRIP_SYMBOL = -fdata-sections -ffunction-sections
  29. INCLUDE_FILE = $(INCLUDE_FILE_COMMON)
  30. INCLUDE_FILE += \
  31. -I$(EMIGEN_OUT)/inc \
  32. -I$(MTK_PATH_CUSTOM)/inc \
  33. -I$(D_ROOT)/custom/common/inc \
  34. -I$(D_ROOT)/inc/$(_CHIP) \
  35. -I$(MTK_ROOT_CUSTOM)/$(TARGET)/common \
  36. -I$(MTK_ROOT_CUSTOM)/kernel/dct \
  37. -I$(MTK_ROOT_OUT)/PTGEN/common \
  38. -I$(MTK_ROOT_OUT)/NANDGEN/common \
  39. -I$(PTGEN_OUT)/inc
  40. ifeq ("$(MTK_EMMC_SUPPORT)","yes")
  41. ifeq ($(strip "$(CFG_MMC_COMBO_DRV)"),"1")
  42. INCLUDE_FILE += \
  43. -I$(MTK_PATH_COMMON)/storage/mmc/inc
  44. endif
  45. else
  46. INCLUDE_FILE += \
  47. -I$(MTK_PATH_COMMON)/storage/mmc/inc
  48. endif
  49. ifeq ($(CFG_MICROTRUST_TEE_SUPPORT),1)
  50. MICRO_PLATFORM_VERSION_MAJOR := $(shell grep -oP "^[ \t]*PLATFORM_VERSION.*:= \K[\d.]+" $(ANDROID_BUILD_TOP)/build/core/version_defaults.mk | cut -d . -f 1)
  51. C_OPTION += -DMICRO_PLATFORM_VERSION_MAJOR=$(MICRO_PLATFORM_VERSION_MAJOR)
  52. endif
  53. ###################################################################
  54. # GCC Compile Options
  55. ###################################################################
  56. ifeq ($(CREATE_SEC_LIB),TRUE)
  57. INCLUDE_FILE += \
  58. -I$(MTK_PATH_PLATFORM)/src/secure_lib/ \
  59. -I$(MTK_PATH_PLATFORM)/src/secure_lib/inc \
  60. -I$(MTK_PATH_PLATFORM)/src/secure_lib/crypto \
  61. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/inc \
  62. ########
  63. # TZCC
  64. ########
  65. INCLUDE_FILE += \
  66. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/crypto_driver/dsc \
  67. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/pal/no_os \
  68. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/sbrom \
  69. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/proj/ssi64 \
  70. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include/pal \
  71. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/common/tz \
  72. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/secure_boot_gen \
  73. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/crys/sym/driver/ \
  74. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/host/src/sbromlib \
  75. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/pal/dx_linux \
  76. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/include \
  77. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/shared/hw/include \
  78. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/host/src/ssi4tzlib \
  79. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/pal \
  80. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/crypto_driver \
  81. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/util \
  82. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/hal/hal_host/dsc \
  83. -I$(MTK_PATH_PLATFORM)/src/secure_lib/src/platform/$(MTK_PLATFORM)/src/tzcc/codesafe/src/secure_boot/platform/hal
  84. endif
  85. ifeq ($(CREATE_DEVINFO_LIB),TRUE)
  86. INCLUDE_FILE += \
  87. -I$(MTK_PATH_PLATFORM)/src/devinfo_lib/ \
  88. -I$(MTK_PATH_PLATFORM)/src/devinfo_lib/inc \
  89. -I$(MTK_PATH_PLATFORM)/src/devinfo_lib/src/platform/$(MTK_PLATFORM)/inc
  90. endif
  91. ifneq ($(filter TRUE,$(CREATE_SEC_LIB) $(CREATE_DEVINFO_LIB)),)
  92. # if it's security.lib, we must remove gcc debug message
  93. C_OPTION := $(CLANG_TRIPLE) -c -mno-global-merge -gdwarf-2 -Oz -fdata-sections -ffunction-sections -fno-strict-aliasing -fno-common -fno-builtin -ffreestanding -pipe -Wstrict-prototypes -march=armv7-a $(DEFINE) -c $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -DPRELOADER_HEAP -mno-unaligned-access -mfpu=vfpv4 -mfloat-abi=softfp
  94. C_OPTION_OPTIMIZE := $(CLANG_TRIPLE) -c -mno-global-merge -gdwarf-2 -Oz -fdata-sections -ffunction-sections -fno-strict-aliasing -fno-common -fno-builtin -ffreestanding -pipe -Wstrict-prototypes -march=armv7-a $(DEFINE) -c $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -DPRELOADER_HEAP -mno-unaligned-access -mfpu=vfpv4 -mfloat-abi=softfp
  95. AFLAGS := $(CLANG_TRIPLE) -c -march=armv7-a -g -mthumb
  96. AFLAGS_OPTIMIZE := $(CLANG_TRIPLE) -c -march=armv7-a -g -mthumb
  97. else
  98. C_OPTION := $(CLANG_TRIPLE) -c -mno-global-merge -gdwarf-2 -Oz $(STRIP_SYMBOL) -fno-strict-aliasing -fno-common -fno-builtin -ffreestanding -pipe -Wstrict-prototypes -march=armv7-a $(DEFINE) $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -g -mno-unaligned-access
  99. C_OPTION_OPTIMIZE := $(CLANG_TRIPLE) -c -mno-global-merge -gdwarf-2 -Oz $(STRIP_SYMBOL) -fno-strict-aliasing -fno-common -fno-builtin -ffreestanding -pipe -Wstrict-prototypes -march=armv7-a $(DEFINE) $(INCLUDE_FILE) -msoft-float -D__ASSEMBLY__ -g -mno-unaligned-access
  100. AFLAGS := $(CLANG_TRIPLE) -c -march=armv7-a -g -mthumb
  101. AFLAGS_OPTIMIZE := $(CLANG_TRIPLE) -c -march=armv7-a -g -mthumb
  102. endif
  103. ifeq ($(THUMB_MODE),TRUE)
  104. #thumb
  105. C_OPTION += -mthumb
  106. C_OPTION_OPTIMIZE += -mthumb
  107. else
  108. C_OPTION += -mno-thumb-interwork
  109. C_OPTION_OPTIMIZE += -mno-thumb-interwork
  110. endif
  111. #priority: mode > project config > cust > default
  112. include $(MTK_PATH_PLATFORM)/default.mak
  113. include ${MTK_ROOT_CUSTOM}/${TARGET}/cust_bldr.mak
  114. PROJECT_CONFIGS := $(MTK_ROOT_CUSTOM)/$(MTK_PROJECT)/$(MTK_PROJECT).mk
  115. include $(PROJECT_CONFIGS)
  116. ifdef PL_MODE
  117. C_OPTION += -D$(PL_MODE)
  118. C_OPTION_OPTIMIZE += -D$(PL_MODE)
  119. include $(MTK_PATH_PLATFORM)/mode/$(PL_MODE).mak
  120. endif
  121. ifeq ("$(MTK_SECURITY_SW_SUPPORT)","yes")
  122. C_OPTION += -DMTK_SECURITY_SW_SUPPORT
  123. endif
  124. ifeq ($(strip $(TARGET_BUILD_VARIANT)),eng)
  125. C_OPTION += -DTARGET_BUILD_VARIANT_ENG
  126. endif
  127. ifeq ($(CFG_MICROTRUST_TEE_SUPPORT),1)
  128. ifeq ($(strip $(TARGET_BUILD_VARIANT)),userdebug)
  129. C_OPTION += -DTARGET_BUILD_VARIANT_USERDEBUG
  130. endif
  131. endif
  132. ifeq ("$(MTK_EMMC_SUPPORT)","yes")
  133. C_OPTION += -DMTK_EMMC_SUPPORT
  134. endif
  135. include $(MTK_PATH_PLATFORM)/feature.mak
  136. MTK_CDEFS := $(PL_MTK_CDEFS)
  137. MTK_ADEFS := $(PL_MTK_ADEFS)
  138. C_OPTION += $(MTK_CFLAGS) $(MTK_CDEFS) $(MTK_INC)
  139. AFLAGS += $(MTK_AFLAGS)
  140. #clean build error when build mt6761_fpga
  141. C_OPTION += -DMTK_EMMC_SUPPORT
  142. ifeq ("$(CFG_FUNCTION_PICACHU_SUPPORT)", "1")
  143. AFLAGS += -mfpu=neon-vfpv4 -mfloat-abi=softfp
  144. endif
  145. ###################################################################
  146. # gcc link descriptor
  147. ###################################################################
  148. ifeq ($(findstring fpga, $(TARGET)),fpga)
  149. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_fpga.ld
  150. else
  151. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor.ld
  152. ifdef PL_MODE
  153. ifeq ($(strip $(PL_MODE)), TRNG_R1)
  154. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_trng.ld
  155. endif
  156. ifeq ($(strip $(PL_MODE)), TRNG_R2)
  157. LDSCRIPT := $(MTK_PATH_PLATFORM)/link_descriptor_trng.ld
  158. endif
  159. endif # ifdef PL_MODE
  160. endif # ifeq ($(findstring fpga, $(TARGET)),fpga)
  161. LINKFILE := $(LD)
  162. LINK := $(LINKFILE) -Bstatic -T $(LDSCRIPT) --gc-sections
  163. ###################################################################
  164. # Object File
  165. ###################################################################
  166. export All_OBJS