加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

makefile – 在每个子目录中运行make

发布时间:2020-12-16 03:04:56 所属栏目:百科 来源:网络整理
导读:我有一个目录(root_dir),它包含一些子目录(subdir1,subdir2,…). 我想在root_dir中的每个目录中运行make,使用放置在其中的Makefile. (显然应该是每个子目录里面都有自己的Makefile). 所以基本上有两个问题: 如何获取Makefile中的目录列表(自动)? 如何为mak
我有一个目录(root_dir),它包含一些子目录(subdir1,subdir2,…).

我想在root_dir中的每个目录中运行make,使用放置在其中的Makefile.
(显然应该是每个子目录里面都有自己的Makefile).

所以基本上有两个问题:

>如何获取Makefile中的目录列表(自动)?
>如何为make文件中的每个目录运行make?

为了在特定的目录中运行make,我谨此着手做以下事情:

$(MAKE) -C subdir

解决方法

在单个配方中进行for循环中的子制作存在各种问题.执行多个子目录的最佳方法是这样的:
SUBDIRS := $(wildcard */.)

all: $(SUBDIRS)
$(SUBDIRS):
        $(MAKE) -C $@

.PHONY: all $(SUBDIRS)

(只是指出这是GNU具体的;你没有提到任何使用版本的限制).

ETA这是一个支持多个顶级目标的版本.

TOPTARGETS := all clean

SUBDIRS := $(wildcard */.)

$(TOPTARGETS): $(SUBDIRS)
$(SUBDIRS):
        $(MAKE) -C $@ $(MAKECMDGOALS)

.PHONY: $(TOPTARGETS) $(SUBDIRS)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读