`make clean`と` make mrproper`の両方が使用されるのはなぜですか?


10

それは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使用されるのでしょうか?

回答:


18

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ます。

歴史的な参照:https : //archive.org/details/git-history-of-linux


@derobertわあ、すごい。だから、make clean冗長、右ですか?
2017

2
@sitilgeはい、これは冗長です。makeを実行すると、とにかく実行されmake mrproperます。
derobert 2017

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.