linuxOS_AP05/buildroot/package/rockchip/rk_oem/rk_oem.mk
2025-06-02 13:59:07 +08:00

95 lines
4.1 KiB
Makefile

################################################################################
#
# rk_oem
#
################################################################################
ifeq ($(BR2_PACKAGE_RK_OEM), y)
RK_OEM_SITE_METHOD = local
RK_OEM_IMAGE_OUTPUT = $(BASE_DIR)/images/oem.img
RK_OEM_FAKEROOT_SCRIPT = oem_fakeroot.fs
RK_OEM_FILESYSTEM_TYPE = $(BR2_PACKAGE_RK_OEM_IMAGE_FILESYSTEM_TYPE)
RK_OEM_PARTITION_SIZE = $(BR2_PACKAGE_RK_OEM_IMAGE_PARTITION_SIZE)
RK_OEM_UBI_PAGE_SIZE = $(BR2_TARGET_ROOTFS_UBI_SUBSIZE)
RK_OEM_UBI_BLOCK_SIZE = $(BR2_TARGET_ROOTFS_UBI_PEBSIZE)
ifeq ($(RK_OEM_FILESYSTEM_TYPE),"")
RK_OEM_FILESYSTEM_TYPE = ext4
endif
ifeq ($(BR2_PACKAGE_RK_OEM_RESOURCE_DIR),"")
RK_OEM_SITE = $(TOPDIR)/package/rockchip/rk_oem/src
define RK_OEM_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 $(@D)/S98_lunch_init \
$(TARGET_DIR)/etc/init.d/S98_lunch_init
endef
else
RK_OEM_SITE = $(BR2_PACKAGE_RK_OEM_RESOURCE_DIR)
endif
RK_OEM_REDIRECT_DBUS4OEM_CONF = package/rockchip/rk_oem/redirect_dbus4oem.conf
RK_OEM_INSTALL_TARGET_DIR = $(BR2_PACKAGE_RK_OEM_INSTALL_TARGET_DIR)
define RK_OEM_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/usr/share/dbus-1/system.d
$(INSTALL) -D -m 0644 $(RK_OEM_REDIRECT_DBUS4OEM_CONF) \
$(TARGET_DIR)/usr/share/dbus-1/system.d
mkdir -p $(RK_OEM_INSTALL_TARGET_DIR)
cp -rfp $(@D)/* $(RK_OEM_INSTALL_TARGET_DIR) | true
rm -fv $(RK_OEM_INSTALL_TARGET_DIR)/rk_oem.tar
rm -f $(RK_OEM_INSTALL_TARGET_DIR)/$(RK_OEM_FAKEROOT_SCRIPT)
endef
define RK_OEM_TARGET_POST_CLEAN_HOOK_CMDS
rm -rf $(RK_OEM_INSTALL_TARGET_DIR)/usr/include $(RK_OEM_INSTALL_TARGET_DIR)/usr/share/aclocal \
$(RK_OEM_INSTALL_TARGET_DIR)/usr/lib/pkgconfig $(RK_OEM_INSTALL_TARGET_DIR)/usr/share/pkgconfig \
$(RK_OEM_INSTALL_TARGET_DIR)/usr/lib/cmake $(RK_OEM_INSTALL_TARGET_DIR)/usr/share/cmake
find $(RK_OEM_INSTALL_TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
find $(RK_OEM_INSTALL_TARGET_DIR)/lib/ $(RK_OEM_INSTALL_TARGET_DIR)/usr/lib/ $(RK_OEM_INSTALL_TARGET_DIR)/usr/libexec/ \
\( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
endef
define RK_OEM_TARGET_POST_MKIMAGE_HOOK_CMDS
echo "#!/bin/sh" > $(@D)/$(RK_OEM_FAKEROOT_SCRIPT)
echo "set -e" >> $(@D)/$(RK_OEM_FAKEROOT_SCRIPT)
echo "export TARGET_OUTPUT_DIR=$(BASE_DIR)" >> $(@D)/$(RK_OEM_FAKEROOT_SCRIPT)
echo "[ -d $(RK_OEM_INSTALL_TARGET_DIR)/www ] && chown -R www-data:www-data $(RK_OEM_INSTALL_TARGET_DIR)/www" >> $(@D)/$(RK_OEM_FAKEROOT_SCRIPT)
echo "[ -d $(RK_OEM_INSTALL_TARGET_DIR)/usr/www ] && chown -R www-data:www-data $(RK_OEM_INSTALL_TARGET_DIR)/usr/www" >> $(@D)/$(RK_OEM_FAKEROOT_SCRIPT)
echo "mkdir -p $$(dirname $(RK_OEM_IMAGE_OUTPUT))" >> $(@D)/$(RK_OEM_FAKEROOT_SCRIPT)
if [ $(RK_OEM_FILESYSTEM_TYPE) = "ubi" ];then \
echo "$(TOPDIR)/../device/rockchip/common/mk-image.sh $(RK_OEM_INSTALL_TARGET_DIR) $(RK_OEM_IMAGE_OUTPUT) $(RK_OEM_FILESYSTEM_TYPE) $(RK_OEM_PARTITION_SIZE) oem $(RK_OEM_UBI_PAGE_SIZE) $(RK_OEM_UBI_BLOCK_SIZE)" >> $(@D)/$(RK_OEM_FAKEROOT_SCRIPT); \
else \
echo "$(TOPDIR)/../device/rockchip/common/mk-image.sh $(RK_OEM_INSTALL_TARGET_DIR) $(RK_OEM_IMAGE_OUTPUT) $(RK_OEM_FILESYSTEM_TYPE) $(RK_OEM_PARTITION_SIZE) oem" >> $(@D)/$(RK_OEM_FAKEROOT_SCRIPT); \
fi
chmod a+x $(@D)/$(RK_OEM_FAKEROOT_SCRIPT)
endef
define RK_OEM_TARGET_FINALIZE_STRIP_HOOK_CMDS
find $(RK_OEM_INSTALL_TARGET_DIR) -type f \( -perm /111 -o -name '*.so*' \) \
-not \( -name 'libpthread*.so*' -o -name 'ld-*.so*' -o -name '*.ko' \) -print0 | \
xargs -0 $(STRIPCMD) 2>/dev/null || true
touch $(TARGET_DIR)/.auto_mkfs # format userdata partition default if mount error.
endef
ifneq ($(BR2_ENABLE_DEBUG),y)
ifneq ($(BR2_PACKAGE_RK_OEM_ENABLE_DEBUG),y)
RK_OEM_TARGET_FINALIZE_HOOKS += RK_OEM_TARGET_FINALIZE_STRIP_HOOK_CMDS
endif
endif
RK_OEM_POST_INSTALL_TARGET_HOOKS += RK_OEM_TARGET_POST_CLEAN_HOOK_CMDS
ifneq ($(RK_OEM_FILESYSTEM_TYPE),"NONE")
RK_OEM_POST_INSTALL_TARGET_HOOKS += RK_OEM_TARGET_POST_MKIMAGE_HOOK_CMDS
define RK_OEM_TARGET_FINALIZE_MKIMAGE_HOOK_CMDS
$(HOST_DIR)/bin/fakeroot -- $(BUILD_DIR)/rk_oem/$(RK_OEM_FAKEROOT_SCRIPT)
endef
RK_OEM_TARGET_FINALIZE_HOOKS += RK_OEM_TARGET_FINALIZE_MKIMAGE_HOOK_CMDS
endif
endif
$(eval $(generic-package))