Author: nbd
Date: 2016-01-03 21:57:53 +0100 (Sun, 03 Jan 2016)
New Revision: 48105

Modified:
   trunk/rules.mk
Log:
build: add pure make tolower/toupper funtions that do not require shell calls

Signed-off-by: Felix Fietkau <[email protected]>

Modified: trunk/rules.mk
===================================================================
--- trunk/rules.mk      2016-01-03 20:57:38 UTC (rev 48104)
+++ trunk/rules.mk      2016-01-03 20:57:53 UTC (rev 48105)
@@ -26,6 +26,11 @@
 confvar=$(call merge,$(foreach v,$(1),$(if $($(v)),y,n)))
 strip_last=$(patsubst %.$(lastword $(subst .,$(space),$(1))),%,$(1))
 
+paren_left = (
+paren_right = )
+chars_lower = a b c d e f g h i j k l m n o p q r s t u v w x y z
+chars_upper = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+
 define sep
 
 endef
@@ -35,6 +40,15 @@
 
 endef
 
+__tr_list = $(join $(join $(1),$(foreach char,$(1),$(comma))),$(2))
+__tr_head_stripped = $(subst $(space),,$(foreach cv,$(call 
__tr_list,$(1),$(2)),$$$(paren_left)subst$(cv)$(comma)))
+__tr_head = $(subst 
$(paren_left)subst,$(paren_left)subst$(space),$(__tr_head_stripped))
+__tr_tail = $(subst $(space),,$(foreach cv,$(1),$(paren_right)))
+__tr_template = $(__tr_head)$$(1)$(__tr_tail)
+
+$(eval toupper = $(call __tr_template,$(chars_lower),$(chars_upper)))
+$(eval tolower = $(call __tr_template,$(chars_upper),$(chars_lower)))
+
 _SINGLE=export MAKEFLAGS=$(space);
 CFLAGS:=
 ARCH:=$(subst i486,i386,$(subst i586,i386,$(subst i686,i386,$(call 
qstrip,$(CONFIG_ARCH)))))
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to