首页 > 其他 > 详细

第二十三课 模块独立编译的支持

时间:2018-10-01 18:39:47      阅读:181      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

技术分享图片

 

技术分享图片

 

技术分享图片

 

技术分享图片

技术分享图片

 

技术分享图片

 

技术分享图片

 

 

 

 

 

 1 .PHONY : all compile link clean rebuild $(MODULES)
 2 
 3 DIR_PROJECT := $(realpath .)
 4 DIR_BUILD_SUB := $(addprefix $(DIR_BUILD)/, $(MODULES))
 5 MODULE_LIB := $(addsuffix .a, $(MODULES))
 6 MODULE_LIB := $(addprefix $(DIR_BUILD)/, $(MODULE_LIB))
 7 
 8 
 9 APP := $(addprefix $(DIR_BUILD)/, $(APP))
10 
11 define makemodule
12     cd $(1) && 13     $(MAKE) all 14             DEBUG:=$(DEBUG) 15             DIR_BUILD:=$(addprefix $(DIR_PROJECT)/, $(DIR_BUILD)) 16             DIR_COMMON_INC:=$(addprefix $(DIR_PROJECT)/, $(DIR_COMMON_INC)) 17             CMD_CFG:=$(addprefix $(DIR_PROJECT)/, $(CMD_CFG)) 18             MOD_CFG:=$(addprefix $(DIR_PROJECT)/, $(MOD_CFG)) 19             MOD_RULE:=$(addprefix $(DIR_PROJECT)/, $(MOD_RULE)) && 20     cd .. ; 
21 endef
22 
23 all : compile $(APP)
24     @echo "Success! Target ==> $(APP)"
25 
26 compile : $(DIR_BUILD) $(DIR_BUILD_SUB)
27     @echo "Begin to compile ..."
28     @set -e; 29     for dir in $(MODULES); 30     do 31         $(call makemodule, $$dir) 32     done
33     @echo "Compile Success!"
34     
35 link $(APP) : $(MODULE_LIB)
36     @echo "Begin to link ..."
37     $(CC) -o $(APP) -Xlinker "-(" $^ -Xlinker "-)" $(LFLAGS)
38     @echo "Link Success!"
39     
40 $(DIR_BUILD) $(DIR_BUILD_SUB) : 
41     $(MKDIR) $@
42     
43 clean : 
44     @echo "Begin to clean ..."
45     $(RM) $(DIR_BUILD)
46     @echo "Clean Success!"
47     
48 rebuild : clean all
49 
50 $(MODULES) : $(DIR_BUILD) $(DIR_BUILD)/$(MAKECMDGOALS)
51     @echo "Begin to compile $@"
52     @set -e; 53     $(call makemodule, $@)
54     

 

技术分享图片

 

第二十三课 模块独立编译的支持

原文:https://www.cnblogs.com/wanmeishenghuo/p/9735278.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!