283 lines
9.7 KiB
Makefile
Executable File
283 lines
9.7 KiB
Makefile
Executable File
MODULE_NAME = kdrv_builtin
|
|
# DIRs
|
|
VOS_DRIVER_DIR = $(NVT_VOS_DIR)/drivers
|
|
KDRV_DIR = $(NVT_HDAL_DIR)/drivers/k_driver
|
|
CURR_DRIVER_DIR = $(KDRV_DIR)
|
|
RTOS_OUTPUT_DIR = $(CURR_DRIVER_DIR)/output
|
|
EXTRA_INCLUDE += \
|
|
-I$(NVT_HDAL_DIR)/include \
|
|
-I$(VOS_DRIVER_DIR)/include \
|
|
-I$(KDRV_DIR)/include \
|
|
-I$(KDRV_DIR)/include/comm \
|
|
-I$(KDRV_DIR)/include/kdrv_builtin \
|
|
-I$(KDRV_DIR)/source/include \
|
|
-I$(KDRV_DIR)/source/kdrv_videoprocess/kdrv_ime/eng/include \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/ai \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/ipp/include \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/isp \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/include \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/sie \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/ \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/vpu/inc \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/vrc/inc \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/h26x/inc \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/h26x/api \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/h264/inc \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/h264/api \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/h265/inc \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_vdocdc/h265/api \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/audio/dai/include \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/audio/eac/include \
|
|
-I$(NVT_HDAL_DIR)/vendor/media/drivers/include/nvt_vencrc \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/nvt_jpg/include \
|
|
-I$(KDRV_DIR)/include/kdrv_ai \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/kdrv_ai/include \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/kdrv_ai/cnn \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/kdrv_ai/nue \
|
|
-I$(CURR_DRIVER_DIR)/source/kdrv_builtin/kdrv_ai/nue2 \
|
|
|
|
.PHONY: modules modules_install clean
|
|
###############################################################################
|
|
# Linux Makefile #
|
|
###############################################################################
|
|
ifeq ($(NVT_PRJCFG_CFG),Linux)
|
|
C_CFLAGS += -D_ARCH_ARM_=1 -D_ARCH_MIPS_=0 -D_ARCH_=$(_ARCH_ARM_)
|
|
C_CFLAGS += -D__LINUX -Werror
|
|
ifeq ($(CONFIG_NVT_HDAL_KDRV_BUILTIN),y)
|
|
C_CFLAGS += -D__KDRV_BUILTIN_USE_INITCALL
|
|
endif
|
|
EXTRA_CFLAGS += $(C_CFLAGS) $(EXTRA_INCLUDE) -Wno-date-time -Wno-sign-compare -D_GROUP_KO_
|
|
KBUILD_EXTRA_SYMBOLS = $(shell find $(NVT_HDAL_DIR)/drivers -name Module.symvers)
|
|
ccflags-y := $(EXTRA_CFLAGS)
|
|
|
|
ifeq ($(CONFIG_NVT_HDAL_KDRV_BUILTIN),y)
|
|
obj-$(CONFIG_NVT_HDAL_KDRV_BUILTIN) = $(MODULE_NAME).o
|
|
else
|
|
obj-m += $(MODULE_NAME).o
|
|
endif
|
|
|
|
vpu-objs := nvt_vdocdc/vpu/src/h26x.o
|
|
vrc-objs := nvt_vdocdc/vrc/src/h26xenc_rc.o nvt_vdocdc/vrc/src/h26xenc_rate_control.o
|
|
h26x-objs := nvt_vdocdc/h26x/src/h26x_bitstream.o nvt_vdocdc/h26x/src/h26x_common.o nvt_vdocdc/h26x/src/h26xenc_api.o nvt_vdocdc/h26x/src/h26xenc_int.o nvt_vdocdc/h26x/src/h26xenc_wrap.o
|
|
h264-objs := nvt_vdocdc/h264/src/h264enc_api.o nvt_vdocdc/h264/src/h264enc_header.o nvt_vdocdc/h264/src/h264enc_int.o nvt_vdocdc/h264/src/h264enc_wrap.o
|
|
h265-objs := nvt_vdocdc/h265/src/h265enc_api.o nvt_vdocdc/h265/src/h265enc_header.o nvt_vdocdc/h265/src/h265enc_int.o nvt_vdocdc/h265/src/h265enc_wrap.o
|
|
h26xm-objs := nvt_vdocdc/nvt_vdocdc_main.o nvt_vdocdc/nvt_vdocdc_drv.o nvt_vdocdc/nvt_vdocdc_dbg.o nvt_vdocdc/nvt_vdocdc_export.o
|
|
jpeg-objs := nvt_jpg/nvt_jpeg_main.o nvt_jpg/nvt_jpeg_proc.o nvt_jpg/nvt_jpeg_drv.o nvt_jpg/nvt_jpeg_api.o nvt_jpg/nvt_jpeg_platform.o nvt_jpg/nvt_jpeg.o nvt_jpg/nvt_jpeg_queue.o nvt_jpg/nvt_jpg_enc.o nvt_jpg/nvt_jpg_header.o nvt_jpg/nvt_jpeg_int.o nvt_jpg/nvt_jpegbrc.o nvt_jpg/nvt_jpg_parseheader.o
|
|
kdrv_ai-objs := kdrv_ai/ai_main.o kdrv_ai/ai_drv.o kdrv_ai/ai_lib.o kdrv_ai/kdrv_ai_api.o kdrv_ai/kdrv_ai_config.o kdrv_ai/kdrv_ai_int.o kdrv_ai/cnn/cnn_int.o kdrv_ai/cnn/cnn_lib.o kdrv_ai/cnn/cnn_platform.o kdrv_ai/nue/nue_int.o kdrv_ai/nue/nue_lib.o kdrv_ai/nue/nue_platform.o kdrv_ai/nue2/nue2_int.o kdrv_ai/nue2/nue2_lib.o kdrv_ai/nue2/nue2_platform.o
|
|
|
|
ifeq ($(shell if [ -d $(src)/isp/builtin ]; then echo y; else echo n; fi),y)
|
|
isp-builtin-dir := isp/builtin
|
|
else
|
|
isp-builtin-dir := isp
|
|
endif
|
|
|
|
isp-builtin-objs := \
|
|
$(isp-builtin-dir)/ae_builtin_nvt.o \
|
|
$(isp-builtin-dir)/ae_builtin_alg.o \
|
|
$(isp-builtin-dir)/ae_common.o \
|
|
$(isp-builtin-dir)/ae_dtsi.o \
|
|
$(isp-builtin-dir)/ae_param.o \
|
|
$(isp-builtin-dir)/awb_builtin_nvt.o \
|
|
$(isp-builtin-dir)/awb_builtin_alg.o \
|
|
$(isp-builtin-dir)/awb_dtsi.o \
|
|
$(isp-builtin-dir)/awb_param.o \
|
|
$(isp-builtin-dir)/iq_lib_nvt.o
|
|
|
|
OBJ := \
|
|
kdrv_builtin_main.o \
|
|
kdrv_builtin_util.o \
|
|
kdrv_builtin_ver.o \
|
|
nvtmpp_init.o \
|
|
bridge.o \
|
|
ipp/ime_builtin_main.o \
|
|
ipp/ime_builtin.o \
|
|
ipp/kdrv_ipp_builtin.o \
|
|
ipp/kdrv_ipp_builtin_platform.o \
|
|
ipp/kdrv_ipp_builtin_dbg.o \
|
|
ipp/kdrv_ipp_builtin_version.o \
|
|
isp/ae_builtin.o \
|
|
isp/awb_builtin.o \
|
|
isp/iq_builtin.o \
|
|
isp/iq_dtsi.o \
|
|
isp/iq_param.o \
|
|
isp/isp_builtin.o \
|
|
isp/sensor_builtin.o \
|
|
sie/sie_main.o \
|
|
sie/sie_drv.o \
|
|
sie/sie_int.o \
|
|
sie/sie_lib.o \
|
|
sie/sie_platform.o \
|
|
sie/sie_init.o \
|
|
sie/sie_init_platform.o \
|
|
sie/sie_export.o \
|
|
vdoenc_builtin.o \
|
|
vdoenc_builtin_export.o \
|
|
audio/dai/dai.o \
|
|
audio/dai/dai_api.o \
|
|
audio/dai/dai_main.o \
|
|
audio/dai/dai_drv.o \
|
|
audio/dai/dai_proc.o \
|
|
audio/dai/dai_platform.o \
|
|
audio/dai/dai_export.o \
|
|
audio/eac/eac.o \
|
|
audio/eac/eac_api.o \
|
|
audio/eac/eac_main.o \
|
|
audio/eac/eac_drv.o \
|
|
audio/eac/eac_proc.o \
|
|
audio/eac/eac_platform.o \
|
|
audio/eac/eac_export.o \
|
|
audcap_builtin.o \
|
|
audcap_builtin_platform.o \
|
|
audcap_builtin_export.o \
|
|
kflow_ai_builtin.o \
|
|
kflow_ai_builtin_export.o \
|
|
ai/pdcnn_api.o \
|
|
ai/pdcnn_postproc.o \
|
|
unlzma.o \
|
|
kdrv_builtin_prepare.o \
|
|
|
|
OBJ += $(vpu-objs)
|
|
OBJ += $(vrc-objs)
|
|
OBJ += $(h26x-objs)
|
|
OBJ += $(h264-objs)
|
|
OBJ += $(h265-objs)
|
|
OBJ += $(h26xm-objs)
|
|
OBJ += $(jpeg-objs)
|
|
OBJ += $(isp-builtin-objs)
|
|
OBJ += $(kdrv_ai-objs)
|
|
|
|
ifeq ($(CONFIG_FUNCTION_TRACER),y)
|
|
$(MODULE_NAME)-objs := $(OBJ)
|
|
else
|
|
$(MODULE_NAME)-objs := $(OBJ:.o=_no_tracer.o)
|
|
EXTRA_CFLAGS += $(shell for n in $(OBJ:.o=); do if [ -f $(src)/$$n.c ]; then ln -sf $$(basename $${n}.c) $(src)/$${n}_no_tracer.c; else rm -f $(src)/$${n}_no_tracer.c; fi done)
|
|
endif
|
|
|
|
ifeq ($(KERNELRELEASE),)
|
|
PWD := $(shell pwd)
|
|
KERVER ?= $(NVT_LINUX_VER)
|
|
KDIR ?= $(KERNELDIR)
|
|
MDIR ?= $(KERNELDIR)/_install_modules/lib/modules/$(KERVER)/hdal
|
|
MODPATH := $(shell echo $(PWD) | awk -F'linux-driver/' '{print $$NF}')
|
|
MODNAME := $(shell echo $(obj-m:.o=.ko))
|
|
# variables for clean object
|
|
RM_TRACER_OBJ = $(foreach n, $(OBJ:.o=), $(if $(wildcard $(n).c),$(if $(wildcard $(n).o),$(n).o,),))
|
|
RM_NO_TRACER_OBJ = $(foreach n, $(OBJ:.o=), $(if $(wildcard $(n).c),$(if $(wildcard $(n)_no_tracer.o),$(n)_no_tracer.o,),))
|
|
|
|
modules:
|
|
$(MAKE) -C $(KDIR) M=$(PWD) $(NVT_KGCOV) modules
|
|
|
|
modules_install:
|
|
@if [ -z $(NVT_MOD_INSTALL) ]; then \
|
|
rm -f $(MDIR)/$(MODPATH)/$(MODNAME); \
|
|
install -m644 -b -D $(MODNAME) ${MDIR}/$(MODPATH)/$(MODNAME); \
|
|
cd $(KDIR)/_install_modules/lib/modules/$(KERVER)/; depmod -b $(KDIR)/_install_modules/ -a $(KERVER); \
|
|
else \
|
|
mkdir -p $(NVT_MOD_INSTALL)/lib/modules/$(KERVER); \
|
|
install -m644 -b -D $(MODNAME) $(NVT_MOD_INSTALL)/lib/modules/$(KERVER)/hdal/$(MODPATH)/$(MODNAME); \
|
|
fi
|
|
|
|
clean:
|
|
@rm -rf $(MODULE_NAME).* .$(MODULE_NAME).* $(OBJ:.o=_no_tracer.c) Module.symvers modules.order .tmp_versions
|
|
@rm -f `find . -type f -name ".*.cmd" -o -name ".*.d"`
|
|
@rm -f $(RM_TRACER_OBJ) $(RM_NO_TRACER_OBJ)
|
|
|
|
codesize:
|
|
@echo $(MODULE_NAME)
|
|
@$(OBJDUMP) -t $(MODULE_NAME).o > $(MODULE_NAME).sym && \
|
|
$(BUILD_DIR)/nvt-tools/nvt-ld-op -j $(MODULE_NAME).sym
|
|
|
|
endif
|
|
|
|
###############################################################################
|
|
# rtos Makefile #
|
|
###############################################################################
|
|
else ifeq ($(NVT_PRJCFG_CFG),rtos)
|
|
OUTPUT_NAME = lib$(MODULE_NAME).a
|
|
EXTRA_INCLUDE += \
|
|
-I$(KDRV_DIR)/include/plat \
|
|
-I$(KDRV_DIR)/include \
|
|
|
|
C_CFLAGS = $(PLATFORM_CFLAGS) $(EXTRA_INCLUDE) -Wno-sign-compare -DDEBUG
|
|
|
|
SRC = \
|
|
kdrv_builtin_main.c \
|
|
kdrv_builtin_ver.c \
|
|
ipp/ime_builtin.c \
|
|
ipp/kdrv_ipp_builtin.c \
|
|
ipp/kdrv_ipp_builtin_platform.c \
|
|
ipp/kdrv_ipp_builtin_version.c \
|
|
isp/ae_builtin.c \
|
|
isp/awb_builtin.c \
|
|
isp/iq_builtin.c \
|
|
isp/iq_dtsi.c \
|
|
isp/iq_param.c \
|
|
isp/isp_builtin.c \
|
|
isp/sensor_builtin.c \
|
|
sie/sie_int.c \
|
|
sie/sie_lib.c \
|
|
sie/sie_platform.c \
|
|
audio/dai/dai.c \
|
|
audio/eac/eac.c \
|
|
unlzma.c \
|
|
# kdrv_ai/ai_api.c \
|
|
# kdrv_ai/ai_lib.c \
|
|
# kdrv_ai/kdrv_ai_int.c \
|
|
# kdrv_ai/kdrv_ai_config.c \
|
|
# kdrv_ai/kdrv_ai_api.c \
|
|
# kdrv_ai/ai_ioctl.c \
|
|
# kdrv_ai/nue2/nue2_int.c \
|
|
# kdrv_ai/nue2/nue2_lib.c \
|
|
# kdrv_ai/nue2/nue2_platform.c \
|
|
# kdrv_ai/cnn/cnn_int.c \
|
|
# kdrv_ai/cnn/cnn_lib.c \
|
|
# kdrv_ai/cnn/cnn_platform.c \
|
|
# kdrv_ai/cnn/cnn_ll_cmd.c \
|
|
# kdrv_ai/nue/nue_ll_cmd.c \
|
|
# kdrv_ai/nue/nue_int.c \
|
|
# kdrv_ai/nue/nue_lib.c \
|
|
# kdrv_ai/nue/nue_platform.c \
|
|
|
|
|
|
SRC += $(wildcard nvt_vdocdc/vpu/src/*.c)
|
|
SRC += $(wildcard nvt_vdocdc/vrc/src/*.c)
|
|
SRC += $(wildcard nvt_vdocdc/h26x/src/*.c)
|
|
SRC += $(wildcard nvt_vdocdc/h264/src/*.c)
|
|
SRC += $(wildcard nvt_vdocdc/h265/src/*.c)
|
|
SRC += $(wildcard nvt_jpg/*.c)
|
|
SRC += nvt_vdocdc/nvt_vdocdc_drv.c nvt_vdocdc/nvt_vdocdc_dbg.c
|
|
|
|
copy = if [ ! -z "$(1)" -a "$(1)" != " " ]; then cp -avf $(1) $(2); fi
|
|
|
|
OBJ = $(SRC:.c=.o)
|
|
|
|
ifeq ("$(wildcard *.c */*.c */*/*.c)","")
|
|
modules:
|
|
@echo "nothing to be done for '$(MODULE_NAME)'"
|
|
|
|
clean:
|
|
@echo "nothing to be done for '$(MODULE_NAME)'"
|
|
else
|
|
modules : $(OUTPUT_NAME)
|
|
|
|
|
|
%.o:%.c
|
|
@echo Compiling $<
|
|
@$(CC) $(C_CFLAGS) -c $< -o $@
|
|
|
|
$(OUTPUT_NAME): $(OBJ)
|
|
@echo Creating library $* ...
|
|
@$(AR) rcsD $(OUTPUT_NAME) $(OBJ)
|
|
@$(BUILD_DIR)/nvt-tools/nvt-ld-op --arc-sha1 $@
|
|
|
|
clean:
|
|
@rm -f $(OBJ) *.a *.so*
|
|
endif
|
|
|
|
modules_install:
|
|
@mkdir -p $(RTOS_OUTPUT_DIR)
|
|
@cp -avf *.a $(RTOS_OUTPUT_DIR)
|
|
|
|
endif
|