2025-05-10 21:49:39 +08:00

161 lines
5.5 KiB
Makefile

################################################################################
#
# Rockchip Camera Engine RKaiq For Linux
#
################################################################################
CAMERA_ENGINE_RKAIQ_VERSION = 1.0
CAMERA_ENGINE_RKAIQ_SITE = $(TOPDIR)/../external/camera_engine_rkaiq
CAMERA_ENGINE_RKAIQ_SITE_METHOD = local
CAMERA_ENGINE_RKAIQ_INSTALL_STAGING = YES
CAMERA_ENGINE_RKAIQ_DISALLOW_CLANG = YES
CAMERA_ENGINE_RKAIQ_LICENSE = Apache-2.0
CAMERA_ENGINE_RKAIQ_LICENSE_FILES = NOTICE
CAMERA_ENGINE_RKAIQ_DEPENDENCIES =
CAMERA_ENGINE_RKAIQ_CONF_OPTS = -DBUILDROOT_BUILD_PROJECT=TRUE -DARCH=$(BR2_ARCH)
ifeq ($(BR2_PACKAGE_RV1126_RV1109), y)
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V20
CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=xml
else ifeq ($(BR2_PACKAGE_RK3566_RK3568), y)
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V21
CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=json
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DCMAKE_BUILD_TYPE=MinSizeRel
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DRKAIQ_TARGET_SOC=rk356x
else ifeq ($(BR2_PACKAGE_RK3588), y)
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V30
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DCMAKE_BUILD_TYPE=MinSizeRel
CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=json
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DRKAIQ_TARGET_SOC=rk3588
else ifeq ($(BR2_PACKAGE_RK3562), y)
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DISP_HW_VERSION=-DISP_HW_V32_LITE
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DCMAKE_BUILD_TYPE=MinSizeRel
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DRKAIQ_TARGET_SOC=rk3562
CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT=json
endif
ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_RKISP_DEMO), y)
CAMERA_ENGINE_RKAIQ_DEPENDENCIES += rockchip-rga
endif
ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN), y)
RKISP_PARSER_HOST_BINARY = $(HOST_DIR)/bin/rkisp_parser
define conver_iqfiles
dir=`echo $(1)`; \
iqfile=`echo $(2)`; \
if [[ -z "$$iqfile" ]]; then \
echo "## conver iqfiles"; \
for i in $$dir/*.$(CAMERA_ENGINE_RKAIQ_IQFILE_FORMAT); do \
echo "### conver iqfiles: $$i"; \
$(RKISP_PARSER_HOST_BINARY) $$i; \
done; \
else \
echo "### conver iqfile: $$dir/$$iqfile"; \
$(RKISP_PARSER_HOST_BINARY) $$dir/$$iqfile; \
fi;
endef
define INSTALL_RKISP_PARSER_M32_CMD
$(INSTALL) -D -m 755 $(@D)/rkisp_parser_demo/bin/rkisp_parser_m32 $(HOST_DIR)/bin/rkisp_parser
endef
define INSTALL_RKISP_PARSER_M64_CMD
$(INSTALL) -D -m 755 $(@D)/rkisp_parser_demo/bin/rkisp_parser_m64 $(HOST_DIR)/bin/rkisp_parser
endef
define IQFILE_CONVER_CMD
$(foreach iqfile, $(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),
$(call conver_iqfiles, $(@D)/iqfiles, $(iqfile))
)
endef
define IQFILES_CONVER_CMD
$(call conver_iqfiles, $(@D)/iqfiles)
endef
ifeq ($(BR2_arm), y)
CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += INSTALL_RKISP_PARSER_M32_CMD
else
CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += INSTALL_RKISP_PARSER_M64_CMD
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),)
CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += IQFILE_CONVER_CMD
else
CAMERA_ENGINE_RKAIQ_PRE_BUILD_HOOKS += IQFILES_CONVER_CMD
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),)
CAMERA_ENGINE_RKAIQ_IQFILE = $(patsubst %.xml,%.bin,$(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)))
else
CAMERA_ENGINE_RKAIQ_IQFILE = *.bin
endif
else # BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN
ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),)
CAMERA_ENGINE_RKAIQ_IQFILE = $(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE))
else
ifeq ($(BR2_PACKAGE_RV1126_RV1109), y)
CAMERA_ENGINE_RKAIQ_IQFILE = isp20/*.xml
else ifeq ($(BR2_PACKAGE_RK3566_RK3568), y)
CAMERA_ENGINE_RKAIQ_IQFILE = isp21/*.json
else ifeq ($(BR2_PACKAGE_RK3562), y)
CAMERA_ENGINE_RKAIQ_IQFILE = isp32_lite/*.json
else ifeq ($(BR2_PACKAGE_RK3588), y)
CAMERA_ENGINE_RKAIQ_IQFILE = isp3x/*.json
endif
endif
endif # BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN
ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_RKISP_DEMO), y)
CAMERA_ENGINE_RKAIQ_CONF_OPTS += -DENABLE_RKISP_DEMO=ON
endif
define CAMERA_ENGINE_RKAIQ_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(MAKE) -C $($(PKG)_BUILDDIR) install
endef
define CAMERA_ENGINE_RKAIQ_INSTALL_CMDS
mkdir -p $(TARGET_DIR)/etc/iqfiles/
mkdir -p $(TARGET_DIR)/usr/lib/
mkdir -p $(TARGET_DIR)/usr/bin/
$(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(MAKE) -C $($(PKG)_BUILDDIR) install
$(INSTALL) -D -m 644 $(@D)/rkaiq/all_lib/MinSizeRel/librkaiq.so $(TARGET_DIR)/usr/lib/
$(foreach iqfile,$(CAMERA_ENGINE_RKAIQ_IQFILE),
$(INSTALL) -D -m 644 $(@D)/rkaiq/iqfiles/$(iqfile) \
$(TARGET_DIR)/etc/iqfiles/
)
endef
CAMERA_ENGINE_RKAIQ_POST_INSTALL_TARGET_HOOKS += CAMERA_ENGINE_RKAIQ_INSTALL_CMDS
ifeq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE)),$(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_FAKE_CAMERA_IQFILE)))
ifeq ($(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE_USE_BIN), y)
define INSTALL_FAKE_CAMERA_IQFILE_CMD
ln -sf `echo ${BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE} | sed "s/xml/bin/g"` \
$(TARGET_DIR)/etc/iqfiles/FakeCamera.bin
endef
else
define INSTALL_FAKE_CAMERA_IQFILE_CMD
ln -sf $(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_IQFILE) \
$(TARGET_DIR)/etc/iqfiles/FakeCamera.xml
endef
endif
else
define INSTALL_FAKE_CAMERA_IQFILE_CMD
$(INSTALL) -D -m 644 $(@D)/iqfiles/$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_FAKE_CAMERA_IQFILE) \
$(TARGET_DIR)/etc/iqfiles/FakeCamera.json
endef
endif
ifneq ($(call qstrip,$(BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_FAKE_CAMERA_IQFILE)),)
CAMERA_ENGINE_RKAIQ_POST_INSTALL_TARGET_HOOKS += INSTALL_FAKE_CAMERA_IQFILE_CMD
endif
$(eval $(cmake-package))
$(eval $(host-generic-package))