make.mk 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. ################################################################################
  2. # Automatically-generated file. Do not edit!
  3. ################################################################################
  4. -include ./objects.mk
  5. -include ./sources.mk
  6. -include ./v_makefile.mk
  7. -include ./preandpost.mk
  8. -include ./config_appcfg.mk
  9. -include $(RTOS_PATH)/Rules.make
  10. export LANG=en_US.UTF-8
  11. #输出所有变量
  12. .EXPORT_ALL_VARIABLES:
  13. #工具定义
  14. AS=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)as
  15. LD=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)ld
  16. CC=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)gcc
  17. CPP=$(CC) -E
  18. AR=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)ar
  19. NM=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)nm
  20. STRIP=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)strip
  21. OBJDUMP=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)objdump
  22. OBJCOPY=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)objcopy
  23. RANLIB=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)ranlib
  24. READELF=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)readelf
  25. STRINGS=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)strings
  26. SIZE=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)size
  27. ADDR2LINE=$(TOOLS_CHAIN_PATH)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/bin/$(CROSS_COMPILE)addr2line
  28. MAKE=$(BIN_PATH)/make
  29. RM:=$(BIN_PATH)/rm -rf
  30. CONFIG_IMG_TYPE:=1
  31. CONFIG_IMG_REAL_NAME=$(CONFIG_IMG_NAME)
  32. ifeq ($(CONFIG_CPLUSPLUS),Y)
  33. APP_TYPE := cplusplusapp
  34. else
  35. APP_TYPE := app
  36. endif
  37. CP_FILE := *.a
  38. # 启动代码路径
  39. CRT0 := $(PLATFORM)/target/acoreosmp/lib/$(CONFIG_CPU_TYPE)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/$(CONFIG_SUB_ARCH)/appCplusStart.o
  40. CRTBEGIN := $(PLATFORM)/target/common/lib/$(CONFIG_CPU_TYPE)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/$(CONFIG_SUB_ARCH)/crtbegin.o
  41. CRTEND := $(PLATFORM)/target/common/lib/$(CONFIG_CPU_TYPE)/$(TOOLS_VERSION)/$(CONFIG_ARCH)/$(CONFIG_SUB_ARCH)/crtend.o
  42. # linkcmds文件所在路径
  43. LINKCMDS_PATH := $(CURRENT_BUILD_PATH)
  44. IMAGEINFO_OBJ := $(CURRENT_BUILD_PATH)/imageInfo.o
  45. IMAGEINFOGEN_OBJ=$(CURRENT_BUILD_PATH)/ImgInfoGen
  46. # default link flags setting
  47. FLAGS += -d -N -T $(LINKCMDS_PATH)/catlinkcmds -Map map.txt
  48. PREFLAGS += -d -N -T $(LINKCMDS_PATH)/preLinkCmds
  49. # All of the sources participating in the build are defined here
  50. ifneq ($(strip $(SUBDIRS)),)
  51. -include $(SUBDIRS:%=%/subdir.mk)
  52. endif
  53. #-include $(PROJECT_PATH)/subdir.mk
  54. ifneq ($(MAKECMDGOALS),clean)
  55. ifneq ($(strip $(C_DEPS)),)
  56. -include $(C_DEPS)
  57. endif
  58. endif
  59. -include $(PROJECT_PATH)/makefile.defs
  60. # Add inputs and outputs from these tool invocations to the build variables
  61. #ARCHIVES += \
  62. #$(LIB) \
  63. LIBS_PATH += -L${RTOS_PATH}/lib/${TOOLS_VERSION}/${CONFIG_ARCH}/$(CONFIG_SUB_ARCH)/${CONFIG_CPU_ENDIAN}
  64. LIBS += -lgcc -lclib -lrtlsup -lacsup -lo2aclb -leu2aclb -lnce2aclb -lmo2aclb -ldm2aclb -lkinfo2aclb -lcomarch
  65. ifeq ($(HAS_CPP),Y)
  66. ifeq ($(TOOLS_VERSION),gcc-4.8.1)
  67. LIBS += -lstdc++ -lcplussup
  68. endif
  69. endif
  70. ifeq ($(CONFIG_MATH_LIB),Y)
  71. LIBS += -lm -lmatharch
  72. endif #CONFIG_MATH_LIB
  73. ifeq ($(CONFIG_APP_EXT_FUNC),Y)
  74. ifeq ($(CONFIG_APP_EXT_FUNCIF),Y)
  75. ifeq ($(CONFIG_APP_FUNC_FLAGSET_IF),Y)
  76. LIBS += -lf2aclb
  77. endif #CONFIG_APP_FUNC_FLAGSET_IF
  78. ifeq ($(CONFIG_APP_FUNC_PERIOD_IF),Y)
  79. LIBS += -lpt2aclb
  80. endif #CONFIG_APP_FUNC_PERIOD_IF
  81. ifeq ($(CONFIG_APP_FUNC_TIMER_IF),Y)
  82. LIBS += -ltimer2aclb
  83. endif #CONFIG_APP_FUNC_TIMER_IF
  84. ifeq ($(CONFIG_APP_FUNC_LOG_IF),Y)
  85. LIBS += -llog2aclb
  86. endif #CONFIG_APP_FUNC_LOG_IF
  87. ifeq ($(CONFIG_APP_FUNC_TVAR_IF),Y)
  88. LIBS += -ltvar2aclb
  89. endif #CONFIG_APP_FUNC_TVAR_IF
  90. ifeq ($(CONFIG_APP_FUNC_CACHE_IF),Y)
  91. LIBS += -lcache2aclb
  92. endif #CONFIG_APP_FUNC_CACHE_IF
  93. ifeq ($(CONFIG_APP_FUNC_CELR_IF),Y)
  94. LIBS += -le2aclb
  95. endif #CONFIG_APP_FUNC_CELR_IF
  96. ifeq ($(CONFIG_APP_FUNC_RWSEM_IF),Y)
  97. LIBS += -lrwsem2aclb
  98. endif #CONFIG_APP_FUNC_RWSEM_IF
  99. ifeq ($(CONFIG_APP_FUNC_ACAPI_IF),Y)
  100. LIBS += -lac2aclb
  101. endif #CONFIG_APP_FUNC_ACAPI_IF
  102. ifeq ($(CONFIG_APP_FUNC_VMM_IF),Y)
  103. LIBS += -lvmm2aclb
  104. endif #CONFIG_APP_FUNC_VMM_IF
  105. ifeq ($(CONFIG_APP_FUNC_MPART_IF),Y)
  106. LIBS += -lmpart2aclb
  107. endif #CONFIG_APP_FUNC_MPART_IF
  108. ifeq ($(CONFIG_APP_FUNC_SIGNAL_IF),Y)
  109. LIBS += -lsig2aclb
  110. endif #CONFIG_APP_FUNC_SIGNAL_IF
  111. ifeq ($(CONFIG_APP_FUNC_SELECT_IF),Y)
  112. LIBS += -lselect2aclb
  113. endif #CONFIG_APP_FUNC_SELECT_IF
  114. ifeq ($(CONFIG_APP_FUNC_SOCKET_IF),Y)
  115. LIBS += -lipnet2aclb
  116. endif #CONFIG_APP_FUNC_SELECT_IF
  117. ifeq ($(CONFIG_APP_FUNC_DKM_IF),Y)
  118. LIBS += -ldkm2aclb
  119. endif #CONFIG_APP_FUNC_DKM_IF
  120. ifeq ($(CONFIG_APP_FUNC_MINFO_IF),Y)
  121. LIBS += -lminfo2aclb
  122. endif #CONFIG_APP_FUNC_MINFO_IF
  123. ifeq ($(CONFIG_APP_FUNC_RTP_IF),Y)
  124. LIBS += -lrtp2aclb
  125. endif #CONFIG_APP_FUNC_RTP_IF
  126. ifeq ($(CONFIG_APP_FUNC_PCI_IF),Y)
  127. LIBS += -lpci2aclb
  128. endif #CONFIG_APP_FUNC_PCI_IF
  129. ifeq ($(CONFIG_APP_FUNC_TIMEMONITOR_IF),Y)
  130. LIBS += -ltm2aclb
  131. endif #CONFIG_APP_FUNC_TIMEMONITOR_IF
  132. endif #CONFIG_APP_EXT_FUNCIF
  133. ifeq ($(CONFIG_APP_EXT_FUNC),Y)
  134. ifeq ($(CONFIG_APP_COM_DYLIB),Y)
  135. LIBS += -ldynLinker -ldlarch
  136. endif #CONFIG_APP_COM_DYLIB
  137. endif #CONFIG_APP_EXT_FUNC
  138. endif
  139. ifeq ($(CONFIG_APP_COM_IF),Y)
  140. ifeq ($(CONFIG_APP_EXT_COM_VXWORKSIF),Y)
  141. LIBS += -lv2aclb -lvxAtomic -lcomarch
  142. ifeq ($(CONFIG_APP_EXT_COM_VXWORKSIF_SMP),Y)
  143. LIBS += -lmv2aclb
  144. endif #CONFIG_APP_EXT_COM_VXWORKSIF_SMP
  145. ifeq ($(CONFIG_APP_FUNC_CELR_IF),Y)
  146. LIBS += -lvedr2aclb
  147. endif #CONFIG_APP_FUNC_CELR_IF
  148. ifeq ($(CONFIG_APP_FUNC_RTP_IF),Y)
  149. LIBS += -lvrtp2aclb
  150. endif #CONFIG_APP_FUNC_RTP_IF
  151. endif #CONFIG_APP_EXT_COM_VXWORKSIF
  152. ifeq ($(CONFIG_APP_EXT_COM_POSIXIF),Y)
  153. LIBS += -lpx2aclb
  154. ifeq ($(CONFIG_APP_EXT_COM_POSIXIF_SMP),Y)
  155. LIBS += -lmpx2aclb
  156. endif #CONFIG_APP_EXT_COM_POSIXIF_SMP
  157. endif #CONFIG_APP_EXT_COM_POSIXIF
  158. endif #CONFIG_APP_COM_IF
  159. #实用功能组件配置连接库
  160. ifeq ($(CONFIG_FFSB_ENABLE),Y)
  161. LIBS += -lffs
  162. endif #CONFIG_FFSB_ENABLE
  163. ifeq ($(CONFIG_RNGBUF_ENABLE),Y)
  164. LIBS += -lrngbuf -lclib
  165. endif #CONFIG_RNGBUF_ENABLE
  166. ifeq ($(CONFIG_DDLINK_ENABLE),Y)
  167. LIBS += -llinktbl
  168. endif #CONFIG_DDLINK_ENABLE
  169. ifeq ($(CONFIG_DLLINK_ENABLE),Y)
  170. LIBS += -lddltbl
  171. endif #CONFIG_DLLINK_ENABLE
  172. ifeq ($(CONFIG_SDLINK_ENABLE),Y)
  173. LIBS += -lsdltbl
  174. endif #CONFIG_SDLINK_ENABLE
  175. #扩展功能支持
  176. ifeq ($(CONFIG_APP_EXT_FUNC_COMPS),Y)
  177. ifeq ($(CONFIG_APP_COM_VSIP),Y)
  178. LIBS += -ljvsip
  179. endif #CONFIG_APP_COM_VSIP
  180. endif #CONFIG_APP_EXT_FUNC_COMPS
  181. #配置性能监控支持
  182. ifeq ($(CONFIG_APP_EXT_TOOLS_TIMESCOPE),Y)
  183. LIBS += -lmcount -ls2aclb
  184. endif #CONFIG_APP_EXT_TOOLS_TIMESCOPE
  185. ifeq ($(CONFIG_APP_EXT_TOOLS_TSH_SYM_TBL),Y)
  186. LIBS += -ltsh2aclb
  187. OBJ_SYMBOLTBL=symTbl.o
  188. else
  189. OBJ_SYMBOLTBL=
  190. endif #CONFIG_APP_EXT_TOOLS_TSH_SYM_TBL
  191. #Whether add the app build target
  192. ifeq ($(IS_BUILD_APP), Y)
  193. # MAIN_BUILD += $(EXECUTABLES).$(TARGET_EXT)
  194. MAIN_BUILD += $(EXECUTABLES).elf
  195. endif
  196. # All Target
  197. all: $(EXECUTABLES).$(TARGET_EXT)
  198. compile_source :$(OBJS)
  199. ${IMAGEINFO_OBJ}:$(CURRENT_BUILD_PATH)/imageInfo.c
  200. ${CC} -I$(PLATFORM)/target/common/include -D${CONFIG_ARCH} -mhard-float -O0 -g -Wall -c -fno-builtin -fno-short-enums -o $@ $<
  201. # Tool invocations
  202. $(EXECUTABLES).elf : $(EXECUTABLES).rel
  203. @$(BIN_PATH)/echo 'Building target: $@'
  204. $(BIN_PATH)/cp $(EXECUTABLES)_ROM.elf $@
  205. @$(BIN_PATH)/echo 'Building target: $@ Finished'
  206. @$(BIN_PATH)/echo ' '
  207. $(EXECUTABLES).rel : $(ARCHIVES) ${IMAGEINFO_OBJ} #generate_app_img_attr
  208. @$(BIN_PATH)/echo 'Building target: $@'
  209. #$(LD) -r -whole-archive $< -o checkname.o
  210. ifeq ($(CONFIG_APP_EXT_TOOLS_TSH_SYM_TBL),Y)
  211. @$(BIN_PATH)/echo 'Invoking: GCC C Linker'
  212. $(LD) $(LIBS_PATH) -r $(PREFLAGS) $(CRT0) ${IMAGEINFO_OBJ} $(CRTBEGIN) $(USER_OBJS) --start-group $< $(LIBS) --end-group $(CRTEND) -o $@
  213. $(BIN_PATH)/sh $(PLATFORM)/host/$(RTOS)/script/systblgen.sh $(TCLSH) $(PLATFORM)/host/$(RTOS)/script/makeSymTbl.tcl $(CONFIG_ARCH) $(NM) $@ symTbl.c
  214. ${CC} -I$(PLATFORM)/target/common/include -D${CONFIG_ARCH} -O0 -g -Wall -c -fno-builtin -fno-common -fno-strict-aliasing -fno-short-enums -fmessage-length=0 -march=armv8-a -mlittle-endian -mhard-float -mfpu=vfpv3 -o symTbl.o symTbl.c
  215. endif
  216. $(LD) $(LIBS_PATH) $(PREFLAGS) $(CRT0) ${IMAGEINFO_OBJ} $(CRTBEGIN) $(USER_OBJS) $(OBJ_SYMBOLTBL) --start-group $< $(LIBS) --end-group $(CRTEND) -o $@
  217. $(SIZE) -A -x $@ 1>presize.txt
  218. ${BIN_PATH}/gawk -f ${PLATFORM}/host/${RTOS}/script/parse.awk presize.txt > linkcmds
  219. $(RM) $@ presize.txt
  220. @${BIN_PATH}/cat _linkcmds>catlinkcmds
  221. @$(BIN_PATH)/echo 'Invoking: GCC C Linker'
  222. $(LD) $(LIBS_PATH) -r $(FLAGS) $(CRT0) ${IMAGEINFO_OBJ} $(CRTBEGIN) $(USER_OBJS) $(OBJ_SYMBOLTBL) --start-group $< $(LIBS) --end-group $(CRTEND) -o $(EXECUTABLES)_tmp.rel
  223. $(OBJCOPY) --add-section .imgattr=$(IMAGEINFOGEN_OBJ) $(EXECUTABLES)_tmp.rel $@
  224. @$(BIN_PATH)/echo -e "Building target: $@ Finished\n"
  225. @$(RM) $(EXECUTABLES)_tmp.rel
  226. @$(BIN_PATH)/echo 'Building target: $(EXECUTABLES).bin'
  227. @$(BIN_PATH)/echo 'Invoking: GCC C Linker'
  228. $(LD) -Ttext=$(CONFIG_RUN_ADDR) $(LIBS_PATH) $(FLAGS) $(CRT0) ${IMAGEINFO_OBJ} $(CRTBEGIN) $(USER_OBJS) $(OBJ_SYMBOLTBL) --start-group $< $(LIBS) --end-group $(CRTEND) -o $(EXECUTABLES)_ROM.elf
  229. $(OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .stab -R .stabstr -R .pbss $(EXECUTABLES)_ROM.elf $(EXECUTABLES).bin
  230. @$(BIN_PATH)/echo -e 'Building target: $(EXECUTABLES).bin Finished\n'
  231. $(EXECUTABLES).bin : $(EXECUTABLES).elf
  232. @$(BIN_PATH)/echo ' '
  233. $(ARCHIVES): $(OBJS)
  234. @$(BIN_PATH)/echo 'Building target: $@'
  235. @$(BIN_PATH)/echo 'Invoking: GCC Archiver'
  236. @$(RM) -rf $@
  237. $(AR) -rc $(ARCHIVES) @prjObjs.lst
  238. $(BIN_PATH)/echo -e 'Building target: $@ Finished\n'
  239. clean:
  240. -${RM} ImgAttr.info linkcmds catlinkcmds map.txt presize.txt presize.txt
  241. -${RM} *.rel *.elf *.bin *.o
  242. -$(RM) $(OBJS) $(ARCHIVES) $(C_DEPS)
  243. clean_source:
  244. -$(RM) $(OBJS)
  245. -$(RM) $(IMAGEINFO_OBJ)
  246. unexport C_UPPER_SRCS
  247. unexport C_SRCS
  248. unexport S_UPPER_SRCS
  249. unexport CPP_SRCS
  250. unexport O_SRCS
  251. unexport ASM_SRCS
  252. unexport S_SRCS
  253. unexport CXX_SRCS
  254. unexport CC_SRCS
  255. unexport OBJ_SRCS
  256. unexport OBJS
  257. unexport ARCHIVES
  258. unexport C_DEPS
  259. unexport EXECUTABLES
  260. unexport MAKEFILE_LIST
  261. .PHONY: all clean dependents
  262. .SECONDARY:
  263. #-include $(PROJECT_PATH)/makefile.targets