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

前端之家收集整理的这篇文章主要介绍了makefile – 在每个子目录中运行make前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个目录(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)

猜你在找的C&C++相关文章