21.打造专业的编译环境(中)

Posted 阿弥陀佛.a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了21.打造专业的编译环境(中)相关的知识,希望对你有一定的参考价值。








证明嵌入shell for循环完全可行


.PHONY : all compile link clean rebuild

MODULES := common \\
           module \\
           main
           
MKDIR := mkdir
RM := rm -fr

CC := gcc
LFLAGS := 

DIR_PROJECT := $(realpath .)
DIR_BUILD := build
DIR_BUILD_SUB := $(addprefix $(DIR_BUILD)/, $(MODULES))
MODULE_LIB := $(addsuffix .a, $(MODULES))
MODULE_LIB := $(addprefix $(DIR_BUILD)/, $(MODULE_LIB))

APP := app.out
APP := $(addprefix $(DIR_BUILD)/, $(APP))

all : compile $(APP)
	@echo "Success! Target ==> $(APP)"

compile : $(DIR_BUILD) $(DIR_BUILD_SUB)
	@echo "Begin to compile ..."
	@set -e; \\
	for dir in $(MODULES); \\
	do \\
		cd $$dir && $(MAKE) all DEBUG:=$(DEBUG) && cd .. ; \\
	done
	@echo "Compile Success!"
	
link $(APP) : $(MODULE_LIB)
	@echo "Begin to link ..."
	$(CC) -o $(APP) -Xlinker "-(" $^ -Xlinker "-)" $(LFLAGS)
	@echo "Link Success!"
	
$(DIR_BUILD) $(DIR_BUILD_SUB) : 
	$(MKDIR) $@
	
clean : 
	@echo "Begin to clean ..."
	$(RM) $(DIR_BUILD)
	@echo "Clean Success!"
	
rebuild : clean all

可以分步来操作,编译、连接

以上是关于21.打造专业的编译环境(中)的主要内容,如果未能解决你的问题,请参考以下文章

打造专业的编译环境(十四)

20.打造专业的编译环境(上)

makefile(08)_打造专业的编译环境

第二十一课 打造专业的编译环境(中)

22.打造专业的编译环境(下)

第二十二课 打造专业的编译环境(下)