common.mak 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. # Copyright Statement:
  2. #
  3. # This software/firmware and related documentation ("MediaTek Software") are
  4. # protected under relevant copyright laws. The information contained herein
  5. # is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. # Without the prior written permission of MediaTek inc. and/or its licensors,
  7. # any reproduction, modification, use or disclosure of MediaTek Software,
  8. # and information contained herein, in whole or in part, shall be strictly prohibited.
  9. # MediaTek Inc. (C) 2010. All rights reserved.
  10. #
  11. # BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  12. # THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  13. # RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  14. # AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  15. # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  16. # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  17. # NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  18. # SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  19. # SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  20. # THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  21. # THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  22. # CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  23. # SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  24. # STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  25. # CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  26. # AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  27. # OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  28. # MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  29. #
  30. # The following software/firmware and/or related documentation ("MediaTek Software")
  31. # have been modified by MediaTek Inc. All revisions are subject to any receiver's
  32. # applicable license agreements with MediaTek Inc.
  33. ##############################################################
  34. # Include MakeFile
  35. ##############################################################
  36. include $(MTK_PATH_PLATFORM)/makefile.mak
  37. ##############################################################
  38. # Initialize Variables
  39. ##############################################################
  40. C_FILES := $(filter %.c, $(MOD_SRC))
  41. ASM_FILES := $(filter %.s, $(MOD_SRC))
  42. ASM_FILES_S := $(filter %.S, $(MOD_SRC))
  43. CRYPTO_FILES := $(filter %.c, $(CRYPTO_SRC))
  44. CRYPTO_FILES_ASM_FILES_S := $(filter %.S, $(CRYPTO_SRC))
  45. PLAT_MOD_FILES := $(filter %.c, $(MOD_PLAT_SRC))
  46. DEVINFO_MOD_FILES := $(filter %.c, $(MOD_DEVINFO_SRC))
  47. DEVINFO_DEBUG_MOD_FILES := $(filter %.c, $(MOD_DEVINFO_DEBUG_SRC))
  48. C_FILES_PLUS := $(filter %.c, $(MOD_SRC_PLUS))
  49. HW_CYRPTO_LIB_FILES := $(filter %.c, $(HW_CYRPTO_LIB_SRC))
  50. OBJS_FROM_C := $(addprefix $(MOD_OBJ)/, $(C_FILES:%.c=%.o))
  51. OBJS_FROM_ASM := $(addprefix $(MOD_OBJ)/, $(ASM_FILES:%.s=%.o))
  52. OBJS_FROM_ASM_S := $(addprefix $(MOD_OBJ)/, $(ASM_FILES_S:%.S=%.o))
  53. CRYPTO_OBJS_FROM_C := $(addprefix $(CRYPTO_OBJ)/, $(CRYPTO_FILES:%.c=%.o))
  54. CRYPTO_OBJS_FROM_ASM := $(addprefix $(CRYPTO_OBJ)/, $(CRYPTO_FILES_ASM_FILES_S:%.S=%.o))
  55. PLAT_MOD_OBJS_FROM_C := $(addprefix $(MOD_PLAT_OBJ)/, $(PLAT_MOD_FILES:%.c=%.o))
  56. DEVINFO_MOD_OBJS_FROM_C := $(addprefix $(MOD_DEVINFO_OBJ)/, $(DEVINFO_MOD_FILES:%.c=%.o))
  57. DEVINFO_DEBUG_MOD_OBJS_FROM_C := $(addprefix $(MOD_DEVINFO_DEBUG_OBJ)/, $(DEVINFO_DEBUG_MOD_FILES:%.c=%.o))
  58. OBJS_FROM_C_PLUS := $(addprefix $(MOD_OBJ)/, $(C_FILES_PLUS:%.c=%.o))
  59. HW_CYRPTO_LIB_OBJS_FROM_C := $(addprefix $(HW_CYRPTO_LIB_OBJ)/, $(HW_CYRPTO_LIB_FILES:%.c=%.o))
  60. DEPS_FROM_OBJS := $(wildcard $(patsubst %.o,%.d,$(OBJS_FROM_C) $(OBJS_FROM_ASM_S) $(CRYPTO_OBJS_FROM_C) $(CRYPTO_OBJS_FROM_ASM) $(PLAT_MOD_OBJS_FROM_C) $(DEVINFO_MOD_OBJS_FROM_C) $(DEVINFO_DEBUG_MOD_OBJS_FROM_C) $(OBJS_FROM_C_PLUS) $(HW_CYRPTO_LIB_OBJS_FROM_C)))
  61. DEPS_FROM_MAKEFILE := $(filter-out %.d,$(ALL_DEPENDENCY_FILE) $(MAKEFILE_LIST))
  62. ##############################################################
  63. # Specify Builld Command
  64. ##############################################################
  65. define COMPILE_C
  66. $(CC) $(C_OPTION) -MP -MD -MF $(patsubst %.o,%.d,$@) -o $@ $<
  67. endef
  68. define COMPILE_ASM
  69. $(AS) $(AFLAGS) -o $@ $<
  70. endef
  71. define COMPILE_ASM_ARMV8
  72. $(CC) $(C_OPTION) -MP -MD -MF $(patsubst %.o,%.d,$@) -DASSEMBLY -o $@ $<
  73. endef
  74. ##############################################################
  75. # Main Flow
  76. ##############################################################
  77. CURDIR_FLAG := $(PRELOADER_OUT)/obj/$(subst /,_,$(patsubst $(D_ROOT)/%,%,$(patsubst %/,%,$(CURDIR)))).flag
  78. all: $(CURDIR_FLAG)
  79. $(OBJS_FROM_C) : $(MOD_OBJ)/%.o : $(CURDIR)/%.c
  80. @mkdir -p $(dir $@)
  81. $(COMPILE_C)
  82. $(OBJS_FROM_ASM_S) : $(MOD_OBJ)/%.o : $(CURDIR)/%.S
  83. @mkdir -p $(dir $@)
  84. $(COMPILE_C)
  85. $(OBJS_FROM_ASM) : $(MOD_OBJ)/%.o : $(CURDIR)/%.s
  86. @mkdir -p $(dir $@)
  87. $(COMPILE_ASM)
  88. $(CRYPTO_OBJS_FROM_C) : $(CRYPTO_OBJ)/%.o : $(CURDIR)/%.c
  89. @mkdir -p $(dir $@)
  90. $(COMPILE_C)
  91. $(PLAT_MOD_OBJS_FROM_C) : $(MOD_PLAT_OBJ)/%.o : $(CURDIR)/%.c
  92. @mkdir -p $(dir $@)
  93. $(COMPILE_C)
  94. $(CRYPTO_OBJS_FROM_ASM) : $(CRYPTO_OBJ)/%.o : $(CURDIR)/%.S
  95. @mkdir -p $(dir $@)
  96. $(COMPILE_ASM_ARMV8)
  97. $(DEVINFO_MOD_OBJS_FROM_C) : $(MOD_DEVINFO_OBJ)/%.o : $(CURDIR)/%.c
  98. @mkdir -p $(dir $@)
  99. $(COMPILE_C)
  100. $(DEVINFO_DEBUG_MOD_OBJS_FROM_C) : $(MOD_DEVINFO_DEBUG_OBJ)/%.o : $(CURDIR)/%.c
  101. @mkdir -p $(dir $@)
  102. $(COMPILE_C)
  103. $(HW_CYRPTO_LIB_OBJS_FROM_C) : $(HW_CYRPTO_LIB_OBJ)/%.o : $(CURDIR)/%.c
  104. @mkdir -p $(dir $@)
  105. $(COMPILE_C)
  106. # add for custom_emi.c/cust_part.c
  107. $(OBJS_FROM_C_PLUS) : $(MOD_OBJ)/%.o : $(PRELOADER_OUT)/%.c
  108. @mkdir -p $(dir $@)
  109. $(COMPILE_C)
  110. -include $(DEPS_FROM_OBJS)
  111. $(OBJS_FROM_C) $(OBJS_FROM_ASM) $(OBJS_FROM_ASM_S) $(CRYPTO_OBJS_FROM_C) $(CRYPTO_OBJS_FROM_ASM) $(PLAT_MOD_OBJS_FROM_C) $(DEVINFO_MOD_OBJS_FROM_C) $(DEVINFO_DEBUG_MOD_OBJS_FROM_C) $(OBJS_FROM_C_PLUS) $(HW_CYRPTO_LIB_OBJS_FROM_C): $(DEPS_FROM_MAKEFILE)
  112. $(CURDIR_FLAG): $(OBJS_FROM_C) $(OBJS_FROM_ASM) $(OBJS_FROM_ASM_S) $(CRYPTO_OBJS_FROM_C) $(CRYPTO_OBJS_FROM_ASM) $(PLAT_MOD_OBJS_FROM_C) $(DEVINFO_MOD_OBJS_FROM_C) $(DEVINFO_DEBUG_MOD_OBJS_FROM_C) $(OBJS_FROM_C_PLUS) $(HW_CYRPTO_LIB_OBJS_FROM_C)
  113. ifndef CURDIR_FLAG_RULE
  114. # avoid warning when common-dir.mak and common.mak are both included
  115. CURDIR_FLAG_RULE := true
  116. $(CURDIR_FLAG):
  117. @mkdir -p $(dir $@)
  118. echo "$^" > $@
  119. endif