modules.order 这个文件记录了kernel build ko的顺序,那这个文件是怎么产生的呢?
modorder-target := $(obj)/modules.order
modorder-target 就代表modules.order 这个文件
$(modorder-target): $(subdir-ym) FORCE
$(Q)(cat /dev/null; $(modorder-cmds)) > $@
modorder-target 是通过modorder-cmds 命令产生的.
modorder-cmds = \
$(foreach m, $(modorder), \
$(if $(filter %/modules.order, $m), \
cat $m;, echo kernel/$m;))
modorder-cmds 主要是遍历modorder,将modorder 中的modules.order写到kernel 目录下modules.order中
modorder := $(patsubst %/,%/modules.order, $(filter %/, $(obj-y)) $(obj-m:.o=.ko))
modorder-target := $(obj)/modules.order
modorder-target 就代表modules.order 这个文件
$(modorder-target): $(subdir-ym) FORCE
$(Q)(cat /dev/null; $(modorder-cmds)) > $@
modorder-target 是通过modorder-cmds 命令产生的.
modorder-cmds = \
$(foreach m, $(modorder), \
$(if $(filter %/modules.order, $m), \
cat $m;, echo kernel/$m;))
modorder-cmds 主要是遍历modorder,将modorder 中的modules.order写到kernel 目录下modules.order中
modorder := $(patsubst %/,%/modules.order, $(filter %/, $(obj-y)) $(obj-m:.o=.ko))