8

共有ソース コードを使用して一連の Linux カーネル モジュールを構築しています。私が理解していることから、Makefile には「Makefile」という名前を付ける必要があるため、同じ Makefile を使用して 2 つの異なるモジュールをビルドする必要があります。2 つの異なるモジュールを、同じ Makefile 内で、同じソース コードを使用して、2 つの異なるビルド オプションでビルドするにはどうすればよいですか?

たとえば、私のモジュールは module1 と module2 と呼ばれています。したがって、それらを定義する次の行があります。

obj-m := module1.o module2.o

他のファイルの中でも、module1 と module2 は同じソース ファイルを使用する必要がありますcode.cが、異なるビルド オプションでビルドする必要があります。たとえば、Makefile に次の行が含まれているとします。

module1-objs = module1_code.o other_code.o
module2-objs = module2_code.o other_code.o

私はcode.cからビルドしたいmodule1_code.oと思っていますが、オプションが異なります。module2_code.o具体的にはmodule1_code.o、マクロが定義され、マクロなし-DPREPROCEFFOR_FLAG=1module2_code.oビルドされたものが必要です。

私が理解していることから、Linux で使用される Makefile のシステムは、"code.o" というオブジェクト ファイルの場合、ソース ファイルは "code.c" と呼ばれることを暗黙的に推測します。可能ですか?これを行うより良い方法はありますか?

4

2 に答える 2