2011-08-02 44 views
2

我有一个make文件,负责拷贝文件的文件夹,从A到B.夹makefile文件无法检测到缺少必备文件

这里我简单的makefile来描述我遇到的问题。 例如:

all: a.txt b.txt 

%.txt: test/%.txt 
     cp -a $< [email protected] 

当调用make命令:

make 

它复制2个txt文件。

在那之后,我删除A.TXT在测试文件夹,然后运行make再次

rm test/a.txt 
make 

我想作将检测不可用的先决条件,但它的输出:

make: Nothing to be done for `all'. 

我怎么能有错误输出对于这种情况?

谢谢!!

回答

2

您正在使用模式规则,如果先决条件不可用,Make会忽略它。试试这个:

TEXTS := a.txt b.txt 

all: $(TEXTS) 

$(TEXTS): % : test/% 
     cp -a $< [email protected] 
+0

谢谢!我终于意识到这是静态模式规则:-) – SILENCE