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.打造专业的编译环境(中)的主要内容,如果未能解决你的问题,请参考以下文章