我已准备好以下makefile,以自动清理我要删除的所有临时项目:
.SUFFIXES : bye
# The default action is to
# remove the latest project, i was working at...
byebye :
rm -rf "$(ls -1dt /projects/new_* | head -n1)"
# Remove a specific project.
# Run make from the command-line as 'make new_1_bye' etc.
%_bye :
rm -rf /projects/$*
但是,如果我运行make as:
$ make
我明白了:
make: *** No targets. Stop.
为什么?
答案 0 :(得分:2)
.SUFFIXES
行似乎会造成麻烦。后缀通常以点(例如.c
)开头。 Make似乎接受后缀bye
,但这意味着行byebye:
标记后缀规则的开头,%_bye
行也是后缀规则。这加起来意味着makefile
中没有引用目标,因此错误信息。
如果您使用.SUFFIXES : .bye
,make
对makefile感到满意。