2012-02-13 2 views
0

Дерево каталоговMakefile и субтропическое Makefile, фальшивая задача ничего сделать

. 
| Makefile 
| src 
    | Makefile 
| spec 
| test 

в ./Makefile

default: all 

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

в И/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'. 

Я полагаю, что это проблема с именем задачи это то же самое, что и имя каталога, с дополнительным make-файлом.

ответ

0

Я полагаю, что это проблема с именем задачи, которое совпадает с именем каталога, с подмассивом.

Да.

Попробуйте что-то вроде:

all : 

forward_ : ; 

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

.PHONY : all forward_ 

Phony forward_ цель должна вызвать переоценку % цели, даже если есть существующий файл или каталог с [email protected] именем.

+0

спасибо! работает хорошо. – pastjean

Смежные вопросы