5
假設generate_testapi.py
是我的Linux內核模塊的源代碼樹中的一個腳本,它接收mymod_test.h
並生成一個面向userland的接口源文件(ioctl,debugfs,您將其命名),並命名爲$(obj)/mymod_test_interfaces.gen.c
。如何在Kbuild中添加對生成的源文件的依賴關係?
在kbuild的makefile文件讓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
。
更新(由於由亞歷山大·貝羅尼評論)
是的,我也試過形式的生成規則
$(obj)/mymod_test_interfaces.gen.c: $(src)/mymod_test.h $(src)/generate_testapi.py
$(src)/generate_testapi.py < $(src)/mymod_test.h > $<
具有相同的結果,這是,這是行不通的。
不該」第二個mymod_test_interfaces.gen.o是mymod_test_interfaces.gen.c? –
@AlexandreBelloni:這就是我想要發現的。好的評論,但我當然也試過了,沒有,它沒有給出預期的結果。 – datenwolf