• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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