################################################################################ # # icu # ################################################################################ # Git tags (and therefore versions on release-monitoring.org) use the # XX-Y format, but the tarballs are named XX_Y and the containing # directories XX.Y. ICU_VERSION = 73-2 ICU_SOURCE = icu4c-$(subst -,_,$(ICU_VERSION))-src.tgz ICU_SITE = \ https://github.com/unicode-org/icu/releases/download/release-$(ICU_VERSION) ICU_LICENSE = ICU License ICU_LICENSE_FILES = LICENSE ICU_CPE_ID_VENDOR = icu-project ICU_CPE_ID_PRODUCT = international_components_for_unicode ICU_CPE_ID_VERSION = $(subst -,.,$(ICU_VERSION)) ICU_DEPENDENCIES = host-icu ICU_INSTALL_STAGING = YES ICU_CONFIG_SCRIPTS = icu-config ICU_CONF_OPTS = \ --with-cross-build=$(HOST_ICU_DIR)/source \ --disable-samples \ --disable-tests # the icu build process breaks if the TARGET environment variable is # non-empty ICU_CONF_ENV += TARGET="" ICU_MAKE_ENV += TARGET="" HOST_ICU_CONF_ENV += TARGET="" HOST_ICU_MAKE_ENV += TARGET="" # When available, icu prefers to use C++11 atomics, which rely on the # __atomic builtins. On certain architectures, this requires linking # with libatomic starting from gcc 4.8. ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) ICU_CONF_ENV += LIBS="-latomic" endif # strtod_l() is not supported by musl; also xlocale.h is missing ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) ICU_CONF_ENV += ac_cv_func_strtod_l=no endif HOST_ICU_CONF_OPTS = \ --disable-samples \ --disable-tests \ --disable-extras \ --disable-icuio \ --disable-layout ICU_SUBDIR = source HOST_ICU_SUBDIR = source # ICU build scripting adds paths to LD_LIBRARY_PATH using # LD_LIBRARY_PATH="custom-path:${LD_LIBRARY_PATH}" # which, if LD_LIBRARY_PATH was empty, causes the last search directory # to be the working directory, causing the build to try to load target # libraries, possibly crashing the build due to ABI mismatches. # Workaround by ensuring LD_LIBRARY_PATH is never empty. # https://unicode-org.atlassian.net/browse/ICU-21417 ifeq ($(LD_LIBRARY_PATH),) ICU_MAKE_ENV += LD_LIBRARY_PATH=/dev/null endif ICU_CUSTOM_DATA_PATH = $(call qstrip,$(BR2_PACKAGE_ICU_CUSTOM_DATA_PATH)) ifneq ($(ICU_CUSTOM_DATA_PATH),) define ICU_COPY_CUSTOM_DATA cp $(ICU_CUSTOM_DATA_PATH) $(@D)/source/data/in/ endef ICU_POST_PATCH_HOOKS += ICU_COPY_CUSTOM_DATA endif define ICU_REMOVE_DEV_FILES rm -f $(addprefix $(TARGET_DIR)/usr/bin/,derb genbrk gencfu gencnval gendict genrb icuinfo makeconv uconv) rm -f $(addprefix $(TARGET_DIR)/usr/sbin/,genccode gencmn gennorm2 gensprep icupkg) rm -rf $(TARGET_DIR)/usr/share/icu endef ICU_POST_INSTALL_TARGET_HOOKS += ICU_REMOVE_DEV_FILES $(eval $(autotools-package)) $(eval $(host-autotools-package))