42 lines
1.2 KiB
Makefile
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/
|