2012-02-13 68 views
0

目录树Makefile文件和子makefile文件,假的任务毫无办法

. 
| Makefile 
| src 
    | Makefile 
| spec 
| test 
在./Makefile

default: all 

.DEFAULT: 
    $(MAKE) -C [email protected] 
在SRC

/Makefile文件

.PHONY: all spec test ... 

spec: 
    bundle exec cucumber ../spec 

当我在src目录中的“make spec”运行良好。

..././src/# make spec 
blablabla 

但是,当我在根目录下,我得到的是有“什么工作要做”,但它是一个假目标

..././# make spec 
make: Nothing to be done for `spec'. 

我想这是任务的名称问题这与目录的名称相同,并带有一个子makefile。

回答

0

我想这是一个问题,任务的名称是相同的目录名称与子生成文件。

是的。

试着这么做:

all : 

forward_ : ; 

% : forward_ 
    $(MAKE) -C [email protected] 

.PHONY : all forward_ 

forward_目标应该是触发%目标的重新评估,即使有一个现有的文件或目录与[email protected]名。

+0

谢谢!效果很好。 – pastjean 2012-02-19 23:00:04