2009-06-29 4 views
1

私はbuilding a custom Ubuntu kernelです。ソースファイルの1つを変更しました。変更されたファイルを再構築するLinux Kernel makeプロセスを取得します

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

変更されたソースファイルは再構築されません。

どうしたのですか?ソースファイルを変更するたびに、完全にクリーンな再構築を行う必要がありますか?

これは意味をなさない。

修正されたファイルは./init/main.cです。

メモとして、binary-insp8600はInspiron 8600ラップトップ用に作成したカスタムフレーバーです。

答えて

2

debian/rulesはカーネルのMakefileではありません。これらの依存関係は実際のMakefileにあるので、編集したファイルが最終カーネルの依存関係であることを知る方法はありません。

実際には、ビルドを完了した後に作成する "フラグ"ファイルにのみ依存するようにターゲット(実際にはコンパイルを行うもの)が期待されます。その場合、単純な回避策は、 "フラグ"ファイルを削除することです。 (カーネルのMakefileを呼び出して部分的な再構築を行う方法を知っている)もちろんbuildターゲットは整頓しようとしておらず、make cleanまたは同等のものを実行すると仮定している...)

(私は使用しているパッケージのdebian/rulesを見ていないので間違っているかもしれませんが、少なくとも開始です)

+0

見た目がいいと思う。 –

+0

良い推測です。ビルドスタンプを含むディレクトリdebian/stampsがあります。それらを削除するとmakeが再実行されます。 –

0

Makefileの依存関係が正しい場合は、クリーンビルドを行う必要はありません。

変更したファイルはヘッダーファイルですか?それが次にヘッダファイルの依存関係を自動的に追加するためにmakedependを実行している場合:

ヘッダファイルではない場合は、コンパイルの一部である場合は本当にMakefileに依存する必要があります。あなたが使用しているターゲットが、コンパイルするモジュールに依存することを確認してください。

+0

いいえ、./init/main.c –

+0

を検索しましたか?あなたのMakefile(main.cではなく)のmain?そこにいますか?それが今までにコンパイルされたものでなければならない。 – hhafez

+0

もちろん、それはmakeファイルにあります。あなたが言うように、そうでなければ最初にコンパイルされるのでしょうか? –

関連する問題