1# Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED. 2# 3# This program is free software; you can redistribute it and/or 4# modify it under the terms of the GNU General Public License 5# as published by the Free Software Foundation; either version 2 6# of the License, or (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program; if not, write to the Free Software 15# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 17# use C01 to indicate uclibc, C02 to indicate glibc, C05 to indicate LiteOS. 18ifeq ($(FPGA),n) 19 ifeq ($(LIBC),glibc) 20 export CVER?=.C02 21 else 22 export CVER?=.C01 23 endif 24else 25 ifeq ($(LIBC),glibc) 26 export CVER?=.C12 27 else 28 export CVER?=.C11 29 endif 30 31endif 32 33ifeq ($(HIARCH), $(filter $(HIARCH),hi3519av100 hi3516cv500)) 34 ifeq ($(ARM_ARCH), smp) 35 POSTFIX:= 36 else 37 POSTFIX:= 38 endif 39endif 40 41ifeq ($(HIARCH), $(filter $(HI_SUBARCH),hi3519av100)) 42 ifeq ($(ARM_ARCH), amp) 43 export CVER=.C$(DBG_FLAG)8 44 endif 45endif 46 47 48ifeq ($(HIARCH), hi3516cv500) 49 ifneq ($(CONFIG_CUSTOMER_VERSION), COMMON) 50 export CVER=.C$(DBG_FLAG)4 51 endif 52endif 53 54############################################################################## 55# Allocated the kernel position 56ifeq ($(KERNEL_VERSION), ) 57KERNEL_VERSION=linux-5.10 58endif 59 60ifeq ($(MPP_BUILD), y) 61 ifeq ($(HIARCH),$(filter $(HIARCH), hi3559av100)) 62 export KERNEL_ROOT?=$(HIWORK_PATH)/osdrv$(HI_SUBARCH)$(CVER)/open_source/linux/$(KERNEL_NAME) 63 else ifeq ($(HIARCH),$(filter $(HIARCH), hi3519av100 hi3516cv500)) 64 export KERNEL_ROOT?=$(HIWORK_PATH)/osdrv$(HI_SUBARCH)$(CVER)/open_source/linux/$(KERNEL_NAME)$(POSTFIX) 65 else ifeq ($(HIARCH),$(filter $(HIARCH), hi3516ev200)) 66 export KERNEL_ROOT?=$(HIWORK_PATH)/osdrv$(HIARCH)$(CVER)/open_source/linux/$(KERNEL_NAME)$(POSTFIX) 67 else 68 export KERNEL_ROOT?=$(HIWORK_PATH)/osdrv$(HIARCH)$(CVER)/open_source/linux/$(KERNEL_NAME)$(POSTFIX) 69 endif 70else 71 ifeq ($(HIARCH),$(filter $(HIARCH), hi3559av100es hi3559av100)) 72 export KERNEL_ROOT?=$(SDK_PATH)/open_source/linux/$(KERNEL_NAME) 73 else ifeq ($(HIARCH),$(filter $(HIARCH), hi3516ev200)) 74 export KERNEL_ROOT?=$(SDK_PATH)/open_source/linux/$(KERNEL_NAME)$(POSTFIX) 75 else 76 ifeq ($(OHOS_LITE), y) 77 export KERNEL_ROOT?=$(OHOS_ROOT_PATH)/out/hispark_taurus/ipcamera_hispark_taurus_linux/kernel/$(KERNEL_VERSION) 78 export KBUILD_OUTPUT=$(OHOS_ROOT_PATH)/out/hispark_taurus/ipcamera_hispark_taurus_linux/kernel/OBJ/$(KERNEL_VERSION) 79 else 80 export KERNEL_ROOT?=$(OHOS_ROOT_PATH)/out/KERNEL_OBJ/kernel/src_tmp/$(KERNEL_VERSION) 81 export KBUILD_OUTPUT=$(OHOS_ROOT_PATH)/out/KERNEL_OBJ/kernel/OBJ/$(KERNEL_VERSION) 82 endif 83 endif 84endif 85 86############################################################################## 87 88# Define cross compiler 89ifeq ($(CONFIG_USER_LLVM), y) 90ifeq ($(OHOS_LITE), y) 91 export SYSROOT_PATH := $(OHOS_ROOT_PATH)/sysroot 92 # export COMPILER_PATH := $(OHOS_ROOT_PATH)/prebuilts/clang/ohos/linux-x86_64/clang-10.0.1/bin 93 export COMPILER_PATH := $(COMPILER_PATH_DIR) 94 export CC := $(COMPILER_PATH)/clang 95 export AR := ar 96else 97 export COMPILER_PATH := $(COMPILER_PATH_DIR) 98 export CROSS_PATH := $(OHOS_ROOT_PATH)/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin 99 export CC := $(COMPILER_PATH)/clang 100 export AR := $(CROSS_PATH)/$(CROSS)ar 101endif 102else 103 export CC := $(CROSS)gcc 104 export AR := $(CROSS)ar 105endif 106 107export REL_INC := $(REL_DIR)/include 108export REL_LIB := $(REL_DIR)/lib 109export REL_KO := $(REL_DIR)/../../out/ko 110export REL_OBJ := $(REL_DIR)/obj 111export REL_INI := $(REL_DIR)/init 112export ADAPT_INC := $(REL_DIR)/include/adapt 113 114LIBS_LD_CFLAGS += -ldl 115MPP_CFLAGS += -Wno-date-time 116DRV_CFLAGS += -Wno-date-time 117 118ifeq ($(LIBC), uclibc) 119 MPP_CFLAGS += -D_GNU_SOURCE 120endif 121ifeq ($(MPP_BUILD), y) 122 DRV_CFLAGS += -Werror 123 MPP_CFLAGS += -Werror 124 LIBS_CFLAGS += -Werror 125endif 126 127ifeq ($(CONFIG_USER_LLVM), y) 128ifeq ($(OHOS_LITE), y) 129 COMPILER_TRIPLE += "CROSS_COMPILE=arm-linux-gnueabi-" 130else 131 COMPILER_TRIPLE += "CROSS_COMPILE=$(CROSS_PATH)/$(CONFIG_HI_CROSS)" 132 COMPILER_TRIPLE += "HOSTCC=$(COMPILER_PATH)/clang" 133endif 134 COMPILER_TRIPLE += "CC=$(COMPILER_PATH)/clang" 135 export COMPILER_TRIPLE 136endif 137 138export HI_KBUILD_EXTRA_SYMBOLS 139HI_KBUILD_EXTRA_SYMBOLS += "$(OSAL_ROOT)/$(OSTYPE)/kernel/Module.symvers" 140HI_KBUILD_EXTRA_SYMBOLS += "$(MPP_PATH)/cbb/base/Module.symvers" 141HI_KBUILD_EXTRA_SYMBOLS += "$(MPP_PATH)/cbb/sys/Module.symvers" 142#HI_KBUILD_EXTRA_SYMBOLS += "$(MPP_PATH)/component/securec/src/Module.symvers" 143