11bd4fe43Sopenharmony_ci# Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED.
21bd4fe43Sopenharmony_ci#
31bd4fe43Sopenharmony_ci# This program is free software; you can redistribute it and/or
41bd4fe43Sopenharmony_ci# modify it under the terms of the GNU General Public License
51bd4fe43Sopenharmony_ci# as published by the Free Software Foundation; either version 2
61bd4fe43Sopenharmony_ci# of the License, or (at your option) any later version.
71bd4fe43Sopenharmony_ci#
81bd4fe43Sopenharmony_ci# This program is distributed in the hope that it will be useful,
91bd4fe43Sopenharmony_ci# but WITHOUT ANY WARRANTY; without even the implied warranty of
101bd4fe43Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
111bd4fe43Sopenharmony_ci# GNU General Public License for more details.
121bd4fe43Sopenharmony_ci#
131bd4fe43Sopenharmony_ci# You should have received a copy of the GNU General Public License
141bd4fe43Sopenharmony_ci# along with this program; if not, write to the Free Software
151bd4fe43Sopenharmony_ci# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
161bd4fe43Sopenharmony_ci
171bd4fe43Sopenharmony_ci#*******************************************************************************
181bd4fe43Sopenharmony_ci#The rule of make Linux kernel module
191bd4fe43Sopenharmony_ci#*******************************************************************************
201bd4fe43Sopenharmony_ci
211bd4fe43Sopenharmony_ci$(TARGET)-objs = $(SRCS:%.c=%.o)
221bd4fe43Sopenharmony_ci$(MOD_NAME)-objs = $(SRCS_O:%.c=%.o)
231bd4fe43Sopenharmony_ci
241bd4fe43Sopenharmony_ciifneq ($(KERNELRELEASE),)
251bd4fe43Sopenharmony_ci    obj-m += $(TARGET).o
261bd4fe43Sopenharmony_ci    obj-m += $(MOD_NAME).o
271bd4fe43Sopenharmony_ciendif
281bd4fe43Sopenharmony_ci
291bd4fe43Sopenharmony_ciEXTRA_CFLAGS += $(MKP_CFLAGS)
301bd4fe43Sopenharmony_ciKBUILD_EXTRA_SYMBOLS += $(HI_KBUILD_EXTRA_SYMBOLS)
311bd4fe43Sopenharmony_ci
321bd4fe43Sopenharmony_ci#*******************************************************************************
331bd4fe43Sopenharmony_ci#The file need tobe clean, when make clean
341bd4fe43Sopenharmony_ciCLEAN_FILE := $(SRCS:%.c=%.o)
351bd4fe43Sopenharmony_ciCLEAN_FILE += $(SRCS:%.c=%.o.cmd)
361bd4fe43Sopenharmony_ciCLEAN_FILE += $(join $(dir $(SRCS)), $(patsubst %.c, .%.o.cmd, $(notdir $(SRCS))))
371bd4fe43Sopenharmony_ciCLEAN_FILE += $(TARGET).mod.c \
381bd4fe43Sopenharmony_ci                         $(TARGET).ko.cmd \
391bd4fe43Sopenharmony_ci                         $(TARGET).ko \
401bd4fe43Sopenharmony_ci                         $(TARGET).o \
411bd4fe43Sopenharmony_ci                         $(TARGET).mod.o \
421bd4fe43Sopenharmony_ci                         .$(TARGET).ko.cmd \
431bd4fe43Sopenharmony_ci                         .$(TARGET).o.cmd \
441bd4fe43Sopenharmony_ci                         .$(TARGET).mod.o.cmd
451bd4fe43Sopenharmony_ciCLEAN_FILE += $(MOD_NAME).mod.c \
461bd4fe43Sopenharmony_ci                         *.ko   \
471bd4fe43Sopenharmony_ci                         *.o \
481bd4fe43Sopenharmony_ci                         *.mod   \
491bd4fe43Sopenharmony_ci                         .*.cmd   \
501bd4fe43Sopenharmony_ciCLEAN_FILE += ./*/*.o ./*/.*.cmd
511bd4fe43Sopenharmony_ci
521bd4fe43Sopenharmony_ci#*******************************************************************************
531bd4fe43Sopenharmony_ci.PHONY: default clean
541bd4fe43Sopenharmony_cidefault:
551bd4fe43Sopenharmony_ci	@echo -e "\e[0;32;1m--Compiling '$(TARGET)'... Configs as follow:\e[0;36;1m"
561bd4fe43Sopenharmony_ci	@echo "---- USER_CROSS=$(CROSS)      KERNEL_CROSS=$(CROSS_COMPILE)"
571bd4fe43Sopenharmony_ci	@echo ---- HIARCH=$(HIARCH), ARCH=$(ARCH), HICHIP=$(HICHIP), CVER=$(CVER), DBG=$(HIDBG), HI_FPGA=$(HI_FPGA)
581bd4fe43Sopenharmony_ci	@echo ---- CPU_TYPE=$(CPU_TYPE)
591bd4fe43Sopenharmony_ci	@echo ---- MPP_CFLAGS=$(MPP_CFLAGS)
601bd4fe43Sopenharmony_ci	@echo ---- MKP_CFLAGS=$(MKP_CFLAGS)
611bd4fe43Sopenharmony_ci	@echo ---- SDK_PATH=$(SDK_PATH) , PARAM_FILE=$(PARAM_FILE)
621bd4fe43Sopenharmony_ci	@echo ---- KERNEL_ROOT=$(KERNEL_ROOT)
631bd4fe43Sopenharmony_ci	@echo ---- ARCH_ROOT=$(ARCH_ROOT), ARCH_HAL=$(ARCH_HAL)
641bd4fe43Sopenharmony_ci	@echo ---- HIGDB=$(HIGDB)
651bd4fe43Sopenharmony_ci	@echo ---- COMPILER_TRIPLE=$(COMPILER_TRIPLE)
661bd4fe43Sopenharmony_ci	@@echo -e "\e[0m"
671bd4fe43Sopenharmony_ci	#@$(MAKE) -C $(KERNEL_ROOT) M=$(PWD) $(COMPILER_TRIPLE) V=10 modules -j 24
681bd4fe43Sopenharmony_ci	@$(MAKE) -C $(KERNEL_ROOT) M=$(PWD) $(COMPILER_TRIPLE) $(COMPILER_TRIPLE) V=10 modules -j 24
691bd4fe43Sopenharmony_ciifeq ($(HIGDB), n)
701bd4fe43Sopenharmony_ciifeq ($(OHOS_LITE), y)
711bd4fe43Sopenharmony_ci	@$(CROSS_COMPILE)strip --strip-unneeded $(TARGET).ko
721bd4fe43Sopenharmony_ci	@$(CROSS_COMPILE)strip --strip-unneeded $(MOD_NAME).o
731bd4fe43Sopenharmony_cielse
741bd4fe43Sopenharmony_ci	@$(CROSS_PATH)/$(CROSS_COMPILE)strip --strip-unneeded $(TARGET).ko
751bd4fe43Sopenharmony_ci	@$(CROSS_PATH)/$(CROSS_COMPILE)strip --strip-unneeded $(MOD_NAME).o
761bd4fe43Sopenharmony_ciendif
771bd4fe43Sopenharmony_ciendif
781bd4fe43Sopenharmony_ci	@mkdir -p $(REL_KO)  && cp -rf $(TARGET).ko $(REL_KO) && chmod 777 $(REL_KO)/load*
791bd4fe43Sopenharmony_ci#	@mkdir -p $(REL_INC) && $(call maco_cp_file,$(INC_FILE),$(REL_INC))
801bd4fe43Sopenharmony_ciifeq ($(CONFIG_DRIVER_SPACE_TYPE),kernel_space)
811bd4fe43Sopenharmony_ci	@mkdir -p $(REL_OBJ) && cp -rf $(MOD_NAME).o $(REL_OBJ)
821bd4fe43Sopenharmony_ci	@mkdir -p $(REL_INI) && cp -rf $(INIT_FILE) $(REL_INI)
831bd4fe43Sopenharmony_ciendif
841bd4fe43Sopenharmony_ci
851bd4fe43Sopenharmony_ciclean:
861bd4fe43Sopenharmony_ci	@rm -f $(CLEAN_FILE)
871bd4fe43Sopenharmony_ci	@rm -f $(REL_KO)/$(TARGET).ko
881bd4fe43Sopenharmony_ciifeq ($(CONFIG_DRIVER_SPACE_TYPE),kernel_space)
891bd4fe43Sopenharmony_ci	@rm -f $(REL_OBJ)/$(MOD_NAME).o
901bd4fe43Sopenharmony_ci	@rm -f $(REL_INI)/$(shell basename $(INIT_FILE))
911bd4fe43Sopenharmony_ciendif
921bd4fe43Sopenharmony_ci	@rm .tmp_versions  -rf
931bd4fe43Sopenharmony_ci	@rm Module.symvers -f
941bd4fe43Sopenharmony_ci	@rm modules.order  -f
95