Files
2026-08-24 10:03:24 +08:00

135 lines
4.4 KiB
Makefile

mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
MEDIA_MODULE_PATH := $(dir $(mkfile_path))
VERSION_CONTROL_CFLAGS := $(shell ${MEDIA_MODULE_PATH}/version_control.sh)
DOS_REG_VERSION ?= 1
PRODUCT_FULL_DIR ?= ${MAIN_FOLDER}/${PROJECT_CONFIG_DIR}
ifeq (${wildcard ${PRODUCT_FULL_DIR}/media_modules.build.config.trunk.mk},)
${info "media_modules use default config"}
MEDIA_MODULES_CFLAGS := -DDOS_REGISTERS_V$(DOS_REG_VERSION)
else
${info "media_modules use config in ${PRODUCT_FULL_DIR}"}
include ${PRODUCT_FULL_DIR}/media_modules.build.config.trunk.mk
endif
# decoder // format ko want to be compiled
TARGET_VENDOR_MEDIA_VVC_SUPPORT := true
TARGET_VENDOR_MEDIA_VC1_SUPPORT := true
TARGET_VENDOR_MEDIA_H264_SUPPORT := true
TARGET_VENDOR_MEDIA_H265_SUPPORT := true
TARGET_VENDOR_MEDIA_MPEG2_SUPPORT := true
TARGET_VENDOR_MEDIA_MPEG4_SUPPORT := true
TARGET_VENDOR_MEDIA_VP9_SUPPORT := true
TARGET_VENDOR_MEDIA_MJPEG_SUPPORT := true
TARGET_VENDOR_MEDIA_AVS_SUPPORT := true
TARGET_VENDOR_MEDIA_AVS2_SUPPORT := true
TARGET_VENDOR_MEDIA_AVS3_SUPPORT := true
TARGET_VENDOR_MEDIA_AV1_SUPPORT := true
CONFIGS ?= CONFIG_AMLOGIC_MEDIA_VENC_H264=m \
CONFIG_AMLOGIC_MEDIA_VENC_H265=m \
CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION=y \
CONFIG_AMLOGIC_MEDIA_GE2D=y \
CONFIG_AMLOGIC_MEDIA_VENC_MULTI=m \
CONFIG_AMLOGIC_MEDIA_VENC_JPEG=m \
CONFIG_AMLOGIC_MEDIA_VENC_MEMALLOC=m \
CONFIG_AMLOGIC_MEDIA_VENC_VCENC=m \
CONFIG_AMLOGIC_MEDIA_VENC_COMMON=m \
CONFIG_AMLOGIC_HW_DEMUX=m \
CONFIG_AMLOGIC_MEDIA_V4L_DEC=y \
CONFIG_AMLOGIC_MEDIA_DHP=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AVBCD=m
ifeq ($(TARGET_VENDOR_MEDIA_VVC_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_H266=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_VC1_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_VC1=m \
CONFIG_AMLOGIC_MEDIA_VDEC_VC1_MULTI=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_H264_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_H264_MULTI=m \
CONFIG_AMLOGIC_MEDIA_VDEC_H264_MVC=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_H265_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_H265=m \
CONFIG_AMLOGIC_MEDIA_VDEC_H265_FB=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_MPEG2_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_MPEG2_MULTI=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_MPEG4_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4_MULTI=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_VP9_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_VP9_FB=m \
CONFIG_AMLOGIC_MEDIA_VDEC_VP9=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_MJPEG_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_MJPEG_MULTI=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_AVS_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_AVS_MULTI=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_AVS2_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_AVS2=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AVS2_FB=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_AVS3_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_AVS3=m
endif
ifeq ($(TARGET_VENDOR_MEDIA_AV1_SUPPORT), true)
CONFIGS += CONFIG_AMLOGIC_MEDIA_VDEC_AV1=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AV1_FB=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AV1_T5D=m
endif
EXTRA_INCLUDE := -I$(KERNEL_SRC)/$(M)/drivers/include
INTER_INCLUDE := -I$(MEDIA_MODULE_PATH)/drivers/common/media_utils
CONFIGS_BUILD := -Wno-parentheses-equality -Wno-pointer-bool-conversion \
-Wno-unused-const-variable -Wno-typedef-redefinition \
-Wno-logical-not-parentheses -Wno-sometimes-uninitialized \
-Wno-frame-larger-than=
KBUILD_CFLAGS_MODULE += $(GKI_EXT_MODULE_PREDEFINE)
ifeq ($(O),)
out_dir := .
else
out_dir := $(O)
endif
include $(out_dir)/include/config/auto.conf
modules:
$(MAKE) -C $(KERNEL_SRC) M=$(M)/drivers modules "EXTRA_CFLAGS+=-I$(INCLUDE) -Wno-error $(CONFIGS_BUILD) $(EXTRA_INCLUDE) $(INTER_INCLUDE) $(KBUILD_CFLAGS_MODULE) ${VERSION_CONTROL_CFLAGS} ${MEDIA_MODULES_CFLAGS}" $(CONFIGS)
all: modules
modules_install:
$(MAKE) INSTALL_MOD_STRIP=1 M=$(M)/drivers -C $(KERNEL_SRC) modules_install
$(Q)mkdir -p ${out_dir}/../vendor_lib/modules
$(Q)mkdir -p ${out_dir}/../vendor_lib/firmware/video
$(Q)cp $(KERNEL_SRC)/$(M)/firmware/* ${out_dir}/../vendor_lib/firmware/video/ -rf
$(Q)if [ -z "$(CONFIG_AMLOGIC_KERNEL_VERSION)" ]; then \
cd ${out_dir}/$(M)/; find -name "*.ko" -exec cp {} ${out_dir}/../vendor_lib/modules/ \; ; \
else \
find $(INSTALL_MOD_PATH)/lib/modules/*/$(INSTALL_MOD_DIR) -name "*.ko" -exec cp {} ${out_dir}/../vendor_lib/modules \; ; \
fi;
clean:
$(MAKE) -C $(KERNEL_SRC) M=$(M) clean