金牌会员
 
- 积分
- 1126
- 金钱
- 1126
- 注册时间
- 2014-8-24
- 在线时间
- 146 小时
|

楼主 |
发表于 2017-7-28 13:51:30
|
显示全部楼层
我的主文件夹下makefile:
[mw_shl_code=c,true]
CC=arm-linux-gcc
SUBDIRS=$(shell ls -l | grep ^d | awk '{if($$9 != "DEBUG" && $$9 !="APP" && $$9 !="LIB" && $$9 !="DOC") print $$9}')
ROOT_DIR=$(shell pwd)
BIN=TAO_main
OBJS_DIR=DEBUG/obj
BIN_DIR=DEBUG/bin
CUR_SOURCE=${wildcard *.c}
CUR_OBJS=${patsubst %.c, %.o, $(CUR_SOURCE)}
export CC BIN OBJS_DIR BIN_DIR ROOT_DIR
$(warning *******************************************************************************************)
$(warning **************************************** makefile **********************************)
$(warning *******************************************************************************************)
all (SUBDIRS) $(CUR_OBJS) DEBUG
$(SUBDIRS):ECHO
make -C $@
DEBUG:ECHO
make -C debug #最后运行debug文件夹里的makefile做链接
ECHO:
@echo $(SUBDIRS)
$(CUR_OBJS):%.o:%.c
$(CC) -c $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ -I $(ROOT_DIR)/HARDWARE
clean:
@rm $(OBJS_DIR)/*.o
@rm -rf $(BIN_DIR)/*
CLEAN:
@rm $(OBJS_DIR)/*.o
@rm -rf $(BIN_DIR)/*
[/mw_shl_code]
递归子文件夹makefile:
[mw_shl_code=c,true]#子目录的Makefile直接读取其子目录就行
SUBDIRS=$(shell ls -l | grep ^d | awk '{print $$9}')
#以下同根目录下的makefile的相同代码的解释
CUR_SOURCE=${wildcard *.c}
CUR_OBJS=${patsubst %.c, %.o, $(CUR_SOURCE)}
all (SUBDIRS) $(CUR_OBJS)
$(SUBDIRS):ECHO
make -C $@
$(CUR_OBJS):%.o:%.c %.s
$(CC) -c $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@
ECHO:
@echo $(SUBDIRS)[/mw_shl_code] |
|