2011-08-03 22 views
1

は、私はいくつかのことMakefileを持っています。それは、両方が同じ価値を持っている場合、それは別のものに入ります。私はプリントで確認し、両方が同じ文字列を持っていることを示しています。ルートmakefileで は、Makefileのifeq問題

SH_LIB := display 

MY_LIBは、ディスプレイを備えた場合であっても、それは常に他の部分に行くと FALSE印刷します - ディスプレイの表示を。

多くの変更の後、私はそれを得ることができました。

.... 
ifeq ("strip $(MY_LIB)", "display") 
    @echo "TRUE-$(MY_LIB) $(SH_LIB)" 
    ...... 
else 
    @echo "FALSE-$(MY_LIB) $(SH_LIB)" 
    ...... 
endif 
..... 

この変更後、TRUEになりました。 誰かがこれを説明できますか?

編集: 私はルートメイクファイルに同様のコードを入れて、それは完全に動作しています。

+0

ですから、この1 include'別のmakefileを 'せずにエラーを再現することはできません。これらのファイルを最小限に抑えて、まだエラーを示してから、全体を投稿してください。括弧については – Beta

答えて

0

最初の切り捨てでは、コンマの後にifeqの内側のスペースを削除してみてください。またifeqで終わる右括弧が欠落している:

ifeq ($(strip $(MY_LIB)),$(strip $(SH_LIB))) 
    @echo "TRUE-$(MY_LIB) $(SH_LIB)" 
    ...... 
else 
    @echo "FALSE-$(MY_LIB) $(SH_LIB)" 
    ...... 
endif 
+0

、それはコピー/ペーストの間違いでした。だから実際のファイルでその罰金。 (そうでなければ、エラーを出します)。あなたの2番目のポイントに来て、 "、"後にスペースを削除した後でも、私は同じ問題に直面している。 – hari

+0

まあ、私はコードを試して、それは期待どおりに働いた... –

+0

私はルートのMakefileとその作業を試みた。これは、他のメイクファイルからインクルードされている.mkファイルです。 – hari