【发布时间】:2013-01-25 07:06:14
【问题描述】:
我正在开发一个使用嵌套 Makefile 构建的大型项目(约 3x10^6 行代码)。我有一个文件 (subdirs.mk),它添加了一些方便的规则来操作所有子目录(可能是并行的)。它包括以下规则:
$(SUBDIRS_INCLUDES):
$(MAKE) -C $(patsubst %-includes,%,$@) includes
SUBDIRS_INCLUDES := $(patsubst %,%-includes,$(SUBDIRS))
includes: $(SUBDIRS_INCLUDES)
它还为install、clean、test等提供了类似的规则。
在我的上层 Makefile 之一中,我有以下代码:
SUBDIRS = dir1 dir2 dir3
include $(BUILD_TOOLS)/subdirs.mk
includes: $(BUILD_DIR)/version.h
我希望includes 目标在这种情况下只制作 $(BUILD_DIR)/version.h,跳过所有子目录中的运行包含。不过,我还是想用 subdirs.mk,因为它提供了其他有用的功能(前面提到的test 和install 目标)。
有没有办法清除 includes 目标的依赖关系?
【问题讨论】:
标签: makefile dependencies