summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Bultel <thierry.bultel@wanadoo.fr>2013-11-10 17:32:52 (GMT)
committer Peter Korsgaard <peter@korsgaard.com>2013-11-10 22:41:28 (GMT)
commit6fb546ca41955335a6fa8ed403e616ae2ff31a29 (patch)
tree1e370035267966a5793540eba6beedfe68932ab3
parentfa510dee2842201a08f01d56b6b4144bbaf1d08a (diff)
downloadbuildroot-6fb546ca41955335a6fa8ed403e616ae2ff31a29.tar.gz
buildroot-6fb546ca41955335a6fa8ed403e616ae2ff31a29.tar.bz2
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--Makefile2
-rw-r--r--package/pkg-utils.mk8
2 files changed, 9 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 1496bd7..a006615 100644
--- a/Makefile
+++ b/Makefile
@@ -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 5930f2c..0ef433d 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