Pourquoi les deux «make clean» et «make mrproper» sont-ils utilisés?


10

Il est écrit dans le noyau Linux Makefileque

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

Et il est indiqué sur les documents d'archives que

Pour finaliser la préparation, assurez-vous que l'arbre du noyau est absolument propre;

$ make clean && make mrproper

Donc, si make mrproperun retrait plus approfondi, pourquoi est-il make cleanutilisé?

Réponses:


18

Le nettoyage se fait à trois niveaux, comme décrit dans un commentaire dans le Makefile du noyau 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

Selon le Makefile, la mrpropercible dépend de la cleancible (voir ligne 1421 ). De plus, la distcleancible dépend de mrproper.

L'exécution make mrpropersera donc suffisante car elle supprimerait également les mêmes choses que ce que la cleancible ferait (et plus).

La mrpropercible a été ajoutée en 1993 (Linux 0.97.7) et a toujours dépendu de la cleancible. Cela signifie qu'il n'a jamais été nécessaire d'utiliser les deux cibles comme dans make clean && make mrproper.

Référence historique: https://archive.org/details/git-history-of-linux


@derobert wow, super. make cleanEst donc redondant, non?
sitilge

2
@sitilge oui, c'est redondant, car make l'exécutera quand même lorsque vous exécutez make mrproper.
derobert

0

cleanest un prérequis pour la mrpropercible dans Makefile , donc exécuter make cleanséparément est redondant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.