目录树
.
| Makefile
| src
| Makefile
| spec
| test
<。>在./Makefile 中
default: all
.DEFAULT:
$(MAKE) -C $@
在src / Makefile
中.PHONY: all spec test ...
spec:
bundle exec cucumber ../spec
当我在src目录中时,“make spec”运行良好。
..././src/# make spec
blablabla
但是当我在根目录中时,我知道“没有什么可做的”,但这是一个虚假的目标
..././# make spec
make: Nothing to be done for `spec'.
我认为这是一个问题,任务名称与目录名称相同,带有子makefile。
答案 0 :(得分:0)
我认为这是一个问题,任务名称与目录名称相同,带有子makefile。
是的。
尝试类似:
all :
forward_ : ;
% : forward_
$(MAKE) -C $@
.PHONY : all forward_
即使存在具有forward_
名称的现有文件或目录,也应该触发Phony %
目标触发$@
目标的重新评估。