怎么使用多目录的makefile.env

  1. 在最顶层的目录,比如目录结构app下创建makefile
    建立必要的路径

TOPDIR=./…
APP_DIR = $(TOPDIR)/app
APP_SRC_DIR = $(TOPDIR)/app/src

exclude_dirs= include

#查找所有子目录生成合集
dirs:= ( s h e l l f i n d . − m a x d e p t h 1 − t y p e d ) d i r s : = (shell find . -maxdepth 1 -type d) dirs:= (shellfind.maxdepth1typed)dirs:=(basename ( p a t s u b s t . / (patsubst ./%,%, (patsubst./(dirs)))
dirs:=$(filter-out ( e x c l u d e d i r s ) , (exclude_dirs), (excludedirs),(dirs))
SUBDIRS := $(dirs)

MODULES = $(SUBDIRS)

LIBDIR = $(TOPDIR)/build/lib
BINDIR = $(TOPDIR)/build/bin

#BUILD_DIR = $(shell mkdir -p $(LIBDIR) $(BINDIR))

.PHONY:all
#all : $(BUILD_DIR) $(MODULES)
all : $(MODULES)

$(BUILD_DIR):
@echo " Create directory $@ …"
mkdir -p $(LIBDIR) $(BINDIR)

.PHONY:$(MODULES)
$(MODULES):
@echo " comin directory $@"
$(MAKE) -C ( A P P D I R ) / (APP_DIR)/ (APPDIR)/@

.PHONY:clean
clean:
#@rm $(OBJS_DIR)/.o
#@rm -rf $(BIN_DIR)/
$(DMK_DIR)/*
for dir in $(MODULES);
do $(MAKE) -C $$dir clean||exit 1;
done

  1. 在app/src下makefile
    使用EXTRA_DIRS 保证最后的target生成目录是最后的目标

TOPDIR=./…/…

exclude_dirs= include main daemon
EXTRA_DIRS = main daemon
include $(TOPDIR)/makefile/Makefile.env

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值