2011-08-15 9 views
0

"gmake -f Makefile foo"によって実行されるMakefileがあり、次のようになります。メイクファイル:再帰的なmakeコールからシーケンシャルなフローへの変換

foo: 

       #set var = 1 
       @$(MAKE) bar var=1 

bar: 

       #hello.mk is included 
       @echo “success” 

ifeq ($(var), 1) 

       include test\hello.mk 

endif 

私はそれはオーバーヘッドが少ないとバックこのMakefileのステップを必要としないとして、次に何かのように、一連の流れにこれを変換したいです。

foo: 

       $(eval var=1) 
       @$(bar) 

define bar 

       include test\hello.mk #this doesn’t work 
       @echo “success” 
endef 

私は、機能またはターゲット内部のステートメントを含めることはできませんので、私はノーメイク呼び出しで、このMakefileのシーケンシャルを作るために、この問題を回避行くべきか?

答えて

0

短い答え:これはできません。

実際には異なるメイクファイルで 'foo'と 'bar'を作りたいと思っています。メイクの再帰呼び出しなしではできません。

hello.mkに何か制限がある場合は、これを1回のパスで取得できます。