1

我正在构建一个自定义 Ubuntu 内核并修改了其中一个源文件。当我发出构建命令时:

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

它会重建 deb,但不会重建任何修改过的源文件。

这是怎么回事?每次修改源文件时都必须进行完全干净的重建吗?

这没有任何意义。

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

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

4

2 回答 2

2

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

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

(我没有查看debian/rules您正在使用的软件包,所以我可能错了,但至少这是一个开始。)

于 2009-06-29T10:27:05.207 回答
0

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

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

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

于 2009-06-29T10:19:31.633 回答