xref: /OK3568_Linux_fs/buildroot/package/rockchip/camera-engine-rkaiq/camera-engine-rkaiq.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# Rockchip Camera Engine RKaiq For Linux
4#
5################################################################################
6
7CAMERA_ENGINE_RKAIQ_VERSION = 1.0
8CAMERA_ENGINE_RKAIQ_SITE = $(TOPDIR)/../external/camera_engine_rkaiq
9CAMERA_ENGINE_RKAIQ_SITE_METHOD = local
10CAMERA_ENGINE_RKAIQ_INSTALL_STAGING = YES
11
12CAMERA_ENGINE_RKAIQ_DISALLOW_CLANG = YES
13
14CAMERA_ENGINE_RKAIQ_LICENSE = Apache-2.0
15CAMERA_ENGINE_RKAIQ_LICENSE_FILES = NOTICE
16
17CAMERA_ENGINE_RKAIQ_DEPENDENCIES =
18
19CAMERA_ENGINE_RKAIQ_CONF_OPTS = -DBUILDROOT_BUILD_PROJECT=TRUE -DARCH=$(BR2_ARCH)
20
21ifeq ($(BR2_PACKAGE_RV1126_RV1109), y)
22CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V20
23CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=xml
24else ifeq ($(BR2_PACKAGE_RK3566_RK3568), y)
25CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V21
26CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=json
27CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DCMAKE_BUILD_TYPE=MinSizeRel
28CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DRKAIQ_TARGET_SOC=rk356x
29else ifeq ($(BR2_PACKAGE_RK3588), y)
30CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V30
31CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DCMAKE_BUILD_TYPE=MinSizeRel
32CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=json
33CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DRKAIQ_TARGET_SOC=rk3588
34else ifeq ($(BR2_PACKAGE_RK3562), y)
35CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V32_LITE
36CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DCMAKE_BUILD_TYPE=MinSizeRel
37CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DRKAIQ_TARGET_SOC=rk3562
38CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=json
39endif
40
41ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_RKISP_DEMO), y)
42CAMERA_ENGINE_RKAIQ_DEPENDENCIES += rockchip-rga
43endif
44
45ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN), y)
46
47RKISP_PARSER_HOST_BINARY = $(HOST_DIR)/bin/rkisp_parser
48
49define conver_iqfiles
50dir=`echo $(1)`; \
51iqfile=`echo $(2)`; \
52if [[ -z "$$iqfile" ]]; then \
53	echo "## conver iqfiles"; \
54		for i in $$dir/*.$(CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT); do \
55			echo "### conver iqfiles: $$i"; \
56			$(RKISP_PARSER_HOST_BINARY) $$i; \
57		done; \
58else  \
59	echo "### conver iqfile: $$dir/$$iqfile"; \
60	$(RKISP_PARSER_HOST_BINARY) $$dir/$$iqfile; \
61fi;
62endef
63
64define INSTALL_RKISP_PARSER_M32_CMD
65	$(INSTALL) -D -m  755 $(@D)/rkisp_parser_demo/bin/rkisp_parser_m32   $(HOST_DIR)/bin/rkisp_parser
66endef
67
68define INSTALL_RKISP_PARSER_M64_CMD
69	$(INSTALL) -D -m  755 $(@D)/rkisp_parser_demo/bin/rkisp_parser_m64   $(HOST_DIR)/bin/rkisp_parser
70endef
71
72define IQFILE_CONVER_CMD
73	$(foreach iqfile, $(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),
74		$(call conver_iqfiles, $(@D)/iqfiles, $(iqfile))
75	)
76endef
77
78define IQFILES_CONVER_CMD
79	$(call conver_iqfiles, $(@D)/iqfiles)
80endef
81
82ifeq ($(BR2_arm), y)
83CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += INSTALL_RKISP_PARSER_M32_CMD
84else
85CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += INSTALL_RKISP_PARSER_M64_CMD
86endif
87
88ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),)
89CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += IQFILE_CONVER_CMD
90else
91CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += IQFILES_CONVER_CMD
92endif
93ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),)
94CAMERA_ENGINE_RKAIQ_IQFILE = $(patsubst %.xml,%.bin,$(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)))
95else
96CAMERA_ENGINE_RKAIQ_IQFILE = *.bin
97endif
98else # BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN
99ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),)
100CAMERA_ENGINE_RKAIQ_IQFILE = $(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE))
101else
102ifeq ($(BR2_PACKAGE_RV1126_RV1109), y)
103CAMERA_ENGINE_RKAIQ_IQFILE = isp20/*.xml
104else ifeq ($(BR2_PACKAGE_RK3566_RK3568), y)
105CAMERA_ENGINE_RKAIQ_IQFILE = isp21/*.json
106else ifeq ($(BR2_PACKAGE_RK3562), y)
107CAMERA_ENGINE_RKAIQ_IQFILE = isp32_lite/*.json
108else ifeq ($(BR2_PACKAGE_RK3588), y)
109CAMERA_ENGINE_RKAIQ_IQFILE = isp3x/*.json
110endif
111endif
112endif # BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN
113
114ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_RKISP_DEMO), y)
115CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DENABLE_RKISP_DEMO=ON
116endif
117
118define CAMERA_ENGINE_RKAIQ_INSTALL_STAGING_CMDS
119	$(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(MAKE) -C $($(PKG)_BUILDDIR) install
120endef
121
122define CAMERA_ENGINE_RKAIQ_INSTALL_CMDS
123	mkdir -p $(TARGET_DIR)/etc/iqfiles/
124	mkdir -p $(TARGET_DIR)/usr/lib/
125	mkdir -p $(TARGET_DIR)/usr/bin/
126	$(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(MAKE) -C $($(PKG)_BUILDDIR) install
127	$(INSTALL) -D -m  644 $(@D)/rkaiq/all_lib/MinSizeRel/librkaiq.so $(TARGET_DIR)/usr/lib/
128	$(foreach iqfile,$(CAMERA_ENGINE_RKAIQ_IQFILE),
129		$(INSTALL) -D -m  644 $(@D)/rkaiq/iqfiles/$(iqfile) \
130		$(TARGET_DIR)/etc/iqfiles/
131	)
132endef
133
134CAMERA_ENGINE_RKAIQ_POST_INSTALL_TARGET_HOOKS += CAMERA_ENGINE_RKAIQ_INSTALL_CMDS
135
136ifeq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),$(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_FAKE_CAMERA_IQFILE)))
137ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN), y)
138define INSTALL_FAKE_CAMERA_IQFILE_CMD
139	ln -sf `echo ${BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE} | sed "s/xml/bin/g"` \
140		$(TARGET_DIR)/etc/iqfiles/FakeCamera.bin
141endef
142else
143define INSTALL_FAKE_CAMERA_IQFILE_CMD
144	ln -sf $(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE) \
145		$(TARGET_DIR)/etc/iqfiles/FakeCamera.xml
146endef
147endif
148else
149define INSTALL_FAKE_CAMERA_IQFILE_CMD
150	$(INSTALL) -D -m  644 $(@D)/iqfiles/$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_FAKE_CAMERA_IQFILE) \
151		$(TARGET_DIR)/etc/iqfiles/FakeCamera.json
152endef
153endif
154
155ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_FAKE_CAMERA_IQFILE)),)
156CAMERA_ENGINE_RKAIQ_POST_INSTALL_TARGET_HOOKS += INSTALL_FAKE_CAMERA_IQFILE_CMD
157endif
158
159$(eval $(cmake-package))
160$(eval $(host-generic-package))
161