我有一个具有以下结构的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
我做错了什么?
答案 0 :(得分:14)
一个简单的make
将构建列表中的第一个目标,即put-files
。
make all
将构建目标all
。如果您希望all
成为默认值,请将其移至列表顶部。
要了解.PHONY
的作用,请参阅http://www.gnu.org/s/hello/manual/make/Phony-Targets.html