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