2010-11-29 2 views

答えて

4

はい。ビルドシステムはコードを設定することになっていますが、その逆もありません。この種のオプションのためにconfigureスクリプトを使うべきです(おそらく上位のビルドシステムに切り替える:autotools、CMake、QMake ...)。

1

これは可能ですが、あなたは間違った方法をとっています。異なるディレクトリを含める方法は、異なるmakeターゲットを使用することです。コードでそれらについて知っている必要がある場合は、コンパイラスイッチで-Dを使用してください。また、ビルドが他の人のシステムで実行できる必要がある場合は、autoconfのようなものがあります。

4

他の回答から、これが悪い考えである理由が説明されています。

foo.mk.inで:

#ifdef FOO 
FOO_DEFINED := y 
#else 
FOO_DEFINED := n 
#endif 

Makefileで:

foo.mk: foo.mk.in 
    $(CPP) $(CPPFLAGS) -o [email protected] $< 
include foo.mk 
ifeq ($(FOO_DEFINED),y) 
$(warning FOO is defined) 
else 
$(warning FOO is not defined) 
endif 
+1

良い仕事とはいえ、それを行うための一つの方法は、メイクファイルの断片を前処理することです。ちょうどそれを行ってください。 –

関連する問題