这是我的Makefile:
catchall = echo "Available make commands: dev, rebuild" && exit 0
.DEFAULT:
@$(catchall)
error:
@$(catchall)
dev:
docker-compose -f docker-compose.dev.yml up --abort-on-container-exit
rebuild:
docker-compose -f docker-compose.dev.yml up --build --abort-on-container-exit
当我运行make rebuild
时,一切都按预期工作,但make dev
给出了这个输出:
make: `dev' is up to date.
如果我将dev
目标重命名为几乎任何其他命令。为什么?
make -v
:
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
这是因为我在同一目录中有一个名为dev
的文件夹。解决方法是将.PHONY: dev
添加到Makefile中。