#******************************************************************************* #The rule of make Linux kernel module #******************************************************************************* BUILD_DIR = $(TEMP_PATH)/$(subst $(SDK_PATH)/,,$(CURDIR)) BUILD_DIR_MAKEFILE := $(BUILD_DIR)/Makefile $(TARGET)-objs = $(SRCS:%.c=%.o) ifneq ($(KERNELRELEASE),) obj-m += $(TARGET).o endif EXTDRV_KO=$(REL_KO)/extdrv EXTRA_CFLAGS += $(EXTDRV_CFLAGS) #******************************************************************************* #The file need tobe clean, when make clean CLEAN_FILE := $(SRCS:%.c=%.o) CLEAN_FILE += $(SRCS:%.c=%.o.cmd) CLEAN_FILE += $(join $(dir $(SRCS)), $(patsubst %.c, .%.o.cmd, $(notdir $(SRCS)))) CLEAN_FILE += $(TARGET).mod.c \ $(TARGET).ko.cmd \ $(TARGET).ko \ $(TARGET).o \ $(TARGET).mod.o \ .$(TARGET).ko.cmd \ .$(TARGET).o.cmd \ .$(TARGET).mod.o.cmd #******************************************************************************* .PHONY: default clean default: @echo -e "\e[0;32;1m--Compiling '$(TARGET)'... Configs as follow:\e[0;36;1m" @echo ---- CROSS=$(CROSS) @echo ---- OT_ARCH=$(OT_ARCH), OT_CHIP=$(OT_CHIP), CVER=$(CVER), OT_FPGA=$(OT_FPGA) @echo ---- CPU_TYPE=$(CPU_TYPE) @echo ---- MPP_CFLAGS=$(MPP_CFLAGS) @echo ---- SDK_PATH=$(SDK_PATH) , PARAM_FILE=$(PARAM_FILE) @echo ---- KERNEL_ROOT=$(KERNEL_ROOT) @echo ---- ARCH_ROOT=$(ARCH_ROOT), ARCH_HAL=$(ARCH_HAL) @echo ---- $(EXTRA_CFLAGS) @@echo -e "\e[0m" @mkdir -p $(BUILD_DIR) @touch $(BUILD_DIR_MAKEFILE) @$(MAKE) -C $(KERNEL_ROOT) M=$(BUILD_DIR) src=$(CURDIR) O=$(KERNEL_ROOT) V=10 modules -j 24 @mkdir -p $(EXTDRV_KO) && cp -rf $(BUILD_DIR)/$(TARGET).ko $(EXTDRV_KO) clean: @rm -f $(EXTDRV_KO)/$(TARGET).ko @rm -rf $(addprefix $(BUILD_DIR)/,$(CLEAN_FILE) .tmp_versions Module.symvers modules.order)