2012-02-27 17 views
0

私は、異なるソースファイルをコンパイルするためにmenuconfigの選択したフラグにしたがってコンパイルし、単一のオブジェクトファイルにリンクしたいと思う。linux kbuild makefile

like;

OBJ - $(CONFIG1):sample.o(それはsample_1.cから構築する必要があります) OBJ - $(CONFIG2):sample.o(それはsample_2.cから構築する必要があります)

はですそれはmakefileを介して可能ですか、またはLinux kbuildを使ってできない場合は、これを達成するためのあらゆるトリックが高く評価されます。

RGDS、 Sharanu

+0

これを行うには、いくつかの方法、完璧ななしがあるのに役立ちます:あなたはこのような何かを行うことができます。私たちは、あなたの意図/優先順位についてのより多くの情報が必要です。なぜ2つの異なるファイルに対して 'sample.o'という名前を使用したいのですか? – Beta

+0

多くの依存関係があるので、モジュールをロードするスクリプトファイルを変更したくありません。その代わりに、単一のモジュールをロードしなければならないが、コンパイル指令に従って構築される。 –

+0

完璧ではないこのソリューション –

答えて

0

自動的にこれを行うには、私の知っているものは何もありませんが、しかし、Kbuildファイルはメークファイルなので、あなたはそれらにあるMakefileの条件文を使用することができます。

ifneq ($(findstring $(config1),"ym"),) 
    $(obj)sample.o: $(obj)sample_1.o 
     $(Q)$(CC) $(CFLAGS) $< -c -o [email protected] 
else 
ifneq ($(findstring $(config2),"ym"),) 
    $(obj)sample.o: $(obj)sample_2.o 
     $(Q)$(CC) $(CFLAGS) $< -c -o [email protected] 
endif 
endif 

obj-($config1) += sample.o 
obj-($config2) += sample.o 

希望これは

ジョン

関連する問題