Запустите процесс make ядра Linux для восстановления измененных файлов

StackOverflow https://stackoverflow.com/questions/1057561

Вопрос

I'm создание пользовательского ядра Ubuntu и изменили один из исходных файлов.Когда я выдаю команду сборки:

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

он перестраивает debs, но ни один из измененных исходных файлов не перестраивается.

Что случилось?Должен ли я выполнять полностью чистую перестройку каждый раз, когда я изменяю исходный файл?

В этом нет никакого смысла.

Измененный файл был ./init/main.c.

В качестве примечания binary-insp8600 - это пользовательский интерфейс, который я создал для своего ноутбука Inspiron 8600.

Это было полезно?

Решение

debian/rules не является Make-файлом ядра.У него нет возможности узнать, что отредактированный вами файл является зависимостью от конечного ядра, поскольку эти зависимости находятся в реальном Makefile.

На самом деле, я бы ожидал, что debian/rules build целевой (тот, который фактически выполняет компиляцию), чтобы зависеть только от файла "flag", который он создает после завершения сборки.Если это так, простым обходным решением было бы удалить этот файл "flag";затем он скомпилировал бы все снова (вызвав ядро Makefile, который знал бы, как выполнить частичную перестройку.Конечно, это предполагает, что build цель не пытается быть аккуратной и делать make clean или эквивалент ...)

(Я не смотрел на debian/rules для пакета, который вы используете, так что я могу ошибаться, но, по крайней мере, это начало.)

Другие советы

Вам не нужно выполнять чистую сборку, если зависимости в Makefile верны.

Является ли файл, который вы изменили, заголовочным файлом?Если это так, то запустите makedepend, чтобы автоматически добавить зависимости файла заголовка :)

Если это не заголовочный файл, то их действительно должна быть зависимость в Makefile, если это часть компиляции, выполните поиск и убедитесь, что используемая вами цель зависит от модуля, который вы хотите скомпилировать

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top