根目录下的makefile文件怎么调用子文件目录下的makefile文件
时间: 2024-10-19 14:09:24 浏览: 14
Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录
根目录下的Makefile文件可以调用子目录下的Makefile文件通过使用`\$(MAKEFILE\_PATH)`来指定目标目录的Makefile。假设有一个名为`subdir`的子目录,其中也有一个Makefile,你可以在根目录的Makefile中像这样编写:
```makefile
# 在根目录Makefile中
SUBDIRS := subdir
.PHONY: all clean
all:
for dir in \$(SUBDIRS); do \
(cd \$$dir && $(MAKE)); \
done
clean:
for dir in \$(SUBDIRS); do \
(cd \$$dir && $(MAKE) clean); \
done
# 或者更现代的做法,使用shell函数
define SUBDIR_MAKE
cd $(1) && $(MAKE)
endef
all: subdirs
subdirs:
$(foreach dir, $(SUBDIRS), $(eval $(call SUBDIR_MAKE, $(dir))))
clean:
$(foreach dir, $(SUBDIRS), $(eval $(call SUBDIR_MAKE, $(dir))))
```
这里,`all`和`clean`目标会分别进入每个子目录并运行对应的`all`和`clean`任务。`SUBDIRS`是一个包含了所有子目录名字的列表。
阅读全文