为什么同时使用“make clean”和“make mrproper”?

为什么同时使用“make clean”和“make mrproper”?

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

并且上面有说明拱形文档

为了完成准备工作,请确保内核树绝对干净;

$ make clean && make mrproper

那么如果make mrproper有更彻底的去除,为什么还要make clean使用呢?

答案1

清洁分三个级别进行,如评论中所述Linux 内核 Makefile:

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

答案2

cleanmrproper是目标的先决条件生成文件,因此make clean单独执行是多余的。

答案3

在该特定指令中(make clean && make mrproper)是的,这是毫无意义的(就像说删除所有正方形,然后删除所有正方形和所有三角形)...但make clean通常比make mrproper(因为你想要的最后一件事,绝大多数内核构建,就是垃圾你的.config)...所以也许有人以这种方式编写指令纯粹是为了提醒您差异(即提醒您第二部分将垃圾您的.config,所以现在备份它,如果您'我习惯了运行make clean然后能够像往常一样构建)。

相关内容