2012-02-13 5 views
0

Directoryツリー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'. 

であることを取得それはディレクトリの名前と同じですが、サブメイクファイルを持っています。

答えて

0

サブメイクファイルを使って、ディレクトリ名と同じタスクの名前に問題があるとします。

イエップ。

all : 

forward_ : ; 

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

.PHONY : all forward_ 

偽のforward_ターゲットが[email protected]名前を持つ既存のファイルまたはディレクトリが存在する場合でも%ターゲットの再評価をトリガすることになっている:

のようなものを試してみてください。

+0

ありがとうございます!うまくいく。 – pastjean

関連する問題