Je suis un débutant makeet je me demande quand l'utiliser make clean.
Un collègue m'a dit que les versions incrémentielles makesont basées sur les horodatages des fichiers. Donc, si vous extrayez une ancienne version d'un fichier dans votre VCS, il aura un "ancien" horodatage et il sera marqué comme "pas besoin de recompiler ce fichier". Ensuite, ce fichier ne serait pas inclus dans la prochaine génération.
Selon ce même collègue, ce serait une raison de l'utiliser make clean.
Quoi qu'il en soit, j'ai à peu près obtenu la réponse à la question "quand l'utiliser make clean" à partir d'autres questions StackExchange, mais mon autre question est alors:
Pourquoi les builds incrémentiels utilisant
makes'appuient-ils sur des horodatages de fichiers et non sur SHA-1 par exemple? Git, par exemple, montre que nous pouvons déterminer avec succès si un fichier a été modifié en utilisant le SHA-1.
Est-ce pour des problèmes de vitesse?
makevotre logiciel ne se cassera pas, mais makefait plutôt un effort pour avoir une compatibilité descendante dans les nouvelles versions. Changer le comportement de base sans raison valable est à peu près le contraire. Et les dates montrent pourquoi il n'a pas été initialement conçu pour utiliser SHA-1, ou pourquoi il n'a pas été facile de le moderniser lorsqu'il est devenu disponible (il makeavait déjà des décennies à l'époque).
makea été créé dans les années 70. SHA-1 a été créé dans les années 90. Git a été créé dans les années 00. La dernière chose que vous voulez, c'est que certaines versions obscures qui fonctionnaient depuis 30 ans échouent soudainement parce que quelqu'un a décidé de passer à la modernité avec un système éprouvé.