# The relative directory of each driver is configured in driver_obj.mk # $(KERNEL_SRC_DIR)/drivers/Makefile: # include $(DRV_DIR)/../scripts/driver_objects.mk DRIVER_SUBDIRS ?= drivers driver_obj_subdirs := $(addprefix $(srctree)/, $(DRIVER_SUBDIRS)) driver_obj_mk_files := $(sort $(patsubst ./%,%, \ $(shell find -L $(driver_obj_subdirs) -name driver_obj.mk -and -not -name ".*") )) include $(DRV_DIR)/../scripts/driver_init_level.mk # 1.获取 $(driver_link_level) 和 $(driver_obj_mk_files) 的公共驱动目录 driver_common_obj_files := $(filter $(addsuffix %, $(driver_obj_mk_files)), $(addsuffix /driver_obj.mk, $(driver_link_level))) # 2.获取 $(driver_obj_mk_files) 中其余驱动目录 driver_remaining_obj_files := $(filter-out $(addsuffix %, $(driver_common_obj_files)), $(driver_obj_mk_files)) driver_obj_mk_files := $(driver_common_obj_files) $(driver_remaining_obj_files) -include $(DRV_DIR)/../scripts/driver_filter_list.mk driver_obj_mk_files := $(filter-out $(driver_filter_list), $(driver_obj_mk_files)) $(foreach obj_mk,$(strip $(driver_obj_mk_files)),$(info including $(obj_mk) ...)$(eval include $(obj_mk)))