generate_testapi.py
を私のLinuxカーネルモジュールのソースツリーのスクリプトにして、mymod_test.h
を取り込み、userland(ioctl、debugfs、あなたの名前)に向けてインターフェイスソースファイルを生成し、これを$(obj)/mymod_test_interfaces.gen.c
という名前にします。 KbuildのmakefileでKbuildで生成されたソースファイルに依存関係を追加するには?
はmymod-y
、すなわち
オブジェクトファイルを追加しますKbuildっぽいルールの外観等は、のように生成したソースからコンパイルしない方法、モジュールを構成するオブジェクトファイルのリストを含む変数でみましょうmymodの依存関係と生成プロセスについて説明します。
次のように、このようなルールセットに対する私の最初の単純な試みは機能しません。
obj-m := mymod.o
mymod-y := \
mymod_kmod.o \
$(obj)/mymod_test_interfaces.gen.o
$(obj)/mymod_test_interfaces.gen.o: $(src)/mymod_test.h $(src)/generate_testapi.py
$(src)/generate_testapi.py < $(src)/mymod_test.h > $<
はそれでmake
しようとすると、結果の誤差があり、mymod_test_interfaces.gen.o
を作るために何ルールが存在しないこと。 (アレクサンドルBelloniはによってコメントによる)
更新
はい、私はまた、それが動作しないことである同じ結果とフォーム
$(obj)/mymod_test_interfaces.gen.c: $(src)/mymod_test.h $(src)/generate_testapi.py
$(src)/generate_testapi.py < $(src)/mymod_test.h > $<
の生成ルールを試し。
Shouldn」 2番目のmymod_test_interfaces.gen.oはmymod_test_interfaces.gen.cですか? –
@AlexandreBelloni:それは私が見つけようとしているものです。いいコメントですが、もちろん私もそれを試しましたが、いい結果を得られませんでした。 – datenwolf