1target_ko_name:=${TARGETKONAME}
2obj-m:=  ${target_ko_name}.o
3
4obj_list := $(subst &, ,$(OBJLIST))
5$(info obj_list = $(obj_list))
6
7${target_ko_name}-y:=$(obj_list)
8$(info target_ko_name-y = ${target_ko_name}-y)
9
10OHOS_BUILD_HOME:=${PROJECTDIR}
11
12ifeq ($(DEVICENAME), rk3568)
13KDIR:=${OHOS_BUILD_HOME}/out/kernel/OBJ/linux-6.6
14else
15KDIR:=${OHOS_BUILD_HOME}/out/KERNEL_OBJ/kernel/OBJ/linux-6.6
16endif
17
18CLANG_HOST_TOOLCHAIN := $(OHOS_BUILD_HOME)/prebuilts/clang/ohos/linux-x86_64/llvm/bin
19CLANG_CC := $(CLANG_HOST_TOOLCHAIN)/clang
20
21PAHOLE_TOOLCHAIN := $(OHOS_BUILD_HOME)/prebuilts/develop_tools/pahole/bin
22
23KERNEL_ARCH=${DEVICEARCH}
24
25KERNEL_CROSS_COMPILE:=
26KERNEL_CROSS_COMPILE += CC="$(CLANG_CC)"
27
28KERNEL_PREBUILT_MAKE := make LLVM=1 LLVM_IAS=1 CROSS_COMPILE=aarch64-linux-gnu-
29KERNEL_MAKE := \
30    PATH="$(CLANG_HOST_TOOLCHAIN):$(PAHOLE_TOOLCHAIN):$$PATH" \
31    $(KERNEL_PREBUILT_MAKE)
32
33PWD:=$(shell pwd)
34
35default:
36	export KBUILD_MODPOST_WARN=1 && $(KERNEL_MAKE) -C $(KDIR) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) M=$(PWD) modules
37
38clean:
39	rm -rf .*.cmd *.o *.mod.c *.ko *.tmp_version *.order *symvers *Module.markers .*.o.d *.mod .thinlto-cache
40