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