2017-02-16 4 views
0

時々、私はLinuxカーネルを再コンパイルする必要があります。私はすでにlinux Makefileがオブジェクトファイルが存在するときに再コンパイルを防ぐことを知っていますが、設定ファイル(.config)の変更やdebianパッケージの作成などの例外があることがあります。.configファイルを変更したり、カーネルpakageを作成したときに、すべてのLinuxカーネルオブジェクトを再コンパイルしないようにするには?

他のファイルに影響しないような新しいモジュールを追加するような.configのマイナーな内容を変更したとしても、すべてのオブジェクトをクリーンアップして再コンパイルしようとしました。

また、私のカーネルプログラミングのワークフローは、通常、debianカーネルパッケージを作成し、他のベアメタルマシンをデプロイすることです。そのため、debian kernel pakageを作るチャンスはたくさんあります。この場合、 'make'コマンドは常にすべてのファイルをさらにコンパイルします。

非常に時間がかかるLinuxカーネルを再コンパイルしないように効率的な方法はありますか?回避策が役立ちます。

ターゲットカーネルは4.4 + ubuntu 16.04です。私はdebianのパッケージ化に `debpkg 'を使った。

答えて

0

メイクは、ファイルのタイムスタンプで動作します。

configで設定された変数の1つがあなたのコードに影響するかどうかをmakeが検出する方法はありません。 Cコード全体を解析する必要があります。

+0

はい、私はその種のmake動作を知っていますので、他のカーネル開発者がどのように対処するのだろうかと思います。 –

+0

すべてのコンフィグレーションバリアント(通常は2つまたは3つしかありません)に対して、別個のビルドディレクトリがあります。 – arved

関連する問題