Pergunta

Eu estou Construindo um kernel Ubuntu personalizado e modificaram um dos arquivos de origem. Quando emite o comando de construção:

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

Ele reconstrói os Debs, mas nenhum dos arquivos de origem modificado é reconstruído.

E aí? Tenho que fazer uma reconstrução completamente limpa toda vez que modificar um arquivo de origem?

Isso não faz sentido.

O arquivo modificado foi ./init/main.c.

Como uma nota, o binário-Insp8600 é um sabor personalizado que criei para o meu laptop Inspiron 8600.

Foi útil?

Solução

debian/rules não é o kernel makefile. Não tem como saber que o arquivo que você editou é uma dependência do kernel final, pois essas dependências estão no verdadeiro makefile.

Na verdade, eu esperaria o debian/rules build Target (aquele que realmente faz a compilação) para depender apenas de um arquivo "sinalizador" que cria depois de terminar a compilação. Se for esse o caso, uma solução alternativa simples seria remover esse arquivo "sinalizador"; então compilaria tudo de novo (chamando o kernel Makefile, o que saberia como fazer uma reconstrução parcial. Claro, isso está assumindo o build Target não tenta ser arrumado e faz um make clean ou equivalente...)

(Eu não olhei para o debian/rules Para o pacote que você está usando, então eu posso estar errado, mas pelo menos é um começo.)

Outras dicas

Você não deve fazer uma construção limpa se as dependências no Makefile estiverem corretas.

O arquivo que você alterou é um arquivo de cabeçalho? Se for, execute o makepend para adicionar as dependências do arquivo de cabeçalho automaticamente :)

Se não for um arquivo de cabeçalho, o deles realmente deve ser uma dependência no makefile se fizer parte da compilação, faça uma pesquisa e verifique se o alvo que você está usando depende do módulo que deseja compilar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top