Warum werden sowohl "make clean" als auch "make mrproper" verwendet?

10

Es ist im Linux-Kernel geschrieben, Makefiledass

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

Und es steht auf den Arch-Dokumenten, dass

Stellen Sie zum Abschluss der Vorbereitung sicher, dass der Kernelbaum absolut sauber ist.

$ make clean && make mrproper

Also, wenn make mrpropereine gründlichere Entfernung, warum wird die make cleanverwendet?

Sitilge
quelle

Antworten:

18

Die Bereinigung erfolgt auf drei Ebenen, wie in einem Kommentar im Linux-Kernel-Makefile beschrieben :

###
# 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

Laut Makefile mrproperhängt das Ziel vom cleanZiel ab (siehe Zeile 1421 ). Zusätzlich distcleanhängt das Ziel von ab mrproper.

Das Ausführen make mrproperwird daher ausreichen, da es auch die gleichen Dinge wie das cleanZiel (und mehr) entfernen würde.

Das mrproperZiel wurde 1993 hinzugefügt (Linux 0.97.7) und war immer vom cleanZiel abhängig . Dies bedeutet, dass es nie notwendig war, beide Ziele wie in zu verwenden make clean && make mrproper.

Historische Referenz: https://archive.org/details/git-history-of-linux

Kusalananda
quelle
@derobert wow, toll. Ist make cleanalso überflüssig, oder?
Sitilge
2
@sitilge ja, es ist redundant, da make es trotzdem ausführt, wenn Sie es ausführen make mrproper.
Derobert
0

cleanist eine Voraussetzung für das mrproperZiel in Makefile , daher ist die make cleanseparate Ausführung redundant.

sebasth
quelle