KERNEL_make_modules_install.doc

modules_install:_modinst_


_modinst_:

//删除之前文件,创建kernel目录

//其中MODLIB= targets/$(PROFILE)/modules/lib/modules/$(KERNELRELEASE)

@rm-rf $(MODLIB)/kernel

@rm-f $(MODLIB)/source

@mkdir-p $(MODLIB)/kernel

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


-----------------------------------------------------------------------------------------------------------------------


Makefile.modinst

//默认目标

__modinst:

includescripts/Kbuild.include

//从模块编译第一阶段中(就是执行KERNEL_make_modules)生成的endpointdd.mod

//文件中提取模块名,则 modules =endpointdd.ko

__modules:= $(sort $(shell grep -h '\.ko' /dev/null $(wildcard$(MODVERDIR)/*.mod)))

modules:= $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))

//依赖$(modules)

__modinst:$(modules)

@:

//安装命令

//1、建立安装目录

//2、复制ko文件到安装目录

//3、使用strip命令去除符号表

cmd_modules_install= mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@)

//当前modinst_dir= extra/,就是将endpointdd做为外部模块看待

modinst_dir= $(if $(filter ../% /%,$@),extra/,kernel/$(@D))

//这里就是最终要执行的动作

$(modules):

//MODLIB = targets/$(PROFILE)/modules/lib/modules/$(KERNELRELEASE)

//modinst_dir = extra/

//则这两个路径合在一起就是

// targets/$(PROFILE)/modules/lib/modules/$(KERNELRELEASE)/extra/

$(callcmd,modules_install,$(MODLIB)/$(modinst_dir))

你可能感兴趣的:(broadcom)