1# Copyright (C) 2021–2022 Beijing OSWare Technology Co., Ltd 2# This file contains confidential and proprietary information of 3# OSWare Technology Co., Ltd 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17ccflags-$(CONFIG_DRIVERS_HDF_TEST) += -I$(srctree)/include/hdf \ 18 -I$(srctree)/include/hdf/osal \ 19 -I$(srctree)/include/hdf/utils \ 20 -I$(srctree)/drivers/hdf/inner_api/osal/shared \ 21 -I$(srctree)/drivers/hdf/inner_api/host/shared \ 22 -I$(srctree)/drivers/hdf/inner_api/utils \ 23 -I$(srctree)/drivers/hdf/inner_api/core \ 24 -I$(srctree)/drivers/hdf/khdf/osal/include \ 25 -I$(srctree)/drivers/hdf/framework/utils/include 26 27ifeq ($(LOCAL_HCS_ROOT),) 28 LOCAL_HCS_ROOT := $(PRODUCT_PATH) 29endif 30 31CURRENT_DIR := $(abspath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))) 32SOURCE_ROOT := $(abspath $(CURRENT_DIR)/../../../../../../) 33 34HC_GEN_DIR := $(abspath $(SOURCE_ROOT)/drivers/hdf_core/framework/tools/hc-gen) 35ifneq ($(OUT_DIR),) 36HC_GEN := $(OUT_DIR)/kernel/OBJ/${KERNEL_VERSION}/drivers/hdf/khdf/hc_gen_build/hc-gen 37else 38HC_GEN := $(HC_GEN_DIR)/build/hc-gen 39endif 40LOCAL_HCS_ROOT := $(CURRENT_DIR) 41 42HCS_DIR := $(LOCAL_HCS_ROOT) 43 44ifneq ($(TARGET_BOARD_PLATFORM),) 45 HCS_DIR := $(LOCAL_HCS_ROOT)/$(TARGET_BOARD_PLATFORM) 46else 47 ifneq ($(CONFIG_ARCH_HI3516DV300),) 48 HCS_DIR := $(LOCAL_HCS_ROOT) 49 endif 50 ifneq ($(CONFIG_ARCH_HI3518EV300),) 51 HCS_DIR := $(LOCAL_HCS_ROOT) 52 endif 53endif 54$(info HCS_DIR = $(HCS_DIR)) 55HCB_FLAGS := -b -i -a 56 57HCS_OBJ := hdf_hcs_hex.o 58HCS_OBJ_SRC := $(subst .o,.c,$(notdir $(HCS_OBJ))) 59 60CONFIG_GEN_HEX_SRC := $(addprefix $(LOCAL_HCS_ROOT)/, $(HCS_OBJ_SRC)) 61CONFIG_HCS_SRC := $(subst _hcs_hex.o,.hcs,$(addprefix $(HCS_DIR)/, $(HCS_OBJ))) 62 63HDF_FRAMWORK_TEST_ROOT = $(abspath $(SOURCE_ROOT)/drivers/framework/test/unittest/utils/hcs_parser/unittest) 64HCS_MACRO_OBJ := hcs_macro_cases.o 65HCS_MACRO_SRC := $(HDF_FRAMWORK_TEST_ROOT)/hcs_macro_cases.c 66HCS_DEP := $(HDF_FRAMWORK_TEST_ROOT)/hdf_macro_test.h 67HCS_MACRO_GEN_FILE := $(HDF_FRAMWORK_TEST_ROOT)/hdf_macro_test 68HCS_FILE := $(HCS_DIR)/hdf.hcs 69 70$(obj)/$(HCS_OBJ): $(CONFIG_GEN_HEX_SRC) 71 $(Q)$(CC) $(c_flags) -c -o $@ $< 72 $(Q)rm -f $< 73 74$(CONFIG_GEN_HEX_SRC): $(LOCAL_HCS_ROOT)/%_hcs_hex.c: $(HCS_DIR)/%.hcs | $(HC_GEN) 75 $(Q)echo gen hdf built-in config 76 $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi 77 $(Q)$(HC_GEN) $(HCB_FLAGS) -o $(subst _hex.c,,$(@)) $< 78 79$(CONFIG_GEN_SRCS): $(CONFIG_OUT_DIR)%.c: $(HCS_DIR)/%.hcs | $(HC_GEN) 80 $(Q)echo gen hdf driver config 81 $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi 82 $(Q)$(HC_GEN) -t -o $@ $< 83 84$(HC_GEN): 85 $(HIDE)make -C $(HC_GEN_DIR) BUILD_DIR=$(dir $@) 86 87$(obj)/$(HCS_MACRO_OBJ): $(HCS_MACRO_SRC) $(HCS_DEP) 88 $(Q)$(CC) $(c_flags) -c -o $@ $< 89 90$(HCS_DEP): $(HC_GEN) 91 $(Q)echo gen hdf built-in config macro 92 $(Q)$(HC_GEN) -m -o $(HCS_MACRO_GEN_FILE) $(HCS_FILE) 93 94obj-$(CONFIG_DRIVERS_HDF) += $(HCS_OBJ) \ 95 $(HCS_MACRO_OBJ) 96