10a7ce71fSopenharmony_ci# 20a7ce71fSopenharmony_ci# Copyright (c) 2020-2021 Huawei Device Co., Ltd. 30a7ce71fSopenharmony_ci# 40a7ce71fSopenharmony_ci# This software is licensed under the terms of the GNU General Public 50a7ce71fSopenharmony_ci# License version 2, as published by the Free Software Foundation, and 60a7ce71fSopenharmony_ci# may be copied, distributed, and modified under those terms. 70a7ce71fSopenharmony_ci# 80a7ce71fSopenharmony_ci# This program is distributed in the hope that it will be useful, 90a7ce71fSopenharmony_ci# but WITHOUT ANY WARRANTY; without even the implied warranty of 100a7ce71fSopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 110a7ce71fSopenharmony_ci# GNU General Public License for more details. 120a7ce71fSopenharmony_ci# 130a7ce71fSopenharmony_ci# 140a7ce71fSopenharmony_ci 150a7ce71fSopenharmony_ciifeq ($(LOCAL_HCS_ROOT),) 160a7ce71fSopenharmony_ci LOCAL_HCS_ROOT := $(PRODUCT_PATH) 170a7ce71fSopenharmony_ciendif 180a7ce71fSopenharmony_ciCURRENT_DIR := $(abspath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))) 190a7ce71fSopenharmony_ciSOURCE_ROOT := $(abspath $(CURRENT_DIR)/../../../../../) 200a7ce71fSopenharmony_ci 210a7ce71fSopenharmony_ciHC_GEN_DIR := $(abspath $(SOURCE_ROOT)/drivers/hdf_core/framework/tools/hc-gen) 220a7ce71fSopenharmony_ciifneq ($(OUT_DIR),) 230a7ce71fSopenharmony_ciHC_GEN := $(OUT_DIR)/kernel/OBJ/${KERNEL_VERSION}/drivers/hdf/khdf/hc_gen_build/hc-gen 240a7ce71fSopenharmony_cielse 250a7ce71fSopenharmony_ciHC_GEN := $(HC_GEN_DIR)/build/hc-gen 260a7ce71fSopenharmony_ciendif 270a7ce71fSopenharmony_ciLOCAL_HCS_ROOT := $(CURRENT_DIR) 280a7ce71fSopenharmony_ci 290a7ce71fSopenharmony_ciHCS_DIR := $(LOCAL_HCS_ROOT) 300a7ce71fSopenharmony_ci 310a7ce71fSopenharmony_ciifneq ($(TARGET_BOARD_PLATFORM),) 320a7ce71fSopenharmony_ci HCS_DIR := $(LOCAL_HCS_ROOT)/$(TARGET_BOARD_PLATFORM) 330a7ce71fSopenharmony_cielse 340a7ce71fSopenharmony_ci ifneq ($(CONFIG_ARCH_HI3516DV300),) 350a7ce71fSopenharmony_ci HCS_DIR := $(LOCAL_HCS_ROOT) 360a7ce71fSopenharmony_ci endif 370a7ce71fSopenharmony_ci ifneq ($(CONFIG_ARCH_HI3518EV300),) 380a7ce71fSopenharmony_ci HCS_DIR := $(LOCAL_HCS_ROOT) 390a7ce71fSopenharmony_ci endif 400a7ce71fSopenharmony_ciendif 410a7ce71fSopenharmony_ci$(info HCS_DIR = $(HCS_DIR)) 420a7ce71fSopenharmony_ciHCB_FLAGS := -b -i -a 430a7ce71fSopenharmony_ci 440a7ce71fSopenharmony_ciHCS_OBJ := hdf_hcs_hex.o 450a7ce71fSopenharmony_ciHCS_OBJ_SRC := $(subst .o,.c,$(notdir $(HCS_OBJ))) 460a7ce71fSopenharmony_ci 470a7ce71fSopenharmony_ciCONFIG_GEN_HEX_SRC := $(addprefix $(LOCAL_HCS_ROOT)/, $(HCS_OBJ_SRC)) 480a7ce71fSopenharmony_ciCONFIG_HCS_SRC := $(subst _hcs_hex.o,.hcs,$(addprefix $(HCS_DIR)/, $(HCS_OBJ))) 490a7ce71fSopenharmony_ci 500a7ce71fSopenharmony_ci$(obj)/$(HCS_OBJ): $(CONFIG_GEN_HEX_SRC) 510a7ce71fSopenharmony_ci $(Q)$(CC) $(c_flags) -c -o $@ $< 520a7ce71fSopenharmony_ci $(Q)rm -f $< 530a7ce71fSopenharmony_ci 540a7ce71fSopenharmony_ci$(CONFIG_GEN_HEX_SRC): $(LOCAL_HCS_ROOT)/%_hcs_hex.c: $(HCS_DIR)/%.hcs | $(HC_GEN) 550a7ce71fSopenharmony_ci $(Q)echo gen hdf built-in config 560a7ce71fSopenharmony_ci $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi 570a7ce71fSopenharmony_ci $(Q)$(HC_GEN) $(HCB_FLAGS) -o $(subst _hex.c,,$(@)) $< 580a7ce71fSopenharmony_ci 590a7ce71fSopenharmony_ci$(CONFIG_GEN_SRCS): $(CONFIG_OUT_DIR)%.c: $(HCS_DIR)/%.hcs | $(HC_GEN) 600a7ce71fSopenharmony_ci $(Q)echo gen hdf driver config 610a7ce71fSopenharmony_ci $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi 620a7ce71fSopenharmony_ci $(Q)$(HC_GEN) -t -o $@ $< 630a7ce71fSopenharmony_ci 640a7ce71fSopenharmony_ci$(HC_GEN): 650a7ce71fSopenharmony_ci $(HIDE)make -C $(HC_GEN_DIR) BUILD_DIR=$(dir $@) 660a7ce71fSopenharmony_ci 670a7ce71fSopenharmony_ciobj-$(CONFIG_DRIVERS_HDF) += $(HCS_OBJ) 68