blob: 8ca1d1dc1d61e2560c044db02c8ec5d650db8185 [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 \
yongchun.lie6c53462019-05-30 17:30:24 -070023 CONFIG_AMLOGIC_MEDIA_VENC_H265=m
Nanxin Qinb9164392017-06-09 15:52:28 +080024
25define copy-media-modules
26$(foreach m, $(shell find $(strip $(1)) -name "*.ko"),\
27 $(shell cp $(m) $(strip $(2)) -rfa))
28endef
29
Tellen Yu8abe69e2018-02-08 17:22:14 +080030ifneq (,$(TOP))
31KDIR := $(shell pwd)/$(PRODUCT_OUT)/obj/KERNEL_OBJ/
Nanxin Qinb9164392017-06-09 15:52:28 +080032
Tellen Yu8abe69e2018-02-08 17:22:14 +080033MEDIA_DRIVERS := $(TOP)/hardware/amlogic/media_modules/drivers
Nanxin Qinb9164392017-06-09 15:52:28 +080034ifeq (,$(wildcard $(MEDIA_DRIVERS)))
35$(error No find the dir of drivers.)
36endif
37
38INCLUDE := $(MEDIA_DRIVERS)/include
39ifeq (,$(wildcard $(INCLUDE)))
40$(error No find the dir of include.)
41endif
42
Tellen Yu8abe69e2018-02-08 17:22:14 +080043MEDIA_MODULES := $(shell pwd)/$(PRODUCT_OUT)/obj/media_modules
Nanxin Qinb9164392017-06-09 15:52:28 +080044ifeq (,$(wildcard $(MEDIA_MODULES)))
45$(shell mkdir $(MEDIA_MODULES) -p)
46endif
47
Tellen Yu8abe69e2018-02-08 17:22:14 +080048MODS_OUT := $(shell pwd)/$(PRODUCT_OUT)/obj/lib_vendor
Nanxin Qin2bdceca2017-09-15 15:27:28 +080049ifeq (,$(wildcard $(MODS_OUT)))
50$(shell mkdir $(MODS_OUT) -p)
Xindong Xud06e9fd2017-06-13 15:45:22 +080051endif
Nanxin Qinb9164392017-06-09 15:52:28 +080052
Tellen Yu8abe69e2018-02-08 17:22:14 +080053UCODE_OUT := $(shell pwd)/$(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/firmware/video
Nanxin Qin687fbdf2017-08-18 12:08:25 +080054ifeq (,$(wildcard $(UCODE_OUT)))
55$(shell mkdir $(UCODE_OUT) -p)
56endif
57
58$(shell cp $(MEDIA_DRIVERS)/../firmware/* $(UCODE_OUT) -rfa)
Nanxin Qinb9164392017-06-09 15:52:28 +080059$(shell cp $(MEDIA_DRIVERS)/* $(MEDIA_MODULES) -rfa)
60
61define media-modules
62 @$(MAKE) -C $(KDIR) M=$(MEDIA_MODULES) ARCH=$(KERNEL_ARCH) \
63 CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(CONFIGS) \
64 EXTRA_CFLAGS+=-I$(INCLUDE) modules; \
65 find $(MEDIA_MODULES) -name "*.ko" | xargs -i cp {} $(MODS_OUT)
66endef
67
68else
69KDIR := $(PWD)/kernel
70ifeq (,$(wildcard $(KDIR)))
71$(error No find the dir of kernel.)
72endif
73
74MEDIA_DRIVERS := $(PWD)/media_modules/drivers
75ifeq (,$(wildcard $(MEDIA_DRIVERS)))
76$(error No find the dir of drivers.)
77endif
78
79INCLUDE := $(MEDIA_DRIVERS)/include
80ifeq (,$(wildcard $(INCLUDE)))
81$(error No find the dir of include.)
82endif
83
84MODS_OUT ?= $(MEDIA_DRIVERS)/../modules
85ifeq (,$(wildcard $(MODS_OUT)))
86$(shell mkdir $(MODS_OUT) -p)
87endif
88
Ao Xu1e37eca2018-08-13 15:25:28 +080089ifeq ($(KERNEL_A32_SUPPORT), true)
90TOOLS := /opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
91else
Nanxin Qinb9164392017-06-09 15:52:28 +080092TOOLS := /opt/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
Ao Xu1e37eca2018-08-13 15:25:28 +080093endif
Nanxin Qinb9164392017-06-09 15:52:28 +080094
95modules:
96 @$(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) \
97 CROSS_COMPILE=$(TOOLS) $(CONFIGS) \
98 EXTRA_CFLAGS+=-I$(INCLUDE) -j64
99
100copy-modules:
101 @echo "start copying media modules."
Xindong Xud06e9fd2017-06-13 15:45:22 +0800102 mkdir -p $(MODS_OUT)
Nanxin Qinb9164392017-06-09 15:52:28 +0800103 $(call copy-media-modules, $(MEDIA_DRIVERS), $(MODS_OUT))
104
105all: modules copy-modules
106
107clean:
108 $(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) clean
109
110endif