Позвольте generate_testapi.py
быть сценарием в исходном дереве модуля ядра Linux, который глотает mymod_test.h
и генерирует исходный файл интерфейса для пользователя (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
.
Update (из-за комментарий от Александра Belloni)
Да, я также попробовал правило генератор формы
$(obj)/mymod_test_interfaces.gen.c: $(src)/mymod_test.h $(src)/generate_testapi.py
$(src)/generate_testapi.py < $(src)/mymod_test.h > $<
с тем же результатом, что, что он не работает ,
не должен» t второй mymod_test_interfaces.gen.o - mymod_test_interfaces.gen.c? –
@AlexandreBelloni: Это то, что я пытаюсь выяснить. Хороший комментарий, но, конечно, я тоже пробовал это и нет, это не дало желаемого результата. – datenwolf