`
songkang666
  • 浏览: 103576 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

make mrproper与make clean

 
阅读更多
编译内核时,我常用到make clean,把之前编译产生的.o文件清除,进行一些配置修改后,再重新编译。

在编译内核模块时,会用到make mrproper,目的是把下载的内核还原到初始状态(清除掉.o文件,清除掉一些在make之后生成的备份文件,甚至还清除了.config配置文件)。

在make mrproper时,会首先调用make clean。

至于要清除些什么东西,要查看内核源文件中的Makefile,仅仅一个Makefile就有1500行,不得不感慨它的强大。

Makefile里这么描述mrproper的:
“Delete all generated files, including .config”
对应的规则为:
mrproper: rm-dirs  := $(wildcard $(MRPROPER_DIRS))
mrproper: rm-files := $(wildcard $(MRPROPER_FILES))
mrproper-dirs      := $(addprefix _mrproper_,Documentation/DocBook scripts)

PHONY += $(mrproper-dirs) mrproper archmrproper
$(mrproper-dirs):
	$(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)

mrproper: clean archmrproper $(mrproper-dirs)
	$(call cmd,rmdirs)
	$(call cmd,rmfiles)

虽然前面几条,看不懂,但最后一条:
mrproper: clean archmrproper $(mrproper-dirs)
明确的说明了在执行make mrproper之前会先make clean、make archmrproper及make $(mrproper-dirs)。

还有扩展一下:
make distclean
Makefile里有这么几行:
distclean: mrproper
	@find $(srctree) $(RCS_FIND_IGNORE) \
		\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
		-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
		-o -name '.*.rej' -o -size 0 \
		-o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
		-type f -print | xargs rm -f

说明,在执行make distclean时,会先make mrproper。


至于make clean、make mrproper及make distclean的作用是什么,查到再添加。


more:
1、make clean、make mrproer 以及make distclean的区别
2、make mrproper及mrproper的含义
3、Linux内核——make mrproper与make clean的区别

4、Build Your Own Kernel Modules
分享到:
评论

相关推荐

    royss_shinkumara_kernel:完整源代码(豪华版)Jellybean 4.1.2

    第一个补丁使用: patch -p1 < 使用 interdiff 打补丁: interdiff -z <your> <your> | patch -p1 构建命令: echo make_kernel.sh gedit make_kernel.sh - 写入该文件 ... make mrproper

    KVM安装文档 指南

    server01> make mrproper server01> cp ../linux-2.6.18-xxx/.config .config #此处为了防止遗漏某些模块的添加,将原来的内核配置文件拷贝过来,然后再添加新模块 server01> make menuconfig #此处将kvm相关选项...

    mrproper:Ruby中基于属性的测试

    但是它已经很长时间没有更新了,它的功能不是很丰富,并且与其他测试库没有很好的集成。 如今,在Ruby中进行基于属性的测试的最佳选择显然是非常。 我鼓励你看看! 现在,出于考古目的,这是原始的自述文件和代码:...

    HUAWEI_P9PLUS_VIENNA_OREO_EMUI8.0_STOCK_KERNEL_4.4.23_UPGRADED

    华为P9 Plus(VIENNA)Android OREO EMUI ...make ARCH=arm64 distclean rm ../out -Rf && make clean && make mrproper && mkdir ../out make ARCH=arm64 O=../out merge_hi3650_defconfig make ARCH=arm64 O=../out x

    编译Linux2.6内核并添加一个系统调用.pdf

    4. make mrproper,该命令确保目录下没有相关的文件和编译设置。如果已经编译过Linux内核,最好使用本命令 5. make menuconfig,自己配置编译选项,建议保留默认值,或者在当前linux-2.6.15.1目录下使用 cp /usr/src...

    Linux驱动程序兼容性及解决方案.pdf

    配置内核需要以root身份进入内核源码的目录,执行make mrproper、make menuconfig、make prepare、make modules_prepare等命令来配置内核。 此外,Linux驱动程序的解决方案还需要考虑到 驱动程序的兼容性问题,例如...

    redhat6.6离线升级内核依赖包+kernel-4.9.86-30.el6.x86-64.rpm

    make mrproper #清除编译安装的数据 make dep #清除依赖 tar xvf kernel-rely.tar.tz && cd kernel-rely 需要安装依赖的yum localinstall *.rpm 如果已经有依赖,单独安装内核的rpm -ivh kernel-4.9.86-30.el6.x86_...

    Linux的内核修改与内核重新编译.pdf

    2. 恢复内核配置文件:我们可以通过复制系统当前的内核配置文件,以恢复 make mrproper 命令删除的文件 “.config”。 3. 建立自定义的配置:我们可以根据上述文件副本建立自定义的配置,使得内核重新编译时使用...

    android_kernel_lenovo_p70

    Lenovo P70-A牛轧糖内核。 基于Zormax来源。 如何建造 cd ~/p70 make ARCH=arm64 P70_defconfig make ARCH=arm64 CROSS_COMPILE=/home/YourSelf/p70/aarch64-linux-android-4.9/bin/...make clean && make mrproper

    鳥哥的 Linux 私房菜 -- Linux 核心編譯

     2.2 保持乾淨原始碼: make mrproper  2.3 開始挑選核心功能: make XXconfig  2.4 核心功能細項選擇  a. 一般設定(General setup):附加版本名稱、IPC 通訊、程序相關等  b. 核心模組與 block layer 支援  c...

    Linux 内核升级到2.6.18成功笔录

    2. 清除源代码目录下的.o 文件:make mrproper 3. 配置内核选项:make menuconfig 在 menuconfig 中,我们需要注意以下几点: * Loadable Module support 选项中,一定要选上 “Module unloading” 和 “Automatic...

    编译Linux操作系统内核的步骤

    在编译内核时,需要注意make命令的使用,例如,需要使用make mrproper命令来清一下包,使用make menuconfig或make xconfig命令来配置内核。 编译Linux操作系统内核的步骤是一个复杂的过程,但在Debian强大的dpkg...

    heirloom-doctools:传家宝文档工具

    该软件内置./configuremake 并安装了make install 要删除构建工件和其他生成的文件,请运行make mrproper 可以在报告错误。 在创建补丁或请求请求之前,请稍候,因为其他人可能已经在解决此问题或已找到解决方案。 ...

    Ubuntu18.04+Qemu调试Linux内核实验记录

    Ubuntu18.04+Qemu调试Linux内核实验记录 实验环境 操作系统:Ubuntu18.04 依赖项安装: ...make mrproper //清除编译过程中产生的所有中间文件 make clean //清除上一次产生的编译中间文件 make menu

    Ubuntu18.04上编译和切换Linux内核版本

    Ubuntu18.04编译和切换Linux内核版本 编译内核 内核版本 linux-5.2.5.tar.xz 安装依赖项 sudo apt-get install build-essential sudo apt-get install libncurses5-dev ...3.make clean //清除上一

    Rockchip-GPL-Kernel:通用Rockchip GPL Linux内核

    运行“ make mrproper”以确保您没有陈旧的.o文件和依赖项 运行“ ./build_omegamoon_mk908”以使用预构建工具链为MK908编译内核 使用Linux的MK908设备的Flash说明(使用风险自负!): 将USB电缆的一端连接到PC ...

    linux内核移植步骤

    clean – 清大部分生成的文件, 但是保留配置文件, 以及可以保证足够编译模块的信息。 mrproper – 清所有的生成文件, 以及配置文件, 以及各种备份文件 distclean – mrproper 效果 + gedit 备份文件+补丁文件, ...

    UTBM-Kanban:看板法工厂模拟

    UTBM-看板 看板方法工厂模拟。 检查项目根目录中是否存在“obj”目录。 如果没有,请创建它。 使用命令编译项目的调试版本: make ... 您可以使用以下命令清理项目: make clean 或者:使mrproper

    ELDK使用与开发手册

    然后,我们会阐述通过串口与你的目标板连接:你需要配置一个终端控制程序,如cu或者kermit。 你常常需要通过网线把映像文件下载到你的目标板上。为了实现这个目的,你需要TFTP和DHCP/BOOTP服务器。文档中提供了简要...

Global site tag (gtag.js) - Google Analytics