blob: 317efff0012e52906222deff413e84114cffbf5f [file] [log] [blame]
Nanxin Qinb9164392017-06-09 15:52:28 +08001KERNEL_ARCH := arm64
2CONFIGS := CONFIG_AMLOGIC_MEDIA_VDEC_MPEG12=m \
3 CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4=m \
4 CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4_MULTI=m \
5 CONFIG_AMLOGIC_MEDIA_VDEC_VC1=m \
6 CONFIG_AMLOGIC_MEDIA_VDEC_H264=m \
7 CONFIG_AMLOGIC_MEDIA_VDEC_H264_MULTI=m \
8 CONFIG_AMLOGIC_MEDIA_VDEC_H264_MVC=m \
9 CONFIG_AMLOGIC_MEDIA_VDEC_H264_4K2K=m \
10 CONFIG_AMLOGIC_MEDIA_VDEC_H264_MVC=m \
11 CONFIG_AMLOGIC_MEDIA_VDEC_H265=m \
12 CONFIG_AMLOGIC_MEDIA_VDEC_VP9=m \
13 CONFIG_AMLOGIC_MEDIA_VDEC_MJPEG=m \
14 CONFIG_AMLOGIC_MEDIA_VDEC_MJPEG_MULTI=m \
15 CONFIG_AMLOGIC_MEDIA_VDEC_REAL=m \
16 CONFIG_AMLOGIC_MEDIA_VDEC_AVS=m \
17 CONFIG_AMLOGIC_MEDIA_VENC_H264=m \
18 CONFIG_AMLOGIC_MEDIA_VECN_H265=m
19
20define copy-media-modules
21$(foreach m, $(shell find $(strip $(1)) -name "*.ko"),\
22 $(shell cp $(m) $(strip $(2)) -rfa))
23endef
24
25ifneq (,$(ANDROID_BUILD_TOP))
26KDIR := $(OUT)/obj/KERNEL_OBJ/
27
28MEDIA_DRIVERS := $(ANDROID_BUILD_TOP)/hardware/amlogic/media_modules/drivers
29ifeq (,$(wildcard $(MEDIA_DRIVERS)))
30$(error No find the dir of drivers.)
31endif
32
33INCLUDE := $(MEDIA_DRIVERS)/include
34ifeq (,$(wildcard $(INCLUDE)))
35$(error No find the dir of include.)
36endif
37
38MEDIA_MODULES := $(ANDROID_BUILD_TOP)/$(PRODUCT_OUT)/obj/media_modules
39ifeq (,$(wildcard $(MEDIA_MODULES)))
40$(shell mkdir $(MEDIA_MODULES) -p)
41endif
42
Xindong Xud06e9fd2017-06-13 15:45:22 +080043ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo OK),OK)
Xindong Xu9977d142017-06-26 16:27:51 +080044MODS_OUT := $(ANDROID_BUILD_TOP)/$(PRODUCT_OUT)/obj/lib_vendor
Xindong Xud06e9fd2017-06-13 15:45:22 +080045else
Nanxin Qinb9164392017-06-09 15:52:28 +080046MODS_OUT := $(ANDROID_BUILD_TOP)/$(TARGET_OUT)/lib
Xindong Xud06e9fd2017-06-13 15:45:22 +080047endif
Nanxin Qinb9164392017-06-09 15:52:28 +080048
Nanxin Qin687fbdf2017-08-18 12:08:25 +080049UCODE_OUT := $(ANDROID_PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/firmware/video
50ifeq (,$(wildcard $(UCODE_OUT)))
51$(shell mkdir $(UCODE_OUT) -p)
52endif
53
54$(shell cp $(MEDIA_DRIVERS)/../firmware/* $(UCODE_OUT) -rfa)
Nanxin Qinb9164392017-06-09 15:52:28 +080055$(shell cp $(MEDIA_DRIVERS)/* $(MEDIA_MODULES) -rfa)
56
57define media-modules
58 @$(MAKE) -C $(KDIR) M=$(MEDIA_MODULES) ARCH=$(KERNEL_ARCH) \
59 CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(CONFIGS) \
60 EXTRA_CFLAGS+=-I$(INCLUDE) modules; \
Xindong Xud06e9fd2017-06-13 15:45:22 +080061 mkdir -p $(MODS_OUT); \
Nanxin Qinb9164392017-06-09 15:52:28 +080062 find $(MEDIA_MODULES) -name "*.ko" | xargs -i cp {} $(MODS_OUT)
63endef
64
65else
66KDIR := $(PWD)/kernel
67ifeq (,$(wildcard $(KDIR)))
68$(error No find the dir of kernel.)
69endif
70
71MEDIA_DRIVERS := $(PWD)/media_modules/drivers
72ifeq (,$(wildcard $(MEDIA_DRIVERS)))
73$(error No find the dir of drivers.)
74endif
75
76INCLUDE := $(MEDIA_DRIVERS)/include
77ifeq (,$(wildcard $(INCLUDE)))
78$(error No find the dir of include.)
79endif
80
81MODS_OUT ?= $(MEDIA_DRIVERS)/../modules
82ifeq (,$(wildcard $(MODS_OUT)))
83$(shell mkdir $(MODS_OUT) -p)
84endif
85
86TOOLS := /opt/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
87
88modules:
89 @$(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) \
90 CROSS_COMPILE=$(TOOLS) $(CONFIGS) \
91 EXTRA_CFLAGS+=-I$(INCLUDE) -j64
92
93copy-modules:
94 @echo "start copying media modules."
Xindong Xud06e9fd2017-06-13 15:45:22 +080095 mkdir -p $(MODS_OUT)
Nanxin Qinb9164392017-06-09 15:52:28 +080096 $(call copy-media-modules, $(MEDIA_DRIVERS), $(MODS_OUT))
97
98all: modules copy-modules
99
100clean:
101 $(MAKE) -C $(KDIR) M=$(MEDIA_DRIVERS) ARCH=$(KERNEL_ARCH) clean
102
103endif