我有一个结构如下的Makefile(工作示例)。
.PHONY: image flashcard put-files
put-files:
@echo "=== put-files"
image:
@echo "=== image"
flashcard:
@echo "=== flashcard"
all: put-files image flashcard
@echo "Done"
我期望一个简单的make
将构建所有三个目标,但事实并非如此:
% make
=== put-files
但是如果我显式地指定目标,依赖项也会被构建:
% make all
=== put-files
=== image
=== flashcard
Done
我做错了什么?
一个简单的make
将构建列表中的第一个目标,即put-files
。
make all
将构建目标all
。如果您希望all
为默认值,则将其移动到列表的顶部。
要了解.PHONY
的作用,请参阅http://www.gnu.org/s/hello/manual/make/Phony-Targets.html