我正在尝试获取一个顶级 makefile 来调用许多子文件夹中的 make 。顶层有几个目标,重要的部分如下所示:
MAKE_DIRS := $(dir $(wildcard apps/**/Makefile))
.PHONY: clean_apps apps $(MAKE_DIRS)
clean_apps: TARGET_INFO := clean
apps clean_aps: $(MAKE_DIRS)
$(MAKE_DIRS):
$(MAKE) -C $@ $(TARGET_INFO)
现在,当我独立调用目标时,这可以正常工作:
make apps; make clean_apps
但是,如果我在同一命令行上调用它们:
make clean_apps apps
然后应用程序目标只是说什么都不做。我想这与在调用之间没有改变的目录的依赖有关,但我认为 .PHONY 命令可以避免这个问题......
我很高兴知道是否有更好的方法来处理这个问题。
谢谢,鲍勃