diff options
Diffstat (limited to 'toolchain')
-rw-r--r-- | toolchain/toolchain-common.in | 18 | ||||
-rw-r--r-- | toolchain/uClibc/uclibc.mk | 11 |
2 files changed, 28 insertions, 1 deletions
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in index fb87a888e..cc7b4de56 100644 --- a/toolchain/toolchain-common.in +++ b/toolchain/toolchain-common.in @@ -58,6 +58,24 @@ config BR2_ENABLE_LOCALE_WHITELIST will be available on the target - That purely depends on the support for that locale in the selected packages. +config BR2_GENERATE_LOCALE + string "Generate locale data" + default "" + # Pre-built uClibc external toolchains and uClibc toolchains + # built by the Crosstool-NG backend cannot be supported, + # because the list of locales to support must be defined at + # build time. + depends on \ + BR2_TOOLCHAIN_BUILDROOT || \ + BR2_TOOLCHAIN_EXTERNAL_GLIBC || \ + BR2_TOOLCHAIN_CTNG_eglibc || \ + BR2_TOOLCHAIN_CTNG_glibc + help + Generate support for a list of locales. Locales can be + specified with or without encoding, when no encoding is + specified, UTF-8 is assumed. Examples of locales: en_US, + fr_FR.UTF-8. + # glibc and eglibc directly include gettext, so a separatly compiled # gettext isn't needed and shouldn't be built to avoid conflicts. Some # packages always need gettext, other packages only need gettext when diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index 32cbe4605..07281351b 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -66,6 +66,15 @@ endif UCLIBC_ARM_TYPE:=CONFIG_$(call qstrip,$(BR2_ARM_TYPE)) UCLIBC_SPARC_TYPE:=CONFIG_SPARC_$(call qstrip,$(BR2_SPARC_TYPE)) +ifeq ($(GENERATE_LOCALE),) +# We need at least one locale +UCLIBC_LOCALES = en_US +else +# Strip out the encoding part of locale names, if any +UCLIBC_LOCALES = $(foreach locale,$(GENERATE_LOCALE),\ + $(firstword $(subst .,$(space),$(locale)))) +endif + $(DL_DIR)/$(UCLIBC_SOURCE): $(call DOWNLOAD,$(UCLIBC_SITE)/$(UCLIBC_SOURCE)) @@ -309,7 +318,7 @@ else echo "# PTHREADS_DEBUG_SUPPORT is not set" >> $(UCLIBC_DIR)/.oldconfig endif ifeq ($(BR2_ENABLE_LOCALE),y) - $(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y\n# UCLIBC_BUILD_ALL_LOCALE is not set\nUCLIBC_BUILD_MINIMAL_LOCALE=y\nUCLIBC_BUILD_MINIMAL_LOCALES="en_US"\nUCLIBC_PREGENERATED_LOCALE_DATA=n\nUCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA=n\nUCLIBC_HAS_XLOCALE=y\nUCLIBC_HAS_GLIBC_DIGIT_GROUPING=n\n,g' $(UCLIBC_DIR)/.oldconfig + $(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y\n# UCLIBC_BUILD_ALL_LOCALE is not set\nUCLIBC_BUILD_MINIMAL_LOCALE=y\nUCLIBC_BUILD_MINIMAL_LOCALES="$(UCLIBC_LOCALES)"\nUCLIBC_PREGENERATED_LOCALE_DATA=n\nUCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA=n\nUCLIBC_HAS_XLOCALE=y\nUCLIBC_HAS_GLIBC_DIGIT_GROUPING=n\n,g' $(UCLIBC_DIR)/.oldconfig else $(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=n,g' $(UCLIBC_DIR)/.oldconfig endif |