LinuxカーネルMakefile
に記述されています
clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files
そして Arch docs に記載されています
準備を完了するには、カーネルツリーが完全にクリーンであることを確認します。
$ make clean && make mrproper
したがって、make mrproper
はより完全な削除を行いますが、なぜmake clean
中古?
LinuxカーネルMakefile のコメントに記載されているように、クリーニングは3つのレベルで行われます。
###
# Cleaning is done on three levels.
# make clean Delete most generated files
# Leave enough to build external modules
# make mrproper Delete the current configuration, and all generated files
# make distclean Remove editor backup files, patch leftover files and the like
Makefileによれば、mrproper
ターゲットはclean
ターゲットに依存します( 行1421 を参照)。さらに、distclean
ターゲットはmrproper
に依存します。
したがって、make mrproper
を実行すると、clean
ターゲットが実行するのと同じこと(およびその他)も削除されるので十分です。
mrproper
ターゲットは1993(Linux 0.97.7)で追加され、常にclean
ターゲットに依存してきました。これは、make clean && make mrproper
のようにbothターゲットを使用する必要がなかったことを意味します。
clean
は Makefile のmrproper
ターゲットの前提条件であるため、make clean
個別に冗長です。
make mrproper
を実行することをお勧めしますが、必要ではありません。なぜですか?
古い設定ファイルが存在する場合、make
コマンドは「はクリーンではありません。'makemrproper ' "を実行してください」という警告を表示するため、このエラーはカーネルのコンパイルに失敗し、再度コンパイルした場合に再現されます。
make mrproper
理論的には、この手順は必要ありません。しかし、カーネル開発者は、何かが誤って場違いのままにされた場合に備えて、とにかくそれをしてほしいと思っています。この手順では.configファイルも削除されることに注意してください。したがって、保持する必要がある場合は、コピーを作成してください。