获取Linux内核make进程以重建已修改的文件

时间:2009-06-29 10:12:17

标签: build-process makefile linux-kernel

building a custom Ubuntu kernel并修改了其中一个源文件。当我发出构建命令时:

NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-insp8600

它重建debs,但没有重建修改过的源文件。

怎么了?每次修改源文件时,是否必须进行完全干净的重建?

这没有任何意义。

修改的文件为./init/main.c

作为备注,binary-insp8600是我为Inspiron 8600笔记本电脑创建的自定义风格。

2 个答案:

答案 0 :(得分:2)

debian/rules不是内核Makefile。它无法知道您编辑的文件是最终内核的依赖项,因为这些依赖项位于真正的Makefile中。

实际上,我希望debian/rules build目标(实际进行编译的目标)仅依赖于它在完成构建后创建的“标志”文件。如果是这种情况,一个简单的解决方法是删除该“标志”文件;然后它将再次编译所有内容(通过调用内核的Makefile,它将知道如何进行部分重建。当然,假设build目标不会尝试整洁并执行{{{ 1}}或同等的......)

(我没有看到你正在使用的软件包的make clean,所以我可能错了,但至少它是一个开始。)

答案 1 :(得分:0)

如果Makefile中的依赖项是正确的,则不必进行干净的构建。

您更改的文件是头文件吗?如果是,则运行makedepend以自动添加头文件依赖项:)

如果它不是头文件,那么它们确实应该是Makefile中的依赖项,如果它是编译的一部分,请进行搜索并确保您使用的目标取决于您要编译的模块