diff options
author | Thierry Bultel <thierry.bultel@wanadoo.fr> | 2013-11-10 18:32:52 +0100 |
---|---|---|
committer | Peter Korsgaard <peter@korsgaard.com> | 2013-11-10 23:41:28 +0100 |
commit | 6fb546ca41955335a6fa8ed403e616ae2ff31a29 (patch) | |
tree | 1e370035267966a5793540eba6beedfe68932ab3 | |
parent | fa510dee2842201a08f01d56b6b4144bbaf1d08a (diff) | |
download | buildroot-6fb546ca41955335a6fa8ed403e616ae2ff31a29.tar.gz buildroot-6fb546ca41955335a6fa8ed403e616ae2ff31a29.zip |
Generation of locales: made call to tr more robust and added LOWERCASE macro
When calling 'tr' without quoting braces, bash can make really weird things
if there are existing 'single-letter-named' directories
eg:
thierry@thierry-desktop:~$ echo AAA | tr [A-Z] [a-z]
aaa
thierry@thierry-desktop:~$ mkdir m
thierry@thierry-desktop:~$ echo AAA | tr [A-Z] [a-z]
AAA
The (quick) analysis is that the callee (tr) argvs then
contain 'm' thus the translation does not work
Using quotes works around it:
thierry@thierry-desktop:~$ echo AAA | tr '[A-Z]' '[a-z]'
aaa
Signed-off-by: Thierry Bultel <thierry.bultel@wanadoo.fr>
Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | package/pkg-utils.mk | 8 |
2 files changed, 9 insertions, 1 deletions
@@ -548,7 +548,7 @@ target-generatelocales: host-localedef I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \ $(HOST_DIR)/usr/bin/localedef \ --prefix=$(TARGET_DIR) \ - --`echo $(BR2_ENDIAN) | tr [A-Z] [a-z]`-endian \ + --$(call LOWERCASE,$(BR2_ENDIAN))-endian \ -i $${inputfile} -f $${charmap} \ $${locale} ; \ done diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk index 5930f2cfc2..0ef433dc93 100644 --- a/package/pkg-utils.mk +++ b/package/pkg-utils.mk @@ -23,6 +23,14 @@ UPPERCASE = $(strip $(eval __tmp := $1) \ $(__tmp)))) \ $(__tmp)) +# LOWERCASE macro -- transforms its arguments to lowercase +# The above non-tr implementation is not needed, because LOWERCASE is not +# called very often + +define LOWERCASE +$(shell echo $1 | tr '[:upper:]' '[:lower:]') +endef + # # Manipulation of .config files based on the Kconfig # infrastructure. Used by the Busybox package, the Linux kernel |