11bd4fe43Sopenharmony_ci# Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED.
21bd4fe43Sopenharmony_ci#
31bd4fe43Sopenharmony_ci# This program is free software; you can redistribute it and/or
41bd4fe43Sopenharmony_ci# modify it under the terms of the GNU General Public License
51bd4fe43Sopenharmony_ci# as published by the Free Software Foundation; either version 2
61bd4fe43Sopenharmony_ci# of the License, or (at your option) any later version.
71bd4fe43Sopenharmony_ci#
81bd4fe43Sopenharmony_ci# This program is distributed in the hope that it will be useful,
91bd4fe43Sopenharmony_ci# but WITHOUT ANY WARRANTY; without even the implied warranty of
101bd4fe43Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
111bd4fe43Sopenharmony_ci# GNU General Public License for more details.
121bd4fe43Sopenharmony_ci#
131bd4fe43Sopenharmony_ci# You should have received a copy of the GNU General Public License
141bd4fe43Sopenharmony_ci# along with this program; if not, write to the Free Software
151bd4fe43Sopenharmony_ci# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
161bd4fe43Sopenharmony_ci
171bd4fe43Sopenharmony_ci# cbb global variables definition
181bd4fe43Sopenharmony_ciinclude Makefile.param
191bd4fe43Sopenharmony_ci
201bd4fe43Sopenharmony_ci.PHONY:clean all base sys vi mcf vo vo_dev vpss avs chnl region vgs gdc venc vedu vdec vfmw jpegd dis isp audio audio_bin
211bd4fe43Sopenharmony_ci
221bd4fe43Sopenharmony_citarget = base sys
231bd4fe43Sopenharmony_ci
241bd4fe43Sopenharmony_ci# cbb common include file
251bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/dis/gmedis/include/hi_comm_dis.h
261bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/region/include/hi_comm_region.h
271bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(VGS_ROOT)/include/hi_comm_vgs.h
281bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/sys/include/hi_comm_sys.h
291bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(VENC_ROOT)/include/h7/hi_comm_venc.h
301bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(VENC_ROOT)/include/h7/hi_comm_rc.h
311bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/vpss/include/hi_comm_vpss.h
321bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/include/hi_common.h
331bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/include/hi_comm_video.h
341bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/base/include/hi_comm_vb.h
351bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/vi/include/hi_comm_vi.h
361bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/vi/include/hi_comm_snap.h
371bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/vo/include/hi_comm_vo.h
381bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/vo/vo_dev/include/hi_comm_vo_dev.h
391bd4fe43Sopenharmony_ciHI_COMM_INC_FILE += $(CBB_ROOT)/gdc/include/hi_comm_gdc.h
401bd4fe43Sopenharmony_ci
411bd4fe43Sopenharmony_ciifeq ($(CONFIG_HI_VO_SUPPORT), y)
421bd4fe43Sopenharmony_ci    target += vo_dev
431bd4fe43Sopenharmony_ci    MPI_SRC_DIR += $(CBB_ROOT)/vo/vo_dev/mpi
441bd4fe43Sopenharmony_ci    MPI_CFLAGS += -I$(CBB_ROOT)/vo/vo_dev/mpi/adapt
451bd4fe43Sopenharmony_ci    MPI_CFLAGS += -I$(CBB_ROOT)/vo/vo_dev/include/adapt
461bd4fe43Sopenharmony_ci    MPI_INC_DIR += $(CBB_ROOT)/vo/vo_dev/include
471bd4fe43Sopenharmony_ciendif
481bd4fe43Sopenharmony_ci
491bd4fe43Sopenharmony_ci########################################################
501bd4fe43Sopenharmony_ci
511bd4fe43Sopenharmony_ci#-----------------------------------------------------
521bd4fe43Sopenharmony_ci
531bd4fe43Sopenharmony_citarget_clean = $(patsubst %,%_clean,$(target))
541bd4fe43Sopenharmony_ci#-----------------------------------------------------
551bd4fe43Sopenharmony_ci
561bd4fe43Sopenharmony_ci#-----------------------------------------------------
571bd4fe43Sopenharmony_ciall: $(target)
581bd4fe43Sopenharmony_ci
591bd4fe43Sopenharmony_cimpi: $(MPI_OBJS)
601bd4fe43Sopenharmony_ci	@mkdir -p "$(REL_LIB)"
611bd4fe43Sopenharmony_ci	@mkdir -p "$(REL_INC)"
621bd4fe43Sopenharmony_ci	@mkdir -p "$(ADAPT_INC)"
631bd4fe43Sopenharmony_ci	@$(AR) -rsv $(LIB_A) $(MPI_OBJS) > /dev/null
641bd4fe43Sopenharmony_ci	@$(CC) $(LIBS_LD_CFLAGS) -fPIC -shared -o $(LIB_S) $(MPI_OBJS) > /dev/null
651bd4fe43Sopenharmony_ci	@$(call maco_cp_file,$(INC_FILE),$(REL_INC))
661bd4fe43Sopenharmony_ci	@$(call maco_cp_file,$(HI_COMM_INC_FILE),$(REL_INC))
671bd4fe43Sopenharmony_ci	@$(call maco_cp_file,$(ADPAT_FILE),$(ADAPT_INC))
681bd4fe43Sopenharmony_ci
691bd4fe43Sopenharmony_cibase:
701bd4fe43Sopenharmony_ci	@cd based && make
711bd4fe43Sopenharmony_ci
721bd4fe43Sopenharmony_cisys:
731bd4fe43Sopenharmony_ci	@cd sysd && make
741bd4fe43Sopenharmony_ci
751bd4fe43Sopenharmony_cichnl:
761bd4fe43Sopenharmony_ci	@cd chnl && make
771bd4fe43Sopenharmony_ci
781bd4fe43Sopenharmony_ciregion:
791bd4fe43Sopenharmony_ci	@cd region && make
801bd4fe43Sopenharmony_ci
811bd4fe43Sopenharmony_civgs:
821bd4fe43Sopenharmony_ci	@cd $(VGS_ROOT) && make
831bd4fe43Sopenharmony_ci
841bd4fe43Sopenharmony_civi:
851bd4fe43Sopenharmony_ci	@cd vi && make
861bd4fe43Sopenharmony_ci
871bd4fe43Sopenharmony_cimcf:
881bd4fe43Sopenharmony_ci	@cd $(MCF_ROOT) && make
891bd4fe43Sopenharmony_civo:
901bd4fe43Sopenharmony_ci	@cd vo && make
911bd4fe43Sopenharmony_civo_dev:
921bd4fe43Sopenharmony_ci	@cd vo/vo_dev && make
931bd4fe43Sopenharmony_civpss:
941bd4fe43Sopenharmony_ci	@cd $(VPSS_ROOT) && make
951bd4fe43Sopenharmony_ciavs:
961bd4fe43Sopenharmony_ci	@cd avs && make
971bd4fe43Sopenharmony_civdec:
981bd4fe43Sopenharmony_ci	@cd $(VDEC_ROOT) && make
991bd4fe43Sopenharmony_civfmw:
1001bd4fe43Sopenharmony_ci	@cd $(VFMW_ROOT) && make
1011bd4fe43Sopenharmony_cijpegd:
1021bd4fe43Sopenharmony_ci	@cd jpegd && make
1031bd4fe43Sopenharmony_ci
1041bd4fe43Sopenharmony_cigdc:
1051bd4fe43Sopenharmony_ci	@cd gdc && make
1061bd4fe43Sopenharmony_civenc:
1071bd4fe43Sopenharmony_ci	@cd $(VENC_ROOT) && make
1081bd4fe43Sopenharmony_civedu:
1091bd4fe43Sopenharmony_ci	@cd vedu && make
1101bd4fe43Sopenharmony_cidis:
1111bd4fe43Sopenharmony_ci	@cd dis && make
1121bd4fe43Sopenharmony_ci
1131bd4fe43Sopenharmony_ciclean:$(target_clean)
1141bd4fe43Sopenharmony_ci	@rm -fr $(OBJ_DIR) $(LIB_A) $(LIB_S)
1151bd4fe43Sopenharmony_ci	@$(call maco_rm,$(REL_FILE),$(REL_INC))
1161bd4fe43Sopenharmony_ci	@$(call maco_rmemptydir,$(ADAPT_INC))
1171bd4fe43Sopenharmony_ci	@$(call maco_rmemptydir,$(REL_INC))
1181bd4fe43Sopenharmony_ci	@$(call maco_rmemptydir,$(REL_LIB))
1191bd4fe43Sopenharmony_cimpi_clean:
1201bd4fe43Sopenharmony_ci	@rm -fr $(MPI_OBJS) $(LIB_A) $(LIB_S)
1211bd4fe43Sopenharmony_cibase_clean:
1221bd4fe43Sopenharmony_ci	@cd based && make clean
1231bd4fe43Sopenharmony_cisys_clean:
1241bd4fe43Sopenharmony_ci	@cd sysd && make clean
1251bd4fe43Sopenharmony_cichnl_clean:
1261bd4fe43Sopenharmony_ci	@cd chnl && make clean
1271bd4fe43Sopenharmony_civenc_clean:
1281bd4fe43Sopenharmony_ci	@cd $(VENC_ROOT) && make clean
1291bd4fe43Sopenharmony_civedu_clean:
1301bd4fe43Sopenharmony_ci	@cd vedu && make clean
1311bd4fe43Sopenharmony_ciregion_clean:
1321bd4fe43Sopenharmony_ci	@cd region && make clean
1331bd4fe43Sopenharmony_civgs_clean:
1341bd4fe43Sopenharmony_ci	@cd $(VGS_ROOT) && make clean
1351bd4fe43Sopenharmony_civi_clean:
1361bd4fe43Sopenharmony_ci	@cd vi && make clean
1371bd4fe43Sopenharmony_cimcf_clean:
1381bd4fe43Sopenharmony_ci	@cd $(MCF_ROOT) && make clean
1391bd4fe43Sopenharmony_civo_clean:
1401bd4fe43Sopenharmony_ci	@cd vo && make clean
1411bd4fe43Sopenharmony_civo_dev_clean:
1421bd4fe43Sopenharmony_ci	@cd vo/vo_dev && make clean
1431bd4fe43Sopenharmony_civpss_clean:
1441bd4fe43Sopenharmony_ci	@cd $(VPSS_ROOT) && make clean
1451bd4fe43Sopenharmony_ciavs_clean:
1461bd4fe43Sopenharmony_ci	@cd avs && make clean
1471bd4fe43Sopenharmony_civdec_clean:
1481bd4fe43Sopenharmony_ci	@cd $(VDEC_ROOT) && make clean
1491bd4fe43Sopenharmony_civfmw_clean:
1501bd4fe43Sopenharmony_ci	@cd $(VFMW_ROOT) && make clean
1511bd4fe43Sopenharmony_cijpegd_clean:
1521bd4fe43Sopenharmony_ci	@cd jpegd && make clean
1531bd4fe43Sopenharmony_cigdc_clean:
1541bd4fe43Sopenharmony_ci	@cd gdc && make clean
1551bd4fe43Sopenharmony_cidis_clean:
1561bd4fe43Sopenharmony_ci	@cd dis && make clean
157