Perché vengono usati sia `make clean` che` make mrproper`?


10

È scritto nel kernel Linux Makefileche

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

Ed è dichiarato sugli arch documenti che

Per finalizzare la preparazione, assicurarsi che l'albero del kernel sia assolutamente pulito;

$ make clean && make mrproper

Quindi, se make mrpropersi rimuove più accuratamente, perché viene make cleanutilizzato?

Risposte:


18

La pulizia viene eseguita su tre livelli, come descritto in un commento nel Makefile del kernel Linux :

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

Secondo il Makefile, il mrproperbersaglio dipende dal cleanbersaglio (vedi linea 1421 ). Inoltre, l' distcleanobiettivo dipende mrproper.

L'esecuzione make mrpropersarà quindi sufficiente in quanto rimuoverà anche le stesse cose di ciò che l' cleanobiettivo farebbe (e altro).

Il mrpropertarget è stato aggiunto nel 1993 (Linux 0.97.7) e dipende sempre dal cleantarget. Ciò significa che non è mai stato necessario utilizzare entrambi i target come in make clean && make mrproper.

Riferimento storico: https://archive.org/details/git-history-of-linux


@derobert wow, fantastico. Quindi make cleanè ridondante, giusto?
sitilge,

2
@sitilge sì, è ridondante, poiché make lo eseguirà comunque quando corri make mrproper.
derobert,

0

cleanè un prerequisito per mrpropertarget in Makefile , quindi l'esecuzione make cleanseparata è ridondante.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.