Makefile.doc

一、模块编译

modbuild:touch_voice_files

//进行内核源码目录,并执行modules目标编译,后面执行modules_install模块安装

//编译

cd$(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install


二、模块预处理

touch_voice_files:

//删除endpt目录下临时文件(.a.lib.ko.cmd.mod

findbcmdrivers/broadcom/char/endpoint/ \( -name '*.o' -o -name '*.a' -o-name '*.lib' -o

-name'*.ko' -o -name '*.cmd' -o -name '.*.cmd' -o -name '*.c' -o -name'*.mod' \) -print

-execrm -f "{}" ";"

//删除第一阶段endpt模块的临时文件

rm-rf kernel/linux/.tmp_versions/endpointdd.mod

//删除脚本开始生成的内核默认配置

rm-rf kernel/linux/arch/mips/defconfig

//删除中间过程中endpt所有配置对应的头文件项

rm-rf kernel/linux/include/config/bcm/endpoint/

//删除所有临时文件.o.lib

findkernel/linux/lib/ -name '*.o' -print -exec rm -f "{}" ";"

findkernel/linux/lib/ -name '*.lib' -print -exec rm -f "{}" ";"


三、

//模块编译(因为我们没有使用M=编译宏进行单独指定模块编译,所有KBUILD_EXTMOD

//为空,走为空的编译流程)。

modules:$(vmlinux-dirs-2) $(if $(KBUILD_BUILTIN),vmlinux)

//在如下目录中查找含有modules.order文件的目录,并将所有modules.order文件

//统一合并到内核目录下的单个modules.order文件中

$(Q)$(AWK)'!x[$$0]++' $(vmlinux-dirs:%=%/modules.order) >$(objtree)/modules.order

//输出要进行第二阶段模块编译的打印

@$(kecho)' Building modules, stage 2.';

//调用Makefile.modpost进行第二阶段模块编译

$(Q)$(MAKE)-f $(srctree)/scripts/Makefile.modpos


//主要是特定驱动所需要的二进制固件进行安装,当前ENDPT没有涉及,不关心

$(Q)$(MAKE)-f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild


//这时从下面所有变量中获取仅含有目录(就是最后面是\的字符)的变量,并将最后的\

//字符去除,比如BCM驱动变量的字符串为/xxx/bcm6818/bcmdrivers/,则最终字符变换后

//字符串为/xxx/bcm6818/bcmdrivers

vmlinux-dirs :=$(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \

$(core-y) $(core-m) $(drivers-y) $(drivers-m) \

$(brcmdrivers-y) $(brcmdrivers-m) \

$(net-y) $(net-m) $(libs-y) $(libs-m)))


//BCM驱动相关目录,这里我们只关心BRCMDRIVERS_DIR

brcmdrivers-y :=$(INC_BRCMBOARDPARMS_PATH)/$(BRCM_BOARD)/ $(BRCMDRIVERS_DIR)/$(INC_SPI_PATH)/ $(INC_FLASH_PATH)/


//BCM编译环境下的bcmdrivers目录

BRCMDRIVERS_DIR= $(BUILD_DIR)/bcmdrivers


//BUILD_DIR变量在BCM编译环境的主Makefile里定义的

BUILD_DIR= $(shell pwd)


//Linux内核源码目录

objtree :=$(CURDIR)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值