summaryrefslogtreecommitdiff
path: root/Media.mk (plain)
blob: 25e86221f3d2d994b9258525c3933a56f0deb643
1ifeq ($(KERNEL_A32_SUPPORT), true)
2KERNEL_ARCH := arm
3else
4KERNEL_ARCH := arm64
5endif
6
7CONFIGS := CONFIG_AMLOGIC_MEDIA_VDEC_MPEG12=m \
8 CONFIG_AMLOGIC_MEDIA_VDEC_MPEG2_MULTI=m \
9 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 \
15 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 \
21 CONFIG_AMLOGIC_MEDIA_VDEC_AVS_MULTI=m \
22 CONFIG_AMLOGIC_MEDIA_VDEC_AVS2=m \
23 CONFIG_AMLOGIC_MEDIA_VDEC_AV1=m \
24 CONFIG_AMLOGIC_MEDIA_VENC_H264=m \
25 CONFIG_AMLOGIC_MEDIA_VENC_H265=m
26
27define copy-media-modules
28$(foreach m, $(shell find $(strip $(1)) -name "*.ko"),\
29 $(shell cp $(m) $(strip $(2)) -rfa))
30endef
31
32ifneq (,$(TOP))
33KDIR := $(shell pwd)/$(PRODUCT_OUT)/obj/KERNEL_OBJ/
34
35MEDIA_DRIVERS := $(TOP)/hardware/amlogic/media_modules/drivers
36ifeq (,$(wildcard $(MEDIA_DRIVERS)))
37$(error No find the dir of drivers.)
38endif
39
40INCLUDE := $(MEDIA_DRIVERS)/include
41ifeq (,$(wildcard $(INCLUDE)))
42$(error No find the dir of include.)
43endif
44
45MEDIA_MODULES := $(shell pwd)/$(PRODUCT_OUT)/obj/media_modules
46ifeq (,$(wildcard $(MEDIA_MODULES)))
47$(shell mkdir $(MEDIA_MODULES) -p)
48endif
49
50MODS_OUT := $(shell pwd)/$(PRODUCT_OUT)/obj/lib_vendor
51ifeq (,$(wildcard $(MODS_OUT)))
52$(shell mkdir $(MODS_OUT) -p)
53endif
54
55UCODE_OUT := $(shell pwd)/$(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/firmware/video
56ifeq (,$(wildcard $(UCODE_OUT)))
57$(shell mkdir $(UCODE_OUT) -p)
58endif
59
60$(shell cp $(MEDIA_DRIVERS)/../firmware/* $(UCODE_OUT) -rfa)
61$(shell cp $(MEDIA_DRIVERS)/* $(MEDIA_MODULES) -rfa)
62
63define media-modules
64 PATH=$$(cd ./$(TARGET_HOST_TOOL_PATH); pwd):$$PATH \
65 $(MAKE) -C $(KDIR) M=$(MEDIA_MODULES) ARCH=$(KERNEL_ARCH) \
66 CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(CONFIGS) \
67 EXTRA_CFLAGS+=-I$(INCLUDE) modules; \
68 find $(MEDIA_MODULES) -name "*.ko" | PATH=$$(cd ./$(TARGET_HOST_TOOL_PATH); pwd):$$PATH xargs -i cp {} $(MODS_OUT)
69endef
70
71else
72KDIR := $(PWD)/kernel
73ifeq (,$(wildcard $(KDIR)))
74$(error No find the dir of kernel.)
75endif
76
77MEDIA_DRIVERS := $(PWD)/media_modules/drivers
78ifeq (,$(wildcard $(MEDIA_DRIVERS)))
79$(error No find the dir of drivers.)
80endif
81
82INCLUDE := $(MEDIA_DRIVERS)/include
83ifeq (,$(wildcard $(INCLUDE)))
84$(error No find the dir of include.)
85endif
86
87MODS_OUT ?= $(MEDIA_DRIVERS)/../modules
88ifeq (,$(wildcard $(MODS_OUT)))
89$(shell mkdir $(MODS_OUT) -p)
90endif
91
92ifeq ($(KERNEL_A32_SUPPORT), true)
93TOOLS := /opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
94else
95TOOLS := /opt/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
96endif
97
98
99modules:
100 CCACHE_NODIRECT="true" PATH=$$(cd ./$(TARGET_HOST_TOOL_PATH); pwd):$$PATH \
101 $(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) \
102 CROSS_COMPILE=$(TOOLS) $(CONFIGS) \
103 EXTRA_CFLAGS+=-I$(INCLUDE) -j64
104
105copy-modules:
106 @echo "start copying media modules."
107 mkdir -p $(MODS_OUT)
108 $(call copy-media-modules, $(MEDIA_DRIVERS), $(MODS_OUT))
109
110all: modules copy-modules
111
112clean:
113 PATH=$$(cd ./$(TARGET_HOST_TOOL_PATH); pwd):$$PATH \
114 $(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) clean
115
116endif
117