blob: 5f9c57f662b28dac475d334e9758d98d6412115a [file] [log] [blame]
Ao Xu1e37eca2018-08-13 15:25:28 +08001ifeq ($(KERNEL_A32_SUPPORT), true)
2KERNEL_ARCH := arm
3else
Nanxin Qinb9164392017-06-09 15:52:28 +08004KERNEL_ARCH := arm64
Ao Xu1e37eca2018-08-13 15:25:28 +08005endif
6
Nanxin Qinb9164392017-06-09 15:52:28 +08007CONFIGS := CONFIG_AMLOGIC_MEDIA_VDEC_MPEG12=m \
shihong.zheng87046a62018-08-27 15:14:58 +08008 CONFIG_AMLOGIC_MEDIA_VDEC_MPEG2_MULTI=m \
Nanxin Qinb9164392017-06-09 15:52:28 +08009 CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4=m \
10 CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4_MULTI=m \
11 CONFIG_AMLOGIC_MEDIA_VDEC_VC1=m \
12 CONFIG_AMLOGIC_MEDIA_VDEC_H264=m \
13 CONFIG_AMLOGIC_MEDIA_VDEC_H264_MULTI=m \
14 CONFIG_AMLOGIC_MEDIA_VDEC_H264_MVC=m \
Nanxin Qinb9164392017-06-09 15:52:28 +080015 CONFIG_AMLOGIC_MEDIA_VDEC_H265=m \
16 CONFIG_AMLOGIC_MEDIA_VDEC_VP9=m \
17 CONFIG_AMLOGIC_MEDIA_VDEC_MJPEG=m \
18 CONFIG_AMLOGIC_MEDIA_VDEC_MJPEG_MULTI=m \
19 CONFIG_AMLOGIC_MEDIA_VDEC_REAL=m \
20 CONFIG_AMLOGIC_MEDIA_VDEC_AVS=m \
Nanxin Qina6c89e92018-03-06 19:30:03 +080021 CONFIG_AMLOGIC_MEDIA_VDEC_AVS2=m \
Nanxin Qinb9164392017-06-09 15:52:28 +080022 CONFIG_AMLOGIC_MEDIA_VENC_H264=m \
apollo.ling0548bda2020-03-05 17:31:42 +080023 CONFIG_AMLOGIC_MEDIA_VENC_H265=m \
zehong.luo46901182022-12-28 16:14:16 +080024 CONFIG_AMLOGIC_MEDIA_VDEC_AV1=m \
25 CONFIG_AMLOGIC_MEDIA_VDEC_AVS3=m \
apollo.ling0548bda2020-03-05 17:31:42 +080026 CONFIG_AMLOGIC_MEDIA_ENHANCEMENT_DOLBYVISION=y \
27 CONFIG_AMLOGIC_MEDIA_GE2D=y \
28 CONFIG_AMLOGIC_MEDIA_VENC_MULTI=m \
zehong.luo46901182022-12-28 16:14:16 +080029 CONFIG_AMLOGIC_MEDIA_VENC_JPEG=m \
30 CONFIG_AMLOGIC_MEDIA_VDEC_VP9_FB=m \
31 CONFIG_AMLOGIC_MEDIA_VDEC_H265_FB=m \
32 CONFIG_AMLOGIC_MEDIA_VDEC_AV1_FB=m \
kuan.hu9b49f002023-05-26 14:13:45 +080033 CONFIG_AMLOGIC_MEDIA_VDEC_AV1_T5D=m \
zehong.luo46901182022-12-28 16:14:16 +080034 CONFIG_AMLOGIC_MEDIA_VDEC_AVS2_FB=m
Nanxin Qinb9164392017-06-09 15:52:28 +080035
36define copy-media-modules
37$(foreach m, $(shell find $(strip $(1)) -name "*.ko"),\
38 $(shell cp $(m) $(strip $(2)) -rfa))
39endef
40
Tellen Yu8abe69e2018-02-08 17:22:14 +080041ifneq (,$(TOP))
42KDIR := $(shell pwd)/$(PRODUCT_OUT)/obj/KERNEL_OBJ/
Nanxin Qinb9164392017-06-09 15:52:28 +080043
Tellen Yu8abe69e2018-02-08 17:22:14 +080044MEDIA_DRIVERS := $(TOP)/hardware/amlogic/media_modules/drivers
Nanxin Qinb9164392017-06-09 15:52:28 +080045ifeq (,$(wildcard $(MEDIA_DRIVERS)))
46$(error No find the dir of drivers.)
47endif
48
49INCLUDE := $(MEDIA_DRIVERS)/include
50ifeq (,$(wildcard $(INCLUDE)))
51$(error No find the dir of include.)
52endif
53
Tellen Yu8abe69e2018-02-08 17:22:14 +080054MEDIA_MODULES := $(shell pwd)/$(PRODUCT_OUT)/obj/media_modules
Nanxin Qinb9164392017-06-09 15:52:28 +080055ifeq (,$(wildcard $(MEDIA_MODULES)))
56$(shell mkdir $(MEDIA_MODULES) -p)
57endif
58
Tellen Yu8abe69e2018-02-08 17:22:14 +080059MODS_OUT := $(shell pwd)/$(PRODUCT_OUT)/obj/lib_vendor
Nanxin Qin2bdceca2017-09-15 15:27:28 +080060ifeq (,$(wildcard $(MODS_OUT)))
61$(shell mkdir $(MODS_OUT) -p)
Xindong Xud06e9fd2017-06-13 15:45:22 +080062endif
Nanxin Qinb9164392017-06-09 15:52:28 +080063
Tellen Yu8abe69e2018-02-08 17:22:14 +080064UCODE_OUT := $(shell pwd)/$(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/firmware/video
Nanxin Qin687fbdf2017-08-18 12:08:25 +080065ifeq (,$(wildcard $(UCODE_OUT)))
66$(shell mkdir $(UCODE_OUT) -p)
67endif
68
69$(shell cp $(MEDIA_DRIVERS)/../firmware/* $(UCODE_OUT) -rfa)
Nanxin Qinb9164392017-06-09 15:52:28 +080070$(shell cp $(MEDIA_DRIVERS)/* $(MEDIA_MODULES) -rfa)
71
72define media-modules
Jinping Wangdd005332020-03-07 11:27:01 +080073 PATH=$(KERNEL_TOOLPATHS):$$PATH \
74 $(MAKE) -C $(KDIR) M=$(MEDIA_MODULES) $(KERNEL_ARGS) $(CONFIGS) \
75 "EXTRA_CFLAGS+=-I$(INCLUDE) -Wno-error" modules; \
76 find $(MEDIA_MODULES) -name "*.ko" | PATH=$$(cd ./$(TARGET_HOST_TOOL_PATH); pwd):$$PATH xargs -i cp {} $(MODS_OUT)
Nanxin Qinb9164392017-06-09 15:52:28 +080077endef
78
79else
80KDIR := $(PWD)/kernel
81ifeq (,$(wildcard $(KDIR)))
82$(error No find the dir of kernel.)
83endif
84
85MEDIA_DRIVERS := $(PWD)/media_modules/drivers
86ifeq (,$(wildcard $(MEDIA_DRIVERS)))
87$(error No find the dir of drivers.)
88endif
89
90INCLUDE := $(MEDIA_DRIVERS)/include
91ifeq (,$(wildcard $(INCLUDE)))
92$(error No find the dir of include.)
93endif
94
95MODS_OUT ?= $(MEDIA_DRIVERS)/../modules
96ifeq (,$(wildcard $(MODS_OUT)))
97$(shell mkdir $(MODS_OUT) -p)
98endif
99
Nanxin Qinb9164392017-06-09 15:52:28 +0800100modules:
Jinping Wangdd005332020-03-07 11:27:01 +0800101 CCACHE_NODIRECT="true" PATH=$(KERNEL_TOOLPATHS):$$PATH \
Nanxin Qindeb35d42020-04-02 15:32:33 +0800102 $(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) $(KERNEL_ARGS) $(CONFIGS) \
Jinping Wangdd005332020-03-07 11:27:01 +0800103 EXTRA_CFLAGS+=-I$(INCLUDE) -j64
Nanxin Qinb9164392017-06-09 15:52:28 +0800104
105copy-modules:
106 @echo "start copying media modules."
Xindong Xud06e9fd2017-06-13 15:45:22 +0800107 mkdir -p $(MODS_OUT)
Nanxin Qinb9164392017-06-09 15:52:28 +0800108 $(call copy-media-modules, $(MEDIA_DRIVERS), $(MODS_OUT))
109
110all: modules copy-modules
111
Jinping Wangdd005332020-03-07 11:27:01 +0800112
Nanxin Qinb9164392017-06-09 15:52:28 +0800113clean:
Jinping Wangdd005332020-03-07 11:27:01 +0800114 PATH=$(KERNEL_TOOLPATHS):$$PATH \
115 $(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) $(KERNEL_ARGS) clean
Nanxin Qinb9164392017-06-09 15:52:28 +0800116
117endif