gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 13:39:03 25 4
gpt4 key购买 nike

我有一个目录 (root_dir),其中包含许多子目录 (subdir1, subdir2, ...)。

我想使用放置在其中的 Makefile 在 root_dir 中的每个目录中运行 make。(显然假设每个 subdir... 都有自己的 Makefile)。

所以本质上有两个问题:

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

据我所知,为了在特定目录中运行 make,我需要执行以下操作:

$(MAKE) -C subdir

最佳答案

在单个配方的 for 循环内执行子 make 会出现各种问题。做多个子目录的最好方法是这样的:

SUBDIRS := $(wildcard */.)

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

.PHONY: all $(SUBDIRS)

(只是指出这是 GNU make 特定的;您没有提到对您正在使用的 make 版本的任何限制)。

预计到达时间这是一个支持多个顶级目标的版本。

TOPTARGETS := all clean

SUBDIRS := $(wildcard */.)

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

.PHONY: $(TOPTARGETS) $(SUBDIRS)

关于makefile - 在每个子目录中运行make,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17834582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com