我正尝试在当前版本中添加新功能。为了进行编译,我将obj-y += mynewfeature.c添加到同一目录下的makefile中。但我仍然需要使用同一目录中的perl脚本生成或更新现有的头文件。我不能处理的问题是如何从kbuild文件调用这个perl脚本。似乎makefile找不到perl脚本的正确路径。那么我应该在kbuild文件的顶部添加什么来调用这个perl脚本文件呢
谢谢
dir
|- mynewfeature.c
|- generator.pl
|- some_template //perl script will read this file and generate a header file
|- Makefile
Makefile:
code_to_call_perl_script // how to write this line
obj-y += mynewfeature.o我试过Ian的代码,perl脚本甚至都没有执行。那么有没有办法强制perl执行呢?
发布于 2019-11-15 01:42:44
Makefile规则应该是这样的:
obj-y += mynewfeature.o
# Add dependency: mynewfeature.o depends on generated header mynewheader.h.
# Note: Generated sources go in $(obj).
$(obj)/mynewfeature.o: $(obj)/mynewheader.h
# Add rule to generate the header file mynewheader.h.
# It depends on the script and the template file.
# Note: Generated sources go in $(obj).
$(obj)/mynewheader.h: $(src)/generator.pl $(src)/some_template
# (I don't know the exact command you use, but here is an example)
$(PERL) -s $(src)/generator.pl $(src)/some_template > $@
# Allow generated header file to be cleaned by "make clean".
clean-files := mynewheader.h参考:Special Rules in Linux Kernel Makefiles in Kernel Build System in The Linux Kernel documentation。
有关具体示例,请参阅drivers/scsi/Makefile中"53c700_d.h“的生成。
https://stackoverflow.com/questions/58848731
复制相似问题