首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在kbuild makefile中运行perl

如何在kbuild makefile中运行perl
EN

Stack Overflow用户
提问于 2019-11-14 10:58:50
回答 1查看 151关注 0票数 1

我正尝试在当前版本中添加新功能。为了进行编译,我将obj-y += mynewfeature.c添加到同一目录下的makefile中。但我仍然需要使用同一目录中的perl脚本生成或更新现有的头文件。我不能处理的问题是如何从kbuild文件调用这个perl脚本。似乎makefile找不到perl脚本的正确路径。那么我应该在kbuild文件的顶部添加什么来调用这个perl脚本文件呢

谢谢

代码语言:javascript
复制
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执行呢?

EN

回答 1

Stack Overflow用户

发布于 2019-11-15 01:42:44

Makefile规则应该是这样的:

代码语言:javascript
复制
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“的生成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58848731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档