buildroot/support/misc/gen-glibc-locales.mk

42 lines
1.2 KiB
Makefile

# Generates glibc locale data for target.
inputfile = $(firstword $(subst ., ,$(1)))
charmap = $(or $(word 2,$(subst ., ,$(1))),UTF-8)
# Packages all the generated locale data into the final archive.
#
# We sort the file names to produce consistent output regardless of
# the `find` outputs order.
$(TARGET_DIR)/usr/lib/locale/locale-archive: $(LOCALES)
$(Q)rm -f $(@)
$(Q)find $(TARGET_DIR)/usr/lib/locale/ -maxdepth 1 -mindepth 1 -type d -print0 \
| sort -z \
| xargs -0 \
$(HOST_DIR)/bin/localedef \
--prefix=$(TARGET_DIR) \
--$(ENDIAN)-endian \
--add-to-archive
# Generates locale data for each locale.
#
# The input data comes preferably from the toolchain, or if the toolchain
# does not have them (Linaro toolchains), we use the ones available on the
# host machine.
#
# Uses `localedef`, which is built by the `host-localedef` package.
$(LOCALES): | $(TARGET_DIR)/usr/lib/locale/
$(Q)echo "Generating locale $(@)"
$(Q)I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \
$(HOST_DIR)/bin/localedef \
--prefix=$(TARGET_DIR) \
--$(ENDIAN)-endian \
--no-archive \
-i $(call inputfile,$(@)) \
-f $(call charmap,$(@)) \
$(@)
.PHONY: $(LOCALES)
$(TARGET_DIR)/usr/lib/locale/:
$(Q)mkdir -p $(TARGET_DIR)/usr/lib/locale/